• No results found

Software Architecture, Process and Management Project Management

N/A
N/A
Protected

Academic year: 2021

Share "Software Architecture, Process and Management Project Management"

Copied!
37
0
0

Loading.... (view fulltext now)

Full text

(1)

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

(2)

Software Architecture, Process and Management

Clarifications — Everyone

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

I Your self-imposed deadline, also imposes a deadline on your feedback

I Two weeks after your deadline I should give you adequate

feedback

I This is not so interesting to the level 11s who have one shot

I Level 10s, you could potentially write a follow up post (at least

for your second post) taking into account your feedback.

(3)

SAPM

Clarifications — Level 11s

I Your only default deadline is Thursday 28th March 4pm, for submission 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 a suggestion

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 three

workingdays

I You may submit before your deadline,but:

I you mayre-submit before your deadline

I Hence I won’t start to mark it until your deadline

I The deadline for me giving returning your feedback and

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

(4)

SAPM

Software and Buildings

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

I Nobody believes that one can take 100 people who can individually build a rabbit hutch, put them together, and obtain a team capable of building anything suitable for humans, even a small cottage.

I Yet this essentially the expectation for large software projects

I Take 100 people who can individually create small scripts

I Put them in a bunch of cubicles

I You will have a new operating system in 3-4 months

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

(5)

SAPM: Software and Buildings

First things first

I A large software project usually begins with the hiring of several software developers

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

I A large building project does not begin in this way

I It begins with the hiring of an architect

I The architect designs the building

I Contractors bid for the contract to build the building

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

I The contractors then plan the construction

(6)

SAPM: Software and Buildings

Differences

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

I A software project is more malleable to change

I If a given design isn’t working it can be changed

I Requirements change, sometimes called “feature creep”

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

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

(7)

SAPM: Software and buildings

Differences

I We have been building buildings for a lotlonger than we have been building software

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

(8)

SAPM: Software and Buildings

Company Origins

I The world’s oldest known company

I Kong¯o Gumi Co., Ltd

I Japaneseconstructioncompany founded in 578

I Unfortunately went to administration in 2006

I

(9)

SAPM: Software and Buildings

Company Origins

I The world’s oldest known company

I Kong¯o Gumi Co., Ltd

I Japaneseconstructioncompany founded in 578

I Unfortunately went to administration in 2006

I

(10)

SAPM: Software and Buildings

Uhm

(11)

SAPM: Software and buildings

Quick Pop Quiz

I When was the company Nintendo established?

(12)

SAPM: Software and buildings

Quick Pop Quiz

I September 1889

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

(13)

SAPM: Large Project Management

Project Management

I Despite these differences, large software projects are nevertheless still large projects

I As such many successful approaches for managing large projects have been adopted for the management of large software projects

I Some successfully, some not so successfully

I In the remainder of this lecture we will look at some of these approaches

I and attempt to relate them to software projects

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

(14)

Software Architecture, Process and Management

Project Management

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

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

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

I Project management techniques are most relevant when considering the entire project in which software development is embedded, which includes other activities such as

(15)

SAPM — Formal Project Management

Example Project

I Consider building a garden shed, which involves:

1. Designing the shed

2. Figuring out what materials are needed

3. Ordering or purchasing the materials

4. Putting together the various parts

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

(16)

SAPM — Formal Project Management

Project Management Tasks

I Probably before work starts, need to figure out:

I What needs to be done

I What order they can be done

I How long each will take

I How long the whole project must take in principle

I How long the whole project is expected to take, given finite

(17)

SAPM — Formal Project Management

Project Scope Statement

I In order to make any decisions about the project, it needs to be 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 workbench

I Planning permission will not be needed

I We will not connect it to electric or water mains

I 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 will do, but what willnotbe included.

(18)

SAPM — Formal Project Management

Work Breakdown Structure

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

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

Build Shed

Planning Obtain Materials Construction

Pour foundation Build frame Install siding Install roof Finish (door, etc)

(19)

SAPM — Formal Project Management

Network Diagram Design 1 Hour Materials List 1 Hour Order Materials 1 Hour Deliver Materials 4 Hours Pour Foundation 1 Hour Build Frame 1 Hour Install Siding 1 Hour Install Roof 2 Hours Finish 1 Hour

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

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

