Project management is Organizing, Planning and Scheduling software projects. It is concerned with activities involved in ensuring that software is delivered on schedule and in accordance with the requirements of the organization developing and procuring the software. Project management is needed because software development is always subject to budget and schedule constraints that are set by the organization developing the software.
- Project planning.
- Project scheduling.
- Iterative Code/Test/Release Phases.
- Production Phase.
- Post Mortem.
Project planning: This is the most time-consuming project management activity. It is a continuous activity from initial concept through to system delivery. Project Plan must be regularly updated as new information becomes available. With out proper plan, the development of the project will cause errors or it may lead to increase the cost, which is higher than the schedule cost. Review.
Project scheduling: This activity involves splitting project into tasks and estimate time and resources required to complete each task. Organize tasks concurrently to make optional use of workforce. Minimize task dependencies to avoid delays caused by one task waiting for another to complete. Project Manager has to take into consideration various aspects like scheduling, estimating manpower resources, so that the cost of developing a solution is within the limits. Project Manager also has to allow for contingency in planning.
After the planning and design phases, the client and development team has to agree on the feature set and the timeframe in which the product will be delivered. This includes iterative releases of the product as to let the client see fully implemented functionality early and to allow the developers to discover performance and architectural issues early in the development. Each iterative release is treated as if the product were going to production.
Full testing and user acceptance is performed for each iterative release. Experience shows that one should space iterations at least 2 – 3 months a part. If iterations are closer than that, more time will be spent on convergence and the project timeframe expands.
During this phase, code reviews must be done weekly to ensure that the developers are delivering to specification and all source code is put under source control. Also, full installation routines are to be used for each iterative release, as it would be done in production.
- Weekly Status with Project Plan and Budget Analysis
- Risk Assessment
- System Documentation
- User Documentation (if needed)
- Test Signoff for each iteration
- Customer Signoff for each iteration
Production Phase: Once all iterations are complete, the final product is presented to the client for a final signoff. Since the client has been involved in all iterations, this phase should go very smoothly.
- Final Test Signoff
- Final Customer Signoff
Post Mortem Phase: The post mortem phase allows to step back and review the things that went well and the things that need improvement. Post mortem reviews cover processes that need adjustment, highlight the most effective processes and provide action items that will improve future projects.
To conduct a post mortem review, announce the meeting at least a week in advance so that everyone has time to reflect on the project issues they faced. Everyone has to be asked to come to the meeting with the following:
- Items that were done well during the project
- Items that were done poorly during the project
- Suggestions for future improvements
During the meeting, collection of the information listed above is required. As each person offers their input, categorize the input so that all comments are collected. This will allow one to see how many people had the same observations during the project. At the end of observation review, a list of the items will be available that were mentioned most often. The list of items allowing the team to prioritize the importance of each item has to be perused.
This will allow drawing a distinction of the most important items. Finally, a list of action items has to be made that will be used to improve the process and publish the results. When the next project begins, everyone on the team should review the Post Mortem Report from the prior release as to improve the next release.