Software Architecture, Process and Management Project ... · Software Architecture, Process and...

37
Software Architecture, Process and Management Project Management Allan Clark School of Informatics University of Edinburgh http://www.inf.ed.ac.uk/teaching/courses/sapm Semester Two 2012-13

Transcript of Software Architecture, Process and Management Project ... · Software Architecture, Process and...

Page 1: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

Software Architecture, Process and ManagementProject Management

Allan Clark

School of InformaticsUniversity of Edinburgh

http://www.inf.ed.ac.uk/teaching/courses/sapmSemester Two 2012-13

Page 2: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

Software Architecture, Process and Management

Clarifications — Everyone

I “Dear Allan” is fine, in particular I’m not a professor, butthanks for the implied promotion

I Your self-imposed deadline, also imposes a deadline on yourfeedback

I Two weeks after your deadline I should give you adequatefeedback

I This is not so interesting to the level 11s who have one shotI Level 10s, you could potentially write a follow up post (at least

for your second post) taking into account your feedback.I It will have to be about a different topic though

Page 3: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM

Clarifications — Level 11s

I Your only default deadline is Thursday 28th March 4pm, forsubmission of your report

I You may:I Impose an earlier deadline upon yourself by emailing it to me

I I suggest doing this by the end of this week, but that is only asuggestion

I Email me proposing a topic, which I will approve (or reject)and may generally comment upon.

I Note though that I only guarantee to respond within threeworking days

I You may submit before your deadline, but:I you may re-submit before your deadlineI Hence I won’t start to mark it until your deadlineI The deadline for me giving returning your feedback and

provisional marks is two weeks after your deadline, not whenyou submit it.

I If you intend it to be your absolute last version let me know.

Page 4: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM

Software and Buildings

I In the first lecture I compared software projects with buildingprojects.

I Nobody believes that one can take 100 people who canindividually build a rabbit hutch, put them together, andobtain a team capable of building anything suitable forhumans, even a small cottage.

I Yet this essentially the expectation for large software projectsI Take 100 people who can individually create small scriptsI Put them in a bunch of cubiclesI You will have a new operating system in 3-4 months

I Nobody looks for the most successful brick-layer and asks thatperson to design a new large building

I The person they look for is called an architect

Page 5: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM: Software and Buildings

First things first

I A large software project usually begins with the hiring ofseveral software developers

I These are expected to start coding, more or less immediately

I A large building project does not begin in this wayI It begins with the hiring of an architect

I The architect designs the buildingI Contractors bid for the contract to build the building

I There is often some back-and-forth between the architect andthe constructors at this point

I The contractors then plan the constructionI Eventually constructions begins

Page 6: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM: Software and Buildings

Differences

I Let’s be fair there are some differences between software andbuilding construction

I A software project is more malleable to changeI If a given design isn’t working it can be changedI Requirements change, sometimes called “feature creep”

I Construction projects on the other hand cannot get halfwaythrough only to realise that the design is not stable

I Customers often do not know what they want, they are notoften software experts themselves

I But everyone is fairly expert in building usage

Page 7: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM: Software and buildings

Differences

I We have been building buildings for a lot longer than we havebeen building software

I This is a picture of Skara-Brae in the Orkney Islands

I It is neolithic occupied around 3180 BCE-2500 BCE

Page 8: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM: Software and Buildings

Company OriginsI The world’s oldest known company

I Kongo Gumi Co., LtdI Japanese construction company founded in 578I Unfortunately went to administration in 2006

I

I Not really true, as Microsoft was founding in 1975

Page 9: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM: Software and Buildings

Company OriginsI The world’s oldest known company

I Kongo Gumi Co., LtdI Japanese construction company founded in 578I Unfortunately went to administration in 2006

I

I Not really true, as Microsoft was founding in 1975

Page 10: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM: Software and Buildings

Uhm

This is what happens when you establish your company in the 70s

Page 11: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM: Software and buildings

Quick Pop Quiz

I When was the company Nintendo established?

I What kind of company is Nintendo?

Page 12: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM: Software and buildings

Quick Pop Quiz

I September 1889

I It’s now a video game company but originally was a cardcompany, then a toy company

Page 13: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM: Large Project Management

Project Management

I Despite these differences, large software projects arenevertheless still large projects

I As such many successful approaches for managing largeprojects have been adopted for the management of largesoftware projects

I Some successfully, some not so successfullyI In the remainder of this lecture we will look at some of these

approachesI and attempt to relate them to software projects

I This lecture though is mostly to set the basis for thediscussion in future lectures

Page 14: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

Software Architecture, Process and Management

Project Management

I A project is ‘a temporary endeavour to produce a uniqueproduct, service, or result’ (PMI 2004).

I Project management techniques were originally developed forengineering projects like building construction.

