Professional Documents
Culture Documents
Planning
Planning
Software project management is concerned with activities involved in ensuring that software is delivered on time and on schedule and in accordance with the requirements of the organisations 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 organisation developing the software
Management activities
Proposal writing Project planning and scheduling Project costing Project monitoring and reviews Personnel selection and evaluation Report writing and presentations
Project planning
A plan, drawn up at the start of the project, should be used as the driver for the project The initial plan should be the best possible plan given the available information. It must be regularly revised as new information becomes available
Project organisation
People involved and their roles in the team
Risk analysis
Possible risks, their likelihood and reduction strategies
Project schedule
Activity dependencies, estimated milestone time, people allocation
Activity organization
Activities in a project should be organised to produce tangible outputs for management to judge progress Milestones are the end-point of a process activity Deliverables are project results delivered to customers The waterfall process allows for the straightforward definition of progress milestones
Project scheduling
Split project into tasks and estimate time and resources required to complete each task Organize tasks concurrently to make optimal use of workforce Minimize task dependencies to avoid delays caused by one task waiting for another to complete Important to note that the schedule evolves over time. During early stages of planning, a macroscopic schedule is developed that identifies all major SE activities. As the project gets under way, each entry is refined into a detailed schedule where specific tasks required to accomplish an activity are identified and scheduled
Scheduling problems
Estimating the difficulty of problems and hence the cost of developing a solution is hard Common myth: If we fall behind schedule, we can always add more programmers and catch up later in the project
Productivity is not proportional to the number of people working on a task Adding people to a late project makes it later because of communication overheads (CLASS DISCUSSION) Example: 4 software engineers, each capable of producing 5000 LOC/year, are working on an individual project. They are placed on a team project. Assume the overhead associated with each communication path is 250 LOC/year. What will the team productivity be?
Activity network
Staff allocation