Managing the requirements
- Ensuring all requirements are documented
- Agreeing the acceptance criteria
- Reviewing these with all users, including end users, operators, support engineers and system integrators
- Enforcing change control discipline
Planning the project
- Planning and documenting all software project activities
- Estimating software size (code, data, etc)
- Estimating effort
- Scheduling milestones and deliveries
- Negotiating commitments related to the project with affected groups and individuals
Keeping financial control
- Estimating costs
- Agreeing budgets with senior management
- Tracking actual expenditure against budget
- Forecasting future expenditure against budget
Tracking and oversee the work
- Assigning work to team members
- Tracking delivery and performance against the plan
- Taking corrective action to address deviations from the plan
- Addressing the risks associated with cost, resource, schedule and technology
- Protecting the client's intellectual property
Managing sub-contracts
- Setting up the contracts
- Agreeing commitments with subcontractors
- Tracking actual results and performance against commitments
Assuring software quality
- Establishing an effective software development process
- Ensuring all work products are reviewed, tested and signed-off
- Establishing a configuration management system as a repository for all work products
- Establishing the change request / problem report process
Looking after the people
- Recruiting staff
- Ensuring staff are adequately trained
- Communicating project objectives and corporate issues to team members
- Providing individuals with feedback on their own performance
- Motivating the team
Reporting to senior management
- Reporting expenditure (actual and forecast) against budget
- Reporting technical performance
- Reporting schedule performance
- Addressing conflicts and issues not resolvable at lower levels
- Reporting project risks: review and track to closure