21 Mar, 2011
Keeping up the team’s enthusiasm in maintenance projects
Posted by: Anca A. In: Career Management| Team Management
We all know maintenance projects keep the client happy and bring a reliable and often generous income to the company.
In a previous article I tried to explain some of the reasons that make maintenance projects so unattractive for many developers. I tried to show why for “passionate” (and not only!) programmers the dull IT projects are not very pleasing.
So, if we try to look from the other side, which are the best ways to keep people motivated when working in such projects?
Technical view
- Learn how to debug, program better, optimize
- Learn new skills and tools
- Learn to write better specs
- You are agile by default (due to rapid user response time)
- Learn about the client’s business
- Learn people skills or how to interact with users
- Not very likely to be off-shored
Each of these points and not only have been very well described by Greg Jorgensen on his blog.
Managerial view
Rotate people after a while
This is actually the most intuitive action to do. The problem here is that it often takes an average of about one month for a new arrived person to be as efficient as the previous team member. Due to the fact that the client’s business knowledge is sometimes crucial for understanding the applications, it is usually required to stay at least one year and a half of work in such projects.
The problem here is that especially young developers tend to get bored after one year and a half of routine tasks.
20% of the time on a favorite project
Spending about 20% times on working on an interesting and challenging project that can provide new technical horizons, learn favorite technologies, put ideas into practice. This is actually the technique used by Google to help people cope with the dull tasks.
20% of the time in maintenance tasks
Spending less time in repetitive tasks would also be an option to allow team members to gain new skills and working in more challenging projects. By rotating them to take care of these tasks a certain day or week allows easing the feeling of doing the same thing daily. The problem here is however that the process knowledge is more diluted among more people and so a possible loss in service quality. The benefit is that the departure of a team member will have less impact in keeping the knowledge.
Use the project as a prerequisite for passing to more important projects
Proposing developers “to do their part” in the maintenance projects as a stepping stone for advancing towards their “dream project” can also be a good technique as long as it is a respected promise. However, if most of the company’s projects are maintenance based it will be hard to provide everybody with their opportunity.
Put the top programmers in development projects and the lousy ones in maintenance
Some people are not motivated by taking new challenges every day and are comfortable with doing the things only the things they know on a daily basis. Their technical skills are average or maybe even limited. They are most likely the perfect candidates for the maintenance projects. So why not give the top performance the development projects and orient the rest in the more repetitive tasks? The risk here however is making the wrong guess and putting a “passionate” programmer in the wrong place for too long time.
Give benefits/financial motivations
Though this may sometimes be good option for encouraging developers to stay. More days off or good bonuses from time to time can keep the spirits high.
