L17: Project Management Flashcards
What is project management?
Software project management is concerned with activities involved in ensuring that software is delivered on time and within budget and in accordance with the requirements of the organisations developing and procuring the software (while also satisfying legal and ethical obligations).
- The product is not tangible so it is hard to judge progress
- Many software projects are ‘one-off’ projects
- Software processes are variable and organisation specific, hard to predict success
What does success look like for a project?
Good project management is essential if software engineering projects are to be developed on schedule and within budget
- Deliver the software to the customer at the agreed time
- Keep overall costs within budget
- Deliver software that meets the customer’s expectations
- Maintain a coherent and well-functioning development team
What are some factors affecting project management
- Company size (policies, processes, communications)
- Software customers (sector of customer)
- Software size (team size, location, coordination)
- Software type (consumer or safety-critical)
- Organisational culture (attitude to risks)
- Software development process (agile vs plan-driven)
What are some generic project management activities?
- Project planning (planning, estimating, scheduling project development, assigning work)
- Risk management (monitor, mitigate and address risks)
- People management (choose team members, improve performance and teamwork)
- Reporting (report on progress, communicate to stakeholders)
- Proposal writing (write proposal to win contract)
What does project planning involve
- breaking down the work into parts
- assigning these to project team members
- anticipating problems that might arise
- preparing tentative solutions to those problems
What is the project plan
The project plan, created at the start of the project is used to communicate how the work will be done to the project team and customers, and help assess progress on the project.
Describe project planning in plan-driven development (with pros and cons).
Plan-driven projects are organised around a complete project plan from the outset.
- Development process is planned in detail in advance
- Managers use the plan to support project decision making and as a way of measuring progress
- Early planning is helpful for organisational issues such as staff availability and other projects to be taken into account
- Potential problems and dependencies can be identified early
- Many early decisions may need to be revised due to changes in the development environment
What is project scheduling
Process of deciding how the work is organised into tasks, and when these will be executed.
Estimate
- Time taken to complete task
- Effort required
- Who will work on the task
- Resources needed for the task
What are the key concepts and strategies in scheduling?
Concepts
- Tasks / activities
- Milestones (points in the schedule against which you can assess progress)
- Deliverables (work products that are delivered to the customer)
Strategies
- Organise tasks concurrently to make optimal use of workforce
- Minimise task dependencies to avoid delays caused by one task waiting for another to complete
What are some scheduling challenges?
- Estimating the difficulty of problems and the cost of developing a solution is hard
- 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
- The unexpected always happens so always need contingency in planning
Which charts can we use for scheduling?
Activity bar chart: A chart that displays tasks, durations and their dependencies.
Staff allocation chart: Shows which tasks the staff are working on in each week
Describe project planning in agile development (with pros and cons).
Agile project plans are produced incrementally
- Incremental development with regular releases
- Unlike plan-driven approaches, the functionality of agile increments is not planned in advance but is decided during the development
- The decision on what to include in an increment depends on progress and on the customer’s priorities
- The customer’s priorities and requirements change so a flexible plan that can accommodate these changes makes sense
- A software increment is always delivered at the end of each iteration
- Reliant on customer involvement and availability
- Some customers may be more familiar with plan-driven, difficult to engage with agile
What are the agile planning stages?
Release planning
Looks ahead for several months and decides on the features that should be included in a release of a system.
Iteration planning
Short term outlook. Focuses on planning the next increment of a system, typically 2-4 weeks of work for the team
What is task allocation?
User stories are broken down into development tasks.
- A development task should take 4–16 hours
- All of the tasks that must be completed to implement all of the stories in that iteration are listed
- Individual developers then sign up for the specific tasks that they will implement
The whole team gets an overview of the tasks to be completed in an iteration and developers have a sense of ownership over the tasks- motivating them to complete the task.
What is risk management?
Risk management is concerned with identifying risks and drawing up plans to minimise their effect on a project.
These uncertainties can stem from:
- Loosely defined requirements
- requirements changes due to changes in customer needs,
- difficulties in estimating the time and resources required for software development
- differences in individual skills