I Project management focuses on planning, scheduling,monitoring, and controlling the complex interdependenciesamong subtasks.

I Project management techniques are most relevant whenconsidering the entire project in which software developmentis embedded, which includes other activities such asdocumentation, training, hardware, etc.

Page 15: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM — Formal Project Management

Example Project

I Consider building a garden shed, which involves:

1. Designing the shed2. Figuring out what materials are needed3. Ordering or purchasing the materials4. Putting together the various parts

I Some of these tasks depend on the others, some must bescheduled, some take labor, etc.

Page 16: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM — Formal Project Management

Project Management TasksI Probably before work starts, need to figure out:

I What needs to be doneI What order they can be doneI How long each will takeI How long the whole project must take in principleI How long the whole project is expected to take, given finite

resources

Page 17: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM — Formal Project Management

Project Scope Statement

I In order to make any decisions about the project, it needs tobe made concrete.

I This is done by writing a scope statement, such as:I We will build a garden shed capable of holding 2 bicycles, a

lawn mower, and a small workbenchI Planning permission will not be neededI We will not connect it to electric or water mainsI It cannot cost more than 1000 pounds or take longer than 1

month (may be a constraint rather than scope)

I Note that the scope statement includes not only what it willdo, but what will not be included.

Page 18: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM — Formal Project Management

Work Breakdown Structure

I A WBS is a diagram showing the major subtasks of theproject:

I Rule of thumb: break things down as far as necessary toestimate and schedule them, and no further.

Build Shed

Planning Obtain Materials Construction

Pour foundationBuild frameInstall sidingInstall roofFinish (door, etc)

Page 19: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM — Formal Project Management

Network Diagram

Design

1 Hour

MaterialsList1 Hour

Order Materials1 Hour

Deliver Materials4 Hours

Pour Foundation1 Hour

Build Frame1 Hour

Install Siding1 Hour

Install Roof2 Hours

Finish1 Hour

I Network diagrams can be constructed from the WBS, addingdependencies and estimated durations.

I Note that you can have different network diagrams for thesame project, depending on your assumptions and approach.

Page 20: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM — Formal Project Management

Critical Path

Design

1 Hour

MaterialsList1 Hour

Order Materials1 Hour

Deliver Materials4 Hours

Pour Foundation1 Hour

Build Frame1 Hour

Install Siding1 Hour

Install Roof2 Hours

Finish1 Hour

I The critical path is the longest path through the networkdiagram

I it is the minimum duration of the project if there are infiniteresources (so that tasks can occur in parallel) and accurateestimates.

I Here, everything but putting up the siding is on the criticalpath, and must happen in the order specified.

Page 21: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM — Formal Project Management

Slack

Design

1 Hour

MaterialsList1 Hour

Order Materials1 Hour

Deliver Materials4 Hours

Pour Foundation1 Hour

Build Frame1 Hour

Install Siding1 Hour

Install Roof2 Hours

Finish1 Hour

I Tasks not on the critical path have slackI the duration by which they can be late without making the

project later than the critical path duration.I Here, putting up the siding has one hour of slack: one hour

longer than estimated is okI but if it takes longer it will be the new critical path, and delay

the project.I Recall, this is assuming you have enough resources (in this

case, people and tools) to allow these two jobs to proceed inparallel

Page 22: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM — Formal Project Management

PERT/CPM ChartsI Network diagrams come in a variety of flavors with different

names:I A Program Evaluation and Review Technique (PERT) chart

shows dependencies and time estimates, using 3-pointestimates.

I The Critical Path Method (CPM) chart is a related alternative,using single estimates.

I Both show similar information, but use different methods forcalculating the critical path and slack.

Page 23: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM — Formal Project Management

Gantt Chart

I A Gantt chart shows the tasks and their durations graphically,in calendar form, with one bar per activity.

I The bar shows the earliest start date and expected duration.

Page 24: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM — Formal Project Management

Gantt Chart

I Gantt charts can also showI Summary activities (not here)I dependencies with lines (see SBML to Bio-PEPA)I Milestones, the dotted crosshairs

I The dependencies make slack clear (see SBML to Bio-PEPA)

Page 25: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM: Estimating Tasks

How do we decide how long each task will take?

I Mostly by guessing

I Many companies keep data on estimates

I Let’s play a quick gameI The task:

I Write a Java to HTML translatorI It needn’t do any error detection/correctionI But nor need it translate invalid JAVAI You cannot use an existing one, but you can use libraries for

parsing text or even parsing Java itself.

I Write down, how long you think this would take a singledeveloper?

Page 26: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM: Estimating Tasks

How do we decide how long each task will take?

I Mostly by guessing

I Many companies keep data on estimates

I Let’s play a quick game

