The demand for Java developers is great, especially by companies that work on the latest application projects and applets.
In case you are asking yourself what you should consider while hiring Java developers, you could start with checking whether the development team members have bachelor’s degrees in software engineering, information technology, computer science or in related subjects. You might want to overlook that however, if they have sufficient relevant experience. Those with a lot of experience in Java development should be suitable even if they don’t have the degrees.
The Java developers you employ should also understand the software development life cycle. They should have skills for programming in server side and client side languages which can be used with Java.
Additionally, they should be able to work well as an extension of your team and have strong problem solving and analytical skills. They have to professionally evaluate the programs or applications they develop for you and ensure bug free operation before they deliver the programs or applications to you.
The following are a few tips to hire Java developers, whether you want to hire them on site or decide on Java outsourcing to India or another low cost country:
- Expert knowledge of all major Java technologies – You have to look for expertise in some of the significant areas required to develop Java applications robustly. Try to gauge how strong they are in best practices for Java development, language fundamentals, scalability, design patterns and specification fundamentals. They should have thorough understanding of coding concepts and Java architecture.
- Their programming skills should include those such as JDBC, JQuery, JSP, JSON/REST, Servlets, Spring, JMS, EJB, JSF, JPA, MongoDB, Oracle and MySQL.
- They should have knowledge of ORM solutions like Hibernate, MyBatis, etc.
- They should have architectural skills such as MVC, GWT, service oriented architecture, Appfuse, enterprise service bus, Apache Wicket, distributed n-tier architecture, Struts, GOF design patterns, Spring MVC and distributed transactions management.
- They should have proficiency in enterprise driven apps such as JNDI, Enterprise Java Beans, RMI, Java Persistence API, distributed transactions and Java Message Beans.
- They should be well aware of all the technologies and tools relevant to Java development such as Eclipse, MyEclipse and IntelliJ Idea.
- Certifications related to Java – They should have appropriate certifications such as Oracle Certified Associate Java SE Programmer i (formerly the Sun Certified Java Programmer), Oracle Certified Professional Java SE Programmer (also formerly the Sun Certified Java Programmer), Oracle Certified Master Java SE 6 Developer (OCMJD) (formerly Sun Certified Java Developer), Oracle Certified Professional Java EE Web Component Developer (formerly Sun Certified Web Component Developer), Oracle Certified Professional Java EE Business Component Developer (formerly Sun Certified Business Component Developer), Oracle Certified Expert Java Platform EE Web Services Developer (formerly Sun Certified Developer for Java Web Services), Oracle Certified Professional Java ME Mobile Application Developer (formerly Sun Certified Mobile Application Developer) and Oracle Certified Master Java EE 5/6 Enterprise Architect (formerly Sun Certified Enterprise Architect).
- A varied portfolio of projects – The developer should have a project portfolio that should not only have a lot of variety but also include projects related to your industry. That should establish their credentials of having industry specific knowledge and experience.You could ask the developer to make available employees who have implemented projects in your business domain. If not all, you could at least have them assign a project manager who has executed projects similar to yours. Those who have relevant knowledge but are assigned to other projects could perhaps be brought in as consultants for brief time periods, as required.
It would be even better if you select a developer that has a well-established practice corresponding to your industry and ongoing projects that are quite similar. This could also prove useful if you decide to scale up development at a later stage, since the industry practice is likely to have similar ongoing projects.
Even if the details of the developer’s previous experience related to your industry may be under non-disclosure agreements, the skills and knowledge will be there for you to benefit from. You can obviously benefit much more from hiring such a developer than one that is new to the field. A team familiar with your business domain will require less of iterative feedback and implement your project faster.
- A team size sufficient to handle your project – The developer should be able to commit a team sufficiently large to handle your project, throughout the period of time for which they are required to work on it. Members of the team you have hired having other commitments in between could lead to unnecessary delays or interruptions. Too small a team being devoted to your project could lead to similar results.
- Number of projects done till date – This can help establish the credibility of the developer and the likelihood that they will be able to implement your project successfully. Their projects that are quite similar to yours would obviously be even more relevant. You would, of course, have to examine the projects for quality and the number can’t be a significant criterion by itself.
- Expertise in cloud based technologies – The developer should have cloud computing skills that cover Rackspace, Amazon EC2, Google App Engine and Windows Azure, among others.
- Certified and organized processes – The developer’s processes should be well organized and have certifications from well-known entities such as Capability Maturity Model Integration (CMMI) and International Organization for Standardization (ISO).
- A multitude of happy clients – Social proof in the form of testimonials from a number of happy clients can provide you with sufficient assurance about a developer’s reliability and capability to implement your project successfully. However, you have to be careful about whether the testimonials appear genuine and from real clients as fake ones are also being created by some unscrupulous service providers.
- All services under one roof – The developer that you choose should ideally provide a broad range of services related to software development in Java, even if it is located offshore in a low cost country such as India. The software services in Java development such as J2EE, JSF, EJB, Struts, Servlets and JSP should all be offered under one roof.
- Privacy and security – The developer you hire should know the value of your trade secrets, source codes, data and other information that you provide them in the course of a software development project in Java. They should provide you with the option of signing a non-disclosure agreement, if required.
- Ability to scale teams as required – Finding a developer that has done similar projects is only one aspect that you have to cover. Another major one is the stability of your outsourcing partner’s existing HR infrastructure and how fast they can scale up their teams, if needed. Harnessing developers through a contract for what appears to be a sufficiently long period of time may not be all that you have to do.The conditions in the developer’s local market for IT labor have a bearing on it. There are a few factors that you should consider, such as:
- The happiness of the service provider’s employees with their employer.
- The developer’s recruitment team being at grips with the realities in their IT market.
- The period of time for which employees are obliged contractually to remain with the service provider, if they decide to terminate their contracts.
- The ranking of the development company in the local market for IT labor.
- The rate of employee turnover of the developer.
You can’t disregard altogether the significance of contractual relationships. However, it is a lot more important for long term engagements whether the developer has a motivated workforce who will stay with them long enough and whether they can scale your team quickly while maintaining quality.
- Service provider’s practices for account management, including customer support – Usually, an account manager monitors a technologist team and the way that corresponds to your business plans and realities. So, the manager ensures that an approach driven by business takes precedence over one driven by engineering.
So, your app will have the functionality that your business actually requires and not what the programmers may find good to technologically implement.
Irrespective of his title or position in the developer organization, your account manager should consider the project as his responsibility and act as an auditor. A good account manager has to be familiar with the history of the project, while being able to supervise its scope and schedule. He should know about your opportunities, problems and plans. The manager should function like a consultant and have expertise in your business domain.
Those given above are some of the major considerations for hiring Java developers. If there are any additional insights that you have gained through your experience of hiring Java developers, please share with us in the comments section below.