Project Management Based on Sommerville’s “Software Engineering” textbook Software Project Management • Aimed to ensure that the software is delivered on time, within budget and schedule constraints, and satisfies the requirements of the client • Management of software projects is different from other types of management because: • • • • Software is not tangible Software processes are relatively new and still “under trial” Larger software projects are usually “one-off” projects Computer technology evolves very rapidly 2 Management Activities • • • • • • • Writing proposals Planning the project Scheduling the project Estimating the cost of the project Monitoring and reviewing the project’s progress Selecting, hiring, and evaluating personnel Writing reports and giving presentations 3 Project Planning • A project plan should be drawn at the start of the project. This plan drives the project and needs to be continuously adjusted • The role of the project manager is to anticipate possible problems and be prepared with solutions for these problems • Other plans that need be developed: • Quality plan • Validation and verification plan • Configuration management plan • Maintenance plan • Staff development plan 4 Project Planning • Milestone = end-point of a specific, distinct software process activity or task (for each milestone a report should be presented to the management) • Deliverable = project result delivered to the client • In order to establish milestones the phases of the software process need be divided in basic activities/tasks. Example for requirements engineering ACT IVIT I E S F easi bi li ty s tu dy Requ ir em ent s anal y si s P ro toty pe d evelo pm en t Des ig n s tu dy Requ ir em ent s s pecifi cat io n F easi bi li ty repo rt Requ ir em ent s d efi ni ti on Evalu ati on report Archi tect ural d es ig n Requ ir em ent s s pecifi cat io n M I L ES T O N E S 5 Project Scheduling…… • Software managers: • • • • • • • Divide the project in activities/tasks Estimate time and resources needed to finish the project Allocate resources to tasks Try to employ efficiently all the project personnel Minimize dependencies between tasks and teams Prepare contingency plans Rely on experience and intuition 6 Scheduling Process Iden ti fy acti vi ti es So ftw are requ irem en ts 7 Iden ti fy acti vi ty d ep end enci es Es ti m at e resou rces for acti vi ti es Al l ocate peo pl e t o act iv it ies C reate pro ject chart s Act iv it y chart s and b ar chart s Project Scheduling • Graphical notations used in software project scheduling: • Tables: summary description of tasks • Bar charts: show schedule against the time • Activity charts: graphs that depict dependencies between tasks and indicate the critical path (the longest path in the activity graph) 8 Tabular description of tasks T ask T1 T2 T3 T4 T5 T6 T7 T8 T9 T 10 T 11 T 12 9 D uration (da ys) 8 15 15 10 10 5 20 25 15 15 7 10 D ependencies T 1 (M 1) T 2, T 4 (M 2) T 1, T 2 (M 3) T 1 (M 1) T 4 (M 5) T 3, T 6 (M 4) T 5, T 7 (M 7) T 9 (M 6) T 11 (M 8) Activity Chart 1 4 /7 /0 3 1 5 da y s 1 5 da y s M1 T3 8 da y s T9 T1 5 da y s 4 /8/0 3 2 5 /8/0 3 2 5 /7 /0 3 M4 T6 4 /7 /0 3 M6 M3 star t 7 da y s 2 0 da y s 1 5 da y s T7 T 11 T2 2 5 /7 /0 3 5 /9/0 3 1 1 /8/0 3 1 0 da y s 1 0 da y s M2 T4 M7 T5 T 10 1 8 /7 /0 3 M8 1 5 da y s 1 0 da ys T 12 M5 2 5 da y s Finish T8 1 9 /9/0 3 10 Gannt Chart • Example of bar chart or Gannt chart 4 /7 11 /7 1 8 /7 2 5 /7 1 /8 8 /8 1 5 /8 2 2 /8 2 9 /8 5 /9 1 2 /9 1 9 /9 St art T4 T1 T2 M1 T7 T3 M5 T8 M3 M2 T6 T5 M4 T9 M7 T 10 M6 T 11 M8 T 12 11 Finish Staff Allocation Chart 4 /7 Fred 11 /7 1 8/ 7 2 5/ 1 /8 8 /8 1 5/ 8 22 /8 29 /8 5 /9 T4 T8 T1 1 T1 2 Jane T1 T3 T9 Anne T2 T6 Jim M ary 12 T7 T5 T1 0 1 2/ 9 19 /9 Risk Management • Risk = some adverse circumstance that may happen and affect negatively the project, the product, and/or the business • Categories of risk: • Project risks • Product risks • Business risks • Risk management means anticipating risks and preparing plans to reduce their effect 13 Types of Risks 14 R isk A ffec ts D escr iption S taff tu rn ov er P ro je ct E x pe rie n ce d sta ff w ill lea v e t h e p ro je ct b efore it is f in ishe d. M a na g em en t c h an ge P ro je ct T h er e w ill be a c h an ge of o rg an is at ion al m a na g em en t w ith d iffe ren t pr io ritie s. H ar dw ar e un av ai lab ili ty P ro je ct H ar dw ar e th at is esse nt ial fo r th e p ro jec t w il l n ot be d eli v ered o n s ch ed u le . R e qu irem en ts ch an g e P ro je ct a nd p ro du ct T h er e w ill be a large r n umb er of ch an g es to the req u irem en ts t ha n an tici p ate d . S pe ci fic a tio n de lay s P ro je ct a nd p ro du ct S pe ci fic a tio ns of essen tial inter fac es a re n ot av ai lab le o n sch ed u le S iz e un de re stim ate P ro je ct a nd p ro du ct T h e siz e of t he s ystem h as be e n u nd erestim ate d . C AS E t o ol u nd er p er fo rm an ce P ro du ct C AS E t o ols w hich su pp ort th e p ro je c t d o n ot p er fo rm as an tic ip ate d Tec h no lo gy ch an g e B us in ess T h e u n de rlying tec hn olog y o n w h ic h th e sys tem is b ui lt is sup ers ed e d b y ne w t ec h no lo g y. P ro du ct co mp et ition B us in ess A c o m p etit ive prod uc t is m ar k eted be fore the s ystem i s com pl e ted . Risk Management Process R i sk i dent ifi cati on R i sk anal ys is Li s t o f po ten ti al ris k s P rio rit is ed ri sk l is t 15 R is k pl ann ing R i sk avo id ance and co nt in gen cy p lans R i sk m o ni to ri ng R i sk ass ess m ent Risk Categories 16 R isk ty p e P ote nti al indi cato rs T echno logy L ate d elive ry of ha rdwa re o r suppo rt so ft wa re, m any repo rt ed techno logy prob lems P eop le Poor sta ff m orale, poo r relati onsh ips am ong st tea m m em be r, job ava il ab il ity O rgan isa ti ona l O rgan isa ti ona l gos si p, lack o f ac ti on by sen ior ma nage m en t T ool s R elu ct ance by tea m m em be rs to us e too ls, comp laints abou t CA SE too ls , de m ands fo r high er-powe red work st ati ons R equi rem en ts M any requ ir em en ts change E stim ati on Fail ur e to m eet ag reed schedu le, fai lu re to c lear r epor ted de fec ts reques ts , cus tom er comp la in ts Management commonalities • These activities are not peculiar to software management. • Many techniques of engineering project management are equally applicable to software project management. • Technically complex engineering systems tend to suffer from the same problems as software systems. Project staffing • May not be possible to appoint the ideal people to work on a project • Project budget may not allow for the use of highly-paid staff; • Staff with the appropriate experience may not be available; • An organization may wish to develop employee skills on a software project. • Managers have to work within these constraints especially when there are shortages of trained staff. Why is Project Management so hard? • Engineers and Architects who build skyscrapers and bridges have it easy • Software Engineers and Software Architects have it hard... why? • What makes these two design activities so different? • Why did the Waterfall process used to be so common for software? • Could Agile be used for skyscrapers and bridges?