You are on page 1of 6

University of Toronto, Department of Computer and Mathematical Sciences

CSCD08 Software

Engineering

Winter 2012

8c. project planning and control

pg 1

resource allocation planning


When planning human resource usage, you have to consider: required technical skills available availability of personnel for the project duration of assignment to the project starting date of project When planning hardware and software tools usage, you have to consider: selection availability for the project duration of assignment to the project starting date for the project

matching people to tasks


Specific statements of responsibility and accountability are needed for: senior management + executive product managers + sales team project + development managers technical staff - the practitioners: team leads, developers, testers, designers, etc. customers / end users You must also consider their different goals, concerns and responsibilities outside the project, as well as their possible influence on the success of the project. And, you must also consider (reluctantly) the threat of lawyers and sales people. The performance of individual team members (programmers for example) may vary by more than an order of magnitude examples programming speed 1:10 1 day VS 1.5 weeks code size 1:25 100K VS 2.5MB debugging time 1:15 1 hour VS 2 days Unfortunately, we dont have good methods for estimating parameters of programmer performance with respect to the activities of a project.

University of Toronto, Department of Computer and Mathematical Sciences

CSCD08 Software

Engineering

Winter 2012

8c. project planning and control

pg 2

personnel capabilities
Capability can be measured in many ways: ability to perform the work experience with similar projects experience with similar techniques education and training written communication skills management skills interest in the work (project) experience with project tools and languages experience with project development ability to communicate with others ability to share responsibility with others

Since there are many different kinds of activities in a project (analysis, design, implementation, testing, documenting, research etc.), different individuals will be effective and efficient at different kinds of activities.

personnel assignment
A critical part of project management is the assignment of the available personnel to the activities in the project. We must try to simultaneously optimize several dimensions: assign each individual to the activities where they will be most effective and efficient assign individuals so they will work well together and cooperate on shared activities assign the best people to the critical paths try to keep the personnel motivated and productive beware of personnel not safe around customers beware of corrosive behavior that can erode team morale weigh technical skills and personal qualities such as integrity, perseverance, energy levels

University of Toronto, Department of Computer and Mathematical Sciences

CSCD08 Software

Engineering

Winter 2012

8c. project planning and control

pg 3

controlling the project variables


What has to be controlled? irregular variables (not fully controllable by project management) project staffing levels sometime only a crisis will get you needed resources computer experience of users goal variables (the trade-off between these is the major issue here) minimize development time (fast?) maximize efficiency (cheap?) maximize quality (good?) control variables (controllable by project management) project organization tools to be used (within the constraints of company practices) efficiency of resulting software (to some extent) A good project manager : knows and understands the goals of the project understands the mechanics of project management has a conceptual control model that acknowledges influences of variables on each other knows how to measure progress has sufficient control of the above variables knows how to measure the impact of changes in any of the variables leads by example, walks the talk

Controlling software development must include measuring the effectiveness of the project and the product without measurement you cant assess progress without measurement you cant assess quality without measurement you cant know where to focus your attention

University of Toronto, Department of Computer and Mathematical Sciences

CSCD08 Software

Engineering

Winter 2012

8c. project planning and control

pg 4

choosing the right management style and development methodology


One way to look at a project is by classifying the product, the process and the resources. product characteristics whether or not user functionality and quality requirements are clearly specified the volatility of the requirements process characteristics possibility of redirecting the development process the degree to which the process can be measured the knowledge we have about the effects of control action degree to which unknown tools are being used resource characteristics availability of the appropriate qualified personnel

Looking at all combinations of certainty in these, we have 4 scenarios: realization, allocation, design, and exploration. product certainty high high high high low low low low process certainty high high low low high high low low resource certainty high low high low high low high low

realization allocation note 1 design note 2 note 2 note 2 exploration

Some of the above combinations are not reasonable: note 1 if we do not know how to carry out the development process, we cant know the resources needed note 2 if we have little certainty about the product to be delivered, we can have no certainty about the process to be followed, and therefore the resources needed

University of Toronto, Department of Computer and Mathematical Sciences

CSCD08 Software

Engineering

Winter 2012

8c. project planning and control

pg 5

problem type product certainty process certainty resource certainty when might this happen? primary control goal?

realization high high high idealistic, seldom happens optimize resource usage, efficiency and schedule

allocation high high low rapidly expanding s/w organization acquisition and training of personnel, possibly subcontract standardization of product and process

design high low low possibly a new s/w organization control of the process

exploration low low low this happens all too often maximize results, lower the risks

coordination, management style?

development strategy to use? cost estimation method?

standardization of product, process and resources; hierarchy, separation style waterfall

standardization of product and process

adhocracy, mutual adjustment, commitment, relation style incremental, prototyping flexibility expert estimate, risk analysis, provide guidance

waterfall

incremental

models, guard process

models, sensitivity analysis

database with project data, sensitivity analysis

Sensitivity analysis measures the impact on project outcomes of changing one or more key input values that is uncertain. In the project management context, it gives the PM a measure of how sensitive project outcomes are to adjusting certain control variables, so that due caution can be observed in adjusting such variables.

University of Toronto, Department of Computer and Mathematical Sciences

CSCD08 Software

Engineering

Winter 2012

8c. project planning and control

pg 6

project coordination and communication


There many reasons software projects get into trouble: scale projects are large, leading to complexity, confusion and coordination difficulties uncertainty continuous changes / unanticipated changes interoperability need to communicate with existing software and hardware, and to conform to predefined constraints, which may also evolve during project lifetime.

You must establish formal and informal methods of communications to handle these anticipated problems as well as avoid or handle unanticipated ones.

communication methods
formal impersonal approaches: documents and deliverables, memos, milestones, schedules, project control tools, change requests, etc. formal interpersonal procedures: focus on QA, status reviews, design and code inspections information interpersonal procedures: group meetings including conference calls, video conferences electronic communication: e-mail, news groups, web pages interpersonal network: informal discussions with non-group members

You might also like