(20)

SAPM — Formal Project Management

Critical Path Design 1 Hour Materials List 1 Hour Order Materials 1 Hour Deliver Materials 4 Hours Pour Foundation 1 Hour Build Frame 1 Hour Install Siding 1 Hour Install Roof 2 Hours Finish 1 Hour

I The critical path is the longest path through the network diagram

I it is the minimum duration of the project if there are infinite resources (so that tasks can occur in parallel) and accurate estimates.

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

(21)

SAPM — Formal Project Management

Slack Design 1 Hour Materials List 1 Hour Order Materials 1 Hour Deliver Materials 4 Hours Pour Foundation 1 Hour Build Frame 1 Hour Install Siding 1 Hour Install Roof 2 Hours Finish 1 Hour

I Tasks not on the critical path have slack

I 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 ok

I 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 in parallel

(22)

SAPM — Formal Project Management

PERT/CPM Charts

I 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-point estimates.

I The Critical Path Method (CPM) chart is a related alternative,

using single estimates.

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

(23)

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.

(24)

SAPM — Formal Project Management

Gantt Chart

I Gantt charts can also show

I Summary activities (not here)

I dependencies with lines (see SBML to Bio-PEPA)

I Milestones, the dotted crosshairs

(25)

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 translator

I It needn’t do any error detection/correction

I But nor need it translate invalid JAVA

I 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 single developer?

(26)

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 translator

I It needn’t do any error detection/correction

I But nor need it translate invalid JAVA

I 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 single developer?

(27)

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 translator

I It needn’t do any error detection/correction

I But nor need it translate invalid JAVA

I 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 single developer?

(28)

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 translator

I It needn’t do any error detection/correction

I But nor need it translate invalid JAVA

I 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 single developer?

(29)

SAPM: Estimating Tasks

How do we decide how long each task will take?

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

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

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

(30)

SAPM — Formal Project Management

Resources

I All these charts assume infinite resources

I things that can logically happen in parallel, are assumed to

happen in parallel.

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

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

(31)

SAPM — Formal Project Management

Crashing/Fast Tracking

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

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

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

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

(32)

SAPM — Formal Project Management

For More Information

I Project Management Institute (PMI): Largest international project 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-based national organisation (www.apm.org.uk)

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

(33)

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 front

I doing so requires knowing the requirements and the design,

plus how long debugging will take

I 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. In such cases, project management is very useful.

(34)

SAPM — Formal Project Management

Summary

I Project management charts and techniques are useful for scheduling 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 look fancy; e.g., many constraints are not shown

(35)

SAPM — Related Reading

I Required Reading

I 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: Steering

and Balance. IEEE Software, September/October 2005.

I R.N. Charette. Large-Scale Project Management Is Risk

(36)

SAPM — Related Reading

I Suggested Reading

I S. Garcia. How Standards Enable Adoption of Project

Management Practice. IEEE Software, September/October 2005.

I B. Boehm, R. Turner. Management Challenges to

Implementing Agile Processes in Traditional Development Organizations. 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 Management

Plans.

I SEOC 2006/2007 Lecture Notes on Project Management.

I ACM/IEEE Software Engineering Code of Ethics

(37)

Any Questions

References

Related documents

Scheduled for waste or city of new westminster collection schedule but people in addition, the green waste and yard trimmings and place your next to fines!. They do i dispose of

The purpose of this study was to determine if one or more of the psychiatric disorders of generalized anxiety disorder, posttraumatic stress disorder, major depression recurrent,

Benzodiazepine and z-hypnotic prescribing from acute psychiatric inpatient discharge to long-term care in the

For instance, the UK government has proposed a white paper Integration Matters: A National Strategy Towards Refugee Integration (Home Office 2005), while the European Union too

Using administrative data on earnings for every Norwegian male over the period 1967–2004, we find that the impact of age adjustments on the trend in inequality is highly sensitive

Comparing peatland greenhouse gas emissions, chemical and microbial community properties between primary and secondary forests in Peninsular

To avoid premature cable failure due to improper installation tensions, it is recommended that the cable be loaded, as a minimum, 45% to 60% of its expected working load.. It is

Pridružimo liku Pico walking blok naredbi prikazan na slici u tablici ispod.. Blok naredbi za lika Pico walking