My software project is out of control, how do I manage it?
A software project manager was leaving the company and a new manager was assigned.
He spent the day talking to the person in charge of the project and the sponsor. He was assured that the project was 90 percent complete and the project was on schedule. All the programs had been tested and were ready to write the conversion program.
The new manager looked at the schedule and current progress charts. They all looked very pretty but he wasn’t convinced. There were several warning bells that had indicated there were problems. He talked to the three programmers on the project and reviewed their progress. It became evident within a few minutes that all three knew nothing about what the others were doing and had been developing their own test data. They had not even reviewed the data with the others. It was a basic project requiring an edit/update and some reports. Who was in charge of the conversion program? It wasn’t assigned yet and they all assumed the project manager had been working on it.
The new project manager suggested that each programmer take the output from the first program test and try to run it through the next step in the process. It took the remainder of the day to match files to programs and run a few simple tests.
The next morning the team met in the conference room to review the results. The project manager was not surprised that nothing ran properly. Data was missing, information was in the wrong format and the reports did not have enough space to display the proper totals. In short, the test was a disaster. He spent the remainder of the day working with the team to identify the missing pieces and cobbled a working set of test data for the updates and reports. He also had a meeting with the sponsor and his management to determine what alternatives were available for a revised schedule.
The editing process was fairly clean but had to be revised to collect new information that was not on the existing database when the conversion details were compared to the existing production data.
It took another week to get everything back on schedule and the project manager had to work with the programmers to help them develop an estimate of work to be completed for their own tasks. A team environment was created and data was shared between all the team members. The sponsor was included when reviewing test results and major functional procedures were improved for his day-to-day collection of the new data.
The conversion program was stubbed out and complex test data was soon available to generate reports.
Eventually the project was completed, a little behind the original schedule but it provided the data required by the company.
Don’t develop in a vacuum. Create a team and keep members informed. Share data between all members.
The conversion program is the first to be written and will be the last to be completed. Don’t be surprised if you have to make a few last minute changes before you go into production. If you can, try to run a partial conversion to estimate the actual run time. A 16 hour conversion might not fit into a weekend implementation. Have a DBA review the process, it may be better to drop a few indexes, convert and then rebuild them. You may even want to convert in stages by cleaning up existing production data.
Make sure that all new reporting can be collected from existing data or will be available with new or revised processes. You can’t report on data not collected.
Help team members create their own estimates. Joe may be able to do the task in 20 hours but Mary may require 40. Heroes tend to under estimate and others may like to pad the hours. Schedules should be aggressive but not impossible.
If the schedule has to be revised, inform management with your planned revision and the impact to the company. It is usually better to revise expectations downward rather than try to add more people to a late project. If necessary, break the large project into smaller more manageable phases or sub-projects.
Make sure all tasks are assigned. If it isn’t assigned, it won’t get done. Even small tasks can become a showstopper. You can’t put a wheel on a car without the proper lug nuts.
My next article will address more tricks and tips for managing a software development project.