I The task:I Write a Java to HTML translatorI It needn’t do any error detection/correctionI But nor need it translate invalid JAVAI You cannot use an existing one, but you can use libraries for

parsing text or even parsing Java itself.

I Write down, how long you think this would take a singledeveloper?

Page 27: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM: Estimating Tasks

How do we decide how long each task will take?

I Mostly by guessing

I Many companies keep data on estimates

I Let’s play a quick gameI The task:

I Write a Java to HTML translatorI It needn’t do any error detection/correctionI But nor need it translate invalid JAVAI You cannot use an existing one, but you can use libraries for

parsing text or even parsing Java itself.

I Write down, how long you think this would take a singledeveloper?

Page 28: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM: Estimating Tasks

How do we decide how long each task will take?

I Mostly by guessing

I Many companies keep data on estimates

I Let’s play a quick gameI The task:

I Write a Java to HTML translatorI It needn’t do any error detection/correctionI But nor need it translate invalid JAVAI You cannot use an existing one, but you can use libraries for

parsing text or even parsing Java itself.

I Write down, how long you think this would take a singledeveloper?

Page 29: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM: Estimating Tasks

How do we decide how long each task will take?

I “Planning Poker” is a game doing this rounds in developmentcircles

I There are cards for: http://www.crisp.se/bocker-och-produkter/planning-poker

I And a web-based implementation:http://www.planningpoker.com/

Page 30: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM — Formal Project Management

ResourcesI All these charts assume infinite resources

I things that can logically happen in parallel, are assumed tohappen in parallel.

I In reality, there are limited resources, so there are often manydependencies not shown in the charts.

I E.g. if only one person is available to work on the shedproject, the siding and roofing tasks must be done in serial,due to the resource constraint.

Page 31: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM — Formal Project Management

Crashing/Fast Tracking

I If the critical path is still not fast enough, its possible toshorten the duration by changing some assumptions.

I Crashing: Change the duration of some critical task, e.g., if itis possible to parallelize it by assigning more people to it.

I Fast tracking: Allow tasks to be done in parallel by changingthe logic in the network diagram.

I If tasks can be parallelized (as in building construction) theseallow total duration to be greatly reduced.

Page 32: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM — Formal Project Management

For More Information

I Project Management Institute (PMI): Largest internationalproject management organization; US-based (pmi.org)

I International Project Management Association (IPMA):Oldest international project management organisation(www.ipma.ch)

I Association for Project Management (APM): UK-basednational organisation (www.apm.org.uk)

I Project Management Glossary:www.maxwideman.com/pmglossary/

Page 33: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM — Formal Project Management

Use Project Management for your Software Projects?I Why?

I Software is just a project like any other, with tasks,interdependencies, resources, etc. Right?

I Why not?I The vast majority of software development tasks cannot be

estimated up frontI doing so requires knowing the requirements and the design,

plus how long debugging will takeI after those three tasks there’s very little work left.

I Clear win for Project Management:I Software projects embedded into larger projects.I Here, the software must be delivered on time for the rest of

the project to succeed, and depends on the other parts. Insuch cases, project management is very useful.

I Within the software-only portion, perhaps not.

Page 34: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM — Formal Project Management

Summary

I Project management charts and techniques are useful forscheduling tasks with complex dependencies

I WBS: main tasks

I Network diagram: dependencies, durations

I Gantt: calendar

I Be careful not to trust the charts just because they lookfancy; e.g., many constraints are not shown

Page 35: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM — Related Reading

I Required ReadingI Michael C. Glen. A Guide to Network Analysis.I A.B. Pyster, R.H. Thayer. Software Engineering Project

Management 20 Years Later. IEEE Software,September/October 2005.

I W. Royce. Successful Software Management Style: Steeringand Balance. IEEE Software, September/October 2005.

I R.N. Charette. Large-Scale Project Management Is RiskManagement. IEEE Software, July 1996.

Page 36: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

SAPM — Related Reading

I Suggested ReadingI S. Garcia. How Standards Enable Adoption of Project

Management Practice. IEEE Software, September/October2005.

I B. Boehm, R. Turner. Management Challenges toImplementing Agile Processes in Traditional DevelopmentOrganizations. IEEE Software September/October 2005.

I P.C. Clements, L.G. Jones, L.M. Northrop, J.D. McGregor.Project Management in a Software Product Line Organization.IEEE Software September/October 2005.

I IEEE Standard 1058-1998 for Software Project ManagementPlans.

I SEOC 2006/2007 Lecture Notes on Project Management.I ACM/IEEE Software Engineering Code of EthicsI Goldratt, Eliyahu M., Critical Chain, North River Press, 1997.

Page 37: Software Architecture, Process and Management Project ... · Software Architecture, Process and Management Project Management I A project is ‘a temporary endeavour to produce a

Any Questions

Any Questions?