For any given project, I see a common occurrence, at least one technology will be new or almost new. Resources won’t have ramped on it. In many cases, you may have a completely new development environment. Both these issues can easily cause your project to head south or even to fail entirely. That doesn’t need to happen. All it takes is careful planning and a willingness to get your resources ramped.
Ramp Time
Giving resources time to prep for a project can prove relatively easy. In my project plans, we do the following:
- Get an architect or technical lead on early enough to define the tools and access necessary
- Roll your development resources onto the project so they can setup their environments
Each project has a variety of dependencies. You may have different systems you will integrate to. You may be upgrading the interface by using Adobe Flash / Flex or AJAX. You could be implementing an entirely new portal with a whole slew of different tools and standards to follow. Bring an architect or technical lead in early. Let him or her define what’s new and setup the key development standards. At the same time, he or she can create code samples and other foundational materials.
A working development workstation depends on more than just getting your IDE up and running. You will need to have the right libraries installed. You will need to ensure that you have the correct version of hibernate, Spring, etc. Any systems you intend to integrate to must be available and the developer must be given access to them. This can take time. It needn’t take a month. If the architect or tech lead has done his or her job, the developer can prep in a week or less.
These two items seem relatively straightforward but when a project MUST get started immediately and you developers need to be coding yesterday, these tasks get shunted aside. When they do, you can waste far more time than the original ramp up. I show a sample project plan with these ideas in mind.
Train Junior Resources
Some tasks are easy. Others prove more difficult. Front end interfaces for complex applications which have multiple views can cause developers to juggle many different variables. I’ve seen plenty of examples where a junior developer neglects to use functionality inherent in a portal. I’ve also seen plenty of examples where junior developers use 1,000 lines of code where a more experience developer could replicate the same functionality in 20 lines. So what should you do?
- Plan to accomplish less in your project plan
- Bring on a technical lead who can train your junior developers to do it correctly
- Provide additional training or mentoring
Yes, you’ve been tasked to complete the project in only two months. Yes, you report to managers who want that functionality now. I’ve found that it’s far better to set expectations correctly at the beginning than to miss your target date by a mile with little to show for it. Explain the issues. Explain the plan to get your resources ramped. Then work on your plan.
When you have a number of junior resources, you need to bring on one experienced resource. Let your experienced developer help to lead the team from a development standpoint. Don’t expect your lead to work on development tasks 100% of the time. The more junior the team, the fewer tasks you should assign your tech lead. Set expectations with both your tech lead and your junior developers.
If your developers don’t have any experience in key technologies at all then budget for training. Send them to learn the tool, the concept, best practices, etc. If possible, see if your trainer can also provide mentoring post training. We’ve found this to be fairly successful. Finally, don’t separate training from development. Your resources will forget everything they learned if you train them in January and then start development in June.
Summary
So there you have it, you can make a project successful if you plan for success and if you enable your project team. I find that when you do this, you end up with a far more successful project and you have enabled yourself to increase project velocity in the next phases of your project.
Good post. I learn one thing more challenging on totally different blogs everyday. It can at all times be stimulating to read content from different writers and follow just a little one thing from their store. I’d desire to use some with the content material on my blog whether you don’t mind. Natually I’ll offer you a hyperlink on your net blog. Thanks for sharing.