Project Management

For any significant software project that involves several software developers and multiple software components that must be written, integrated, tested, and delivered on time, you will need project management.
<font size="4">What is it?
Project management is the discipline of organizing and managing resources in such a way that these resources deliver all the work required to complete a project within defined scope, time, and cost constraints.
**
It is a common mistake to think that the time spent on project management is really just taking away from the time that you could be actually writing the code. From this point of view project management just slows down the delivery of the final product. For very small projects this might be true but for most projects the time spent on project management will pay for itself in the long run. Without project management you do not know how far along you are, what is left to do, in what order the tasks must be done, and you have no good estimate as to how long the project will take.
<font size="4">Project Management Steps.

  1. Project planning.
    This is where you set the scope of the project, determine the resources you will need, and estimate the work involved. This is the heart of project management.
    During the planning phase you should create a project schedule. Having a project schedule is critical to the success of your project not because it gives you an estimate of how long it will take, but because during the process of creating your project schedule you will discover all the pieces or software tasks that must be completed and in what order they must be done. In addition you will have a good idea of how many people you will need to complete the project within a reasonable amount of time. I think that just creating a schedule where every task's time to complete is set to 1 day will help you organize and understand what needs to be done. Adding time estimates to each task is useful but actually not the greatest benefit of the schedule.
    CISL thinks project management is so important that they have provided an online project management tool called <A href="http://www.cisl.ucar.edu/ess/services/enact/">Enact</A> that you may use for your project. This tool allows you to create a schedule, make reports, and track your projects progress. If you are not part of CISL you should use some other project management tool such as Microsoft project to track your projects.
  2. Software requirements.
    Central to managing a project is knowing what you need to build. Software requirements are an agreement between you and your customer as to what will be created.
  3. Identify the critical path.
    The critical path is the minimum set of tasks that must be completed for your project to be delivered on time. Not only must they be completed but they must be completed in a certain sequence. Identifying these tasks allows you to track how well you are doing.
  4. Project monitoring and control.
    Project monitoring and control simply means keeping the software team and management up to date on the projects progress. You should hold regularly scheduled short status meetings to learn how your team is doing and if they are still matching the schedule. If the project deviates from the plan you need to know this as soon as possible so you can take corrective action.
    This part of project management really just involves simple communication. You let you team know what is expected of them and they tell you how they are doing.
  5. Risk management.
    Risk management involves identifying the top risks to your project, and thinking up ways to mitigate or lessen the risk. The purpose here is think about and plan for the risk beforehand so that you are not taken by suprise.
    You should make a list of the top 5 or 10 risks in order of importance to your project and then for each risk, develop strategies that will either avoid the risk alltogether or at least lessen the risk. 
    Then follow your plan. Implement the strategies that mitigate the risk. Initial risk management plans will never be perfect. Practice, experience, and actual loss results will necessitate changes in the plan and contribute information to allow possible different decisions to be made in dealing with the risks being faced. Risk analysis results and management plans should be updated periodically to evaluate whether the previously selected security controls are still applicable and effective.
  6. Test plans.
    Part of your project management should include test plans that describe how the software will be tested. This can and should be included in your project schedule as part of the overall project planning. No project management is complete unless your software product has been tested against the requirements. Typically the use cases you documented in the requirements phase of your project should be used as the foundation of your test plan. If your software can handle all the use cases you are well on your way to meeting your objectives.
    For more information about project management please refer to the following.
  • Effective Project Management: How to Plan, Manage, and Deliver Projects on Time and Within Budget by Robert K. Wysocki, Robert Beck, and David B. Crane (Paperback - Sep 15, 1995)