Some IT managers perspective on developers made me to write this post.
A managing director of a company telling to delivery head that
We need not worry about developers. If we go around the villages with a car and get the people who just completed their school and give him a computer with internet connection and then give 15 days of time to learn java. Then assign the work and put a deadline. They will complete the work. We need not bother about Developers. All we need to care about is Managers, who can interact with the client and make the developers to finish their work.
A Delivery head telling to a team lead that
Why the project get delayed? If you allocate the work to your developers and put a deadline they should complete it on-time. If they can’t we don’t need them and we can terminate them right away”.(The team is a one year experienced java developer and two 2 months experienced fresh graduates, and still nobody knows what are the requirements for the project).
A delivery head is telling to a senior developer that
I will give you 3 fresh graduates and i want to build a portal that looks like igoogle in 2 months. Just assign the work and put a deadline. They will complete it.(Those 3 fresh graduates just know about computer programming in theory and they haven’t write HelloWorld program yet).
I know not all manager think like this. I have worked with many good managers who takes care of developers very well, sit with the developers when it needs to work in late nights, arranging dinner and drop him at his door steps at 2’o clock in the midnight. I know managers will have much more responsibilities than a developer. I know managers are responsible to give justification if the project delivery got delayed. But that doesn’t mean that managers should treat the developers as machines.
A project delivery is not solely depends on either developers or managers. It is a team work. Everyone should understand the importance of others contribution and treat properly.
Putting the deadline is the only way to make the developers complete their work? No.
There are some other approaches to keep the team members energy levels up and get the maximum productivity.
1. Observe their interested areas and put them to work on those areas:
Some developers are more interested on UI development, some are interested on Back-end Server side coding and some others are much more interested on Database programming. If any developer is interested in any particular area allow him to work on it. You can get maximum productivity from him as he likes what he is doing which always results in better productivity.
2. Give an opportunity to improve in his weak areas:
Some developers are very strong in technical aspects but poor in communication skills. Communication skills are very important as developers has to communicate their design approaches, any development issues to others. In that case ask them to build a good POC using his favorite technologies and explain the design and best practices he followed to his team. After doing this multiple times there will be definitely an improvement in his communication skills.
3. Promptly give feedback on his improvement:
It is more important to give feedback on his improvement which build confidence on himself. If you don’t give any feedback promptly and you did it on year-end appraisal only there will be no use. Give timely feedback and allow give a chance to improve.
4. Appreciate the good work:
When a developer did a good job it is the managers responsibility to let others know about it because all the developers may not be good at marketing himself. A simple congratulations email or a ThanksCard might drastically improve the developers productivity.
5. Give the ownership on his work:
When a developer is capable of handling a module ask him to take up the ownership on that. This will be good for both the project and the developer. For that module you can have a single point of contact to track the progress and the developer may improve on how to design the module, architecture best practices etc instead of just coding to the design.
6. Listen to their suggestions:
Even though some developers have less experience they might have better ideas. Listen to them. If a developer suggest a new way of doing something ask him to prove that it will work by doing a simple POC.
A great developer’s(Craig McClanahan) passion on technology gave birth to Struts which became the default web application framework for java and brings up lots of job opportunities(Still there are lot of openings for Struts 1.x). Another great developer/architect’s(Rod Johnson) expertise on application development gave birth to Spring framework which eases the life of java developers across the world and cut down the development time drastically which is saving lot of money to enterprises. Some other technology freak’s(Gavin King) thoughts on database programming using java created Hibernate ORM framework which influences the persistence approach and became a default tool for persistence across the java community.
This is the power of a developer. Feel proud to be a developer.
The last thing that I can say is “Finally you need to deliver DeveloperWrittenCode.WAR to your client, not Manager’sManagerialSkills.zip“.