Page 1
320312 Software Engineering (P. Baumann)
Software Process and Project Management
Instructor: Peter Baumann
email: [email protected]
tel: -3178
office: room 88, Research 1
Sommerville, Chapters 4, 17
Pressman
Everyone knew exactly what had to be done until someone wrote it down!
Page 2
2320312 Software Engineering (P. Baumann)
Project Sucess/Failure Rate
[CHAOS Report, Standish Group]
Page 3
4320312 Software Engineering (P. Baumann)
Struggling to
understand
requirements
30%
documentation
10%
design (8% std)
10%
Technical
difficulties
30%
Testing
5%
implementation
15%
Struggling to
understand
requirements
30%
documentation
10%
design
10%
Technical
difficulties
30%
Testing
5%
implementation
15%
Where Time Really Is Spent In Practice
Source: unknown
Page 4
5320312 Software Engineering (P. Baumann)
Activity Network
start
T2
M3T6
Finish
T10
M7T5
T7
M2T4
M5
T8
4/7 /03
8 days
14/7 /03 15 days
4/8/03
15 days
25/8/03
7 days
5/9/03
10 days
19/9/03
15 days
11/8/03
25 days
10 days
20 days
5 days2 5/7 /03
15 days
25/7 /03
1 8/7 /03
10 days
T1
M1 T3
T9
M6
T11
M8
T12
M4
Page 5
6320312 Software Engineering (P. Baumann)
Activity Timeline (aka Gantt Chart)
Task (Work package)
Subtask
Progress
Milestone
Dependency
Henry L. Gantt (1861-1919)
Page 6
7320312 Software Engineering (P. Baumann)
Estimating difficulty of problems (hence, costs)
Productivity !~ #people working on a task
The unexpected always happens contingency
Adding people to a late project makes it later
Potential Scheduling Problems
Page 7
8320312 Software Engineering (P. Baumann)
Waterfall Model
Process model
= Software life cycle
Challenge:
Difficult to accommodate change Inflexible
• Lack of stable requirements
• Changing requirements
• Increased understanding
• Unforeseen difficulties
Page 8
9320312 Software Engineering (P. Baumann)
The Incremental Model
increment #n
communication
reqs
design
impl
integration
operation
delivery of
increment #n
communication
reqs
design
impl
integration
operation
increment #1
delivery of
increment #1
Project calendar time
Fun
ctio
nalit
y &
feat
ures
Page 9
10320312 Software Engineering (P. Baumann)
Agile Methods
Customer involvement
• ...to provide & prioritise new system requirements + to evaluate iterations
Incremental delivery
• Priorities from customer
People, not process
• team to develop own ways of working
Embrace change
• Expect requirements to change
• design to accommodate change
Maintain simplicity
• software and development process
• actively eliminate complexity
Page 10
11320312 Software Engineering (P. Baumann)
Extreme Programming
XP = 'extreme' variation of iterative development, very small increments
• New versions may be built several times per day
• Increments ~every 2 weeks
• All tests for every build; only accepted if all successful
Rationale:
• Conventional: design for change
• anticipating changes reduces costs later
• XP: not worthwhile, cannot anticipate
• constant code improvement
• user involvement in dev team
Select user stories
for this release
Plan release
Develop /
integrate / test
Release
Break down:
stories tasks
Evaluate
Page 11
12320312 Software Engineering (P. Baumann)
Agile methods: Appraisal
Team members may be unsuited to the intense involvement of agile methods
Developers need to be experienced, not too different in expertise
can be difficult to keep interest of customers involved in process
Page 12
13320312 Software Engineering (P. Baumann)
Scrum
[PierreSelim / Wikipedia]
Page 13
14320312 Software Engineering (P. Baumann)
Wrap-Up: Project Management
Planning + coordination + monitoring is a must, even though change happens
• common activities: specification, design, implementation, testing/validation, evolution
• Gantt chart: Work packages, tasks, deliverables, milestones
Different Management approaches
• Classical „plan ahead“ vs Agile „embrace change“
Project Manager = first management level
• Deep technical knowledge + leadership qualifications
• Core personal assets: Multitasking, nonlinear, self-motivated