Introduction Planning consists of two phases: project initiation and project management Planning is necessary to ensure that a project: Is completed on time Within a specified budget The process of ensuring these objectives are met is project management.
The Result of Bad Planning The project to develop Microsoft Word was initiated in 1984. Estimated time of completion : One year Actual time of completion: Five years Reasons for not completing on time: Developer burnout as a result of unreasonable work hours and pressure. Code was prematurely finalized resulting in a large increase in the time needed for debugging.
Project Initiation and Management Project initiation Obtaining system requirements Feasibility study (technical, economic, and organizational) Project management Create a work plan Control and direct the project
Creating a Work Plan A work plan is created at the beginning of the project. A work plan must be updated throughout the life cycle of the project. A work plan lists the details for each task that will be performed during the project.
Contents of a Work Plan A work plan specifies the following for each task: Name/ description of the task Start date Completion date Person assigned to the task Deliverables Completion status Priority Resources needed Estimated time Actual time
Approaches for Determining Tasks Top-down approach Identify high-level tasks Break down high-level tasks into subtasks Standard list of tasks/methodology Methodologies/list may exist for similar projects
Time Estimates The time of each task must be estimated at the beginning of the project. These estimates are refined during the project lifecycle. Estimating time: Estimate based on the time taken for the planning phase Formal techniques Similar projects Size-effort-time Programming language effects time – important decision
Dealing with Tasks Exceeding Time Estimates Reduce functionality in consultation with client without lowering quality Increase cost in terms of working hours. Addition of team members?
Timeboxing Setting a date for completion of the system Prioritize the functions that the system must provide Develop the system with the most important function Postpone functions that cannot be included by the deadline Deliver the system with the most important function Repeat the previous steps to extend the system to include additional functions Setting a date for completion of the system Prioritize the functions that the system must provide Develop the system with the most input function Postpone functions that cannot be included by the deadline Deliver the system with the most important function Repeat the previous steps to extend the system to include additional functions
Teamwork Tasks must be assigned to team members with the necessary skills. Technical skills Interpersonal skills In some cases the team maybe lacking in certain skills needed Train team members Mentoring another team
Preventing De-motivation Setting unrealistic deadlines Ignore good efforts Create a low-quality product that members cannot be proud of. Make decisions without getting input from all team members. Poor working conditions
Avoiding Team Conflict Clearly define each team members role in the project Each team member must be held responsible for his/her task Develop a project charter which specifies ground rules, e.g. dates for staff meetings, how the team will communicate, procedures for updating work plans. Clearly define the plans for the project. Schedule commitments ahead of time. Forecast other priorities and their impact on the project.
Example of a Project Charter Staff meeting every Friday at 14:00 to report on status of each task Update work plan by 17:00 every Friday Discuss problems with project manager as soon as encountered Support each other when help is needed to ensure that the deadline is met Maintain a team bulletin board on which important changes of the project are posted.
Controlling and Directing the Project Refining original time and possible cost estimates Tracking individual tasks Coordinating project activities Managing scope Ascertaining risk
Refining original time and possible cost estimates If a particular task takes longer than estimated to complete, time estimates can be recalculated taking this time difference into consideration
Tracking individual tasks The work plan is used to track progress, and thus must be updated regularly. Some tasks may be interrelated. Gantt charts are used to track tasks for smaller projects. PERT charts for larger projects.
Coordinating project activities Computer-aided software engineering (CASE) tools, e.g. Rational Rose, Visible Analyst and Logic works. Standards - Certain standards need to be set to ensure that team members can work together and components worked on by different members can be easily integrated. Documentation- of all the project activities and decisions must be maintained. The documentation should include meeting agenda, minutes, original work plans and updates, details of deliverables.
Managing scope The scope of a project can be managed by putting a lot of effort into correctly identifying the requirements of the system at the beginning of the project. Analysis techniques must be effectively applied.
Ascertaining risk Every project will have certain risks associated with it. These risks and ways of addressing them need to be identified. Examples of risks include, weak personnel, poor design, optimistic estimates.