Yesterday I read Alex Papadimoulis's article Development Disasters: Prevent your next software project from becoming a train wreck, in the August 1, 2007 issue of RedmondDeveloper magazine. That article really applies well to me, as I'm tasked with being the project lead on doing a re-write of one of our primary applications. It desparately needs to be re-written, as it is very old and beginning to fail a lot. Something that I gained from Alex's article is that the primary predictor of how well a project will succeed is the people involved in the project, and that is what has me worried the most.
The application we're going to re-write was written about 9 years ago in VB5 (later upgraded to VB6). It uses 3rd party controls that have long since stopped being supported, and half of the time the controls are the things that fail. But the other half of the time the application fails because of all of the patches and kludges that have been added to it. It has become such a huge maintenance headache that re-writing it has become the best option.
My concern is the team that I have to work with. We are a 3 person team, one of which is the supervisor. His supervisory duties consumes most of his time. I know that he would like to help, and when he is available he can help. His programming skills are good - it is just his time he hasn't got a lot of.
The other people is an older fellow, who I believe has given up in his pursuit of keeping himself and his skillset current. He tends to complain a great deal about development tools, which seem never to be adequate for him. His development environment tends to always somehow be corrupted. I've tried to figure out why something which works fine on both my machine or our supervisor's machine, doesn't work on his, and it is way beyond me. I suspect that he edits important system files so horribly that it just stops working. He has uninstalled and reinstalled Visual Studio, for example, in an effort to get things working, but then in short order he is in a mess again.
And then there is me. I am a good deveoper, and look forward to this re-write, but it is a big project and I don't want to do it all alone. When I was involved in the original project writing this application it took 4 developers including myself (3 of which were very good and one who was not, but thank God she is now gone) to finish the project in about 8 months. I estimate a smilar time line this time around, but I have less to work with.
However, I have to work with it. I believe our supervisor will be fine, when he can get the time to help. My biggest concern is the older fellow. How do I engage him in a meaning ful way in the development of this project and yet not have him work on anything too critical?