Are you one of those project stakeholders/trainers who have been assigned the task to make the fresher developers become billable, meaning, customers paying for their time? This is a tricky one to crack as it is difficult to convince customers that a fresher developer would be able to deliver a great quality code given the lack of experience. As a matter of fact, fresher developers take pride in becoming billable after the training is over owing to the fact that they would be able to start learning from day one, prove his worth and, organization would be able to make optimum usage of his expertise.
So, how do you crack this code? Lets take a look at some of the topics that you would want these freshers developers to have a decent knowledge in some of the following areas:
- Programming Languages that they have got trained in. This can be accomplished by having these freshers work in a couple of sample projects with similar configuration, timelines etc like a real-life project.
- SOLID Principles: If working with object-oriented programming languages, the fresher developers are expected to know all of the SOLID principles, especially, Single Responsibility Principle.
- One or More Build Tools: The fresher developers should definitely have decent knowledge in working with one or more build tool. For example, for Java projects, one would want to know at least Maven and ANT.
- Software Quality Characteristics: The freshers developers should also have a good understand on key software quality characteristics such as maintainability, usability, efficiency, security, reliability etc. The key thing is to have them relate these characteristics with coding practices.
- Source Code Repository: Fresher developers should be made to work on a common code base within the team and not work on their individual code base. They should be able to commit/update their code in code repository such as SVN, CVS etc. This is how any real-life projects work.
- Logging: It may be nice idea to have these developers understand the usage of some of the logging tool and stay away from printing out the logs in console.
- Unit testing: It may be good idea to have these developers understand how to write good unit tests from day one.