Professional Documents
Culture Documents
Management of Software
Projects
Yigal Cohen
Yigal.Cohen@mail.huji.ac.il
1
Lesson #1
1.1 Introduction
Yigal Cohen
Yigal.Cohen@mail.huji.ac.il
2
? מה זאת הנדסת תוכנה
• הנדסת תוכנה מיישמת גישה שיטתית ,מבוקרת ומדידה לפיתוח ,תפעול ,ותחזוקה של
תוכנה.
• הנדסת תוכנה מקיפה את מחזור החיים השלם של תוכנה ,וכוללת ידע ,שיטות וכלים
עבור:
דרישות ,תכנון ,בנייה ,בדיקות ,אינטגרציה ,תחזוקה ,ניהול תצורה ,איכות ועוד
• הנדסת תוכנה נועדה להפחית את המורכבות שבפיתוח תוכנה ,לשפר את אמינות התוכנה
המפותחת ,ולהקטין את עלויות התפעול והתחזוקה.
• הנדסת התוכנה שימושית במיוחד בפיתוח מערכות מורכבות הכוללות חומרה ,תוכנה,
ותקשורת( .מתוך ויקיפדיה)
• הנדסת תוכנה מציעה ומתעדפת אסטרטגיות שונות (איטרציותwaterfall ,
( …/Continuous testing/integration/Deliveryלפיתוח התוכנה.
3
הנדסת תוכנה לעומת מדעי המחשב
נושא הנדסת תוכנה מדעי המחשב
תקציב ולוח זמנים תקציב ולוחות זמנים "קבועים מראש" תקציבי מחקר ותחרותיות כפי שמקובל באקדמיה
חוקרים נודעים פרד ברוקס ,בארי בֶם' ,גריידי בוץ אלן טיורינג ,ג'ון פון נוימן ,אדסחר דייקסטרה ,
'דונלד קנות ,דוד הראל ,עדי שמיר
4
? מה זה ניהול פרויקט תוכנה
5
)1/2( ?מה נלמד בקורס
1. Introduction, Overview of major SW development models
2. Requirements Management.
3. System Design: System modeling & Architectural design
4. SW Testing: Test case, Test Scenario, Test planning, Continuous testing
5. Integration, Integration planning ,Continuous Integration
6. Distributed software engineering
7. Agile & Scrum Vs. Classical project management (Waterfall)
8. Project Planning. scope management, Scheduling & Tracking, TOC (Theory of
constraints)
9. The role of the PM, Project management, PMI Model & PMI Matrix (the last 2 are
optional)
6
)2/2( ?מה נלמד בקורס
Some or all of the following topics according to the progress of the class:
• Other models of requirements analysis and description, more models of system
architecture and design,
• Human Communication, meeting management.
• SW quality Management
• Risk management, Improvement of SW development process (CMMI)
• People management. Adizes model. Maslow need hierarchy
• About 30% of the course will be dedicated to the course project: Management of a
project of a distributed system
7
מבנה הציון
• הרצאות פרונטליות
• נוכחות והשתתפות חובה של 85%מההרצאות בזום( .עד -5נקודות על אי השתתפות)
יינתן בונוס של 3%עבור נוכחות של 100
• משימות /תרגילים – 80% - 65%
• כ 6או 7תרגילים בקבוצות.
• יהיו תרגילים בהם יהיו משימות עצמאיות (וציון) לכל אחד מהקבוצה
• כל תרגיל מתבסס על התרגילים הקודמים וביחד יוצרים פרויקט.
• בחינה סופית או עבודת גמר 35% -10% -
• ייתכנו בחינות אמצע קצרות עד 10%על חשבון התרגילים או הבחינה
• רשימת קריאה
• כ 3-או 4מאמרים .
• מספר פרקים מתוך הספר:
• Software Engineering: A Practitioner's Approach 8th Edition, Roger pressman
ימסרו במהלך הקורס
• אתר הקורס
• ב moodle
8
About myself:
Yigal Cohen
9
What’s the problem ?
10
Chaos Report Results
100
90
successful
80
70
60
50 challenged
40
30
20
10 failed
0
1994 1996 1998 2000 2002 2004 2006 2009 2011 2012 2013 2014 2015
Can you build this?
Can you build this?
Can you build
this?
Scale
17
What we’ll do in the course ?
18
שאלה :האם תרגולות ותבניות הופכות אותנו לפחות
? או ליותר יצירתיים
19
List of topics
• Project Management
framework
• Project activities
• Supportive activities
• Methodologies
• Architecture
20
List of topics
Project Management
Framework
• Project Management
framework
• Project activities
Introduction,
• Supportive activities
SDLC – SW Development
Life Cycle (ALM- Application
• Methodologies Lifecycle Management)
• Architecture The role of the PM
Customer Interfacing
Project initiating & Planning
Time management
21
List of topics
• Project Management
framework
• Project activities Project activities
• Supportive activities
• Methodologies Requirements
• Architecture
Architecture & Design
Coding & Building
Testing
Integration
Maintenance & Support
22
List of topics
Supportive activities
• Project Management
framework SW Configuration
• Project activities Management
• Supportive activities Branch Management
• Methodologies Bugs Management
• Architecture
Classic Project Management
problems
On-going activities
Soft Skills
Support Environment
Metrics
23
List of topics
Methodologies
• Project Management
framework
• Project activities PMI
• Supportive activities Agile / Scrum
• Methodologies TOC
• Architecture Adijas
CMMI
ISO-9000
24
List of topics
• Project Management
Architecture
framework
• Project activities
• Supportive activities Architecture design
• Methodologies Modeling
• Architecture Distributed systems
25
What’s a project?
• A temporary Endeavour undertaken to create a unique product, service
or result
26
Project outcomes
• A product
• A system
• A conclusion
• A capability
• ……
• …….
27
The golden triangle or the iron Triangle
Scope
Quality
Time Cost
28
The Iron Triangle
29
? מה המגבלות על פרויקט
• Scope,
• time,
• money,
• quality,
• resources,
• risk
30
Balancing Project Constraints
Scope
Resour Risks
ces
Project
Money Time
Quality
31
Is this is a real zero-sum game ??
∑ ?
=C
Scope,
money,
quality,
resources,
time,
risk
32
Can we enlarge the cake (1)?
• Scope
• Prioritization: Start with the important and risky things! Scope
• Pareto (20:80)
• Money
• Cost management;
Money
• Reuse!
• Quality
• Manage a process, manage continuous testing, continuous integration,
continuous delivery, analyze feedback, automation, defect management,
Quality
Root cause analysis
• Resources management
• Find the right people, training, mentoring, guidance, challenging; team work,
spirit of excellence, roles & responsibilities
Resour
• Time management ces
• Manage a schedule, Find and manage critical paths,
• continuous development / testing / integration
Time
• Risk management
Risks
• Assessment and mitigation continuously 33
More ideas ? How to enlarge the cake ??
Scope
Resour
ces
Risks
Project
Project
Time
Money
Quality
34
Can we enlarge the cake (2)?
• Methodologies
• Technology
• Knowledge
• Understanding
• Delegation
• Professionalism
• Teamwork
• Communication, Communication,
Communication, ,,, 35
Can we enlarge the cake ??
36
Lesson #1
1.2 Development models
37
Elementary activities
Formal name ?מה התכלית
• Initiating • Why ?
• Planning • What? Who? When?
• Requirements • What?
• Design • How?
• Coding & building • Doing
• Testing • Validating
• Integration • Building
• Maintenance &support • Long term warranty
38
Development models
1. Waterfall
2. Agile / SCRUM model
3. Concurrent engineering
4. Iterative
5. RUP (Rational Unified process) Model
1. Waterfall
2. Iterative
3. Incremental - RUP (Rational Unified
process) Model
4. Agile / SCRUM model
5. Concurrent engineering
40
“Classic” Waterfall model
(Old but basic)
Requirements
התנור
Design
גמלא
Coding
בניאס
Testing
סער
41
Waterfall Model
Advantages
Disadvantages
• Clear phases • Strong dependencies in gates
• Nice view • No ‘real’ visibility
• Manageable • No feedback
• Clear dependencies • No concurrency
• Customer’s control • No learning
• No evolution
• Important steps are hidden
(infrastructure, tools, research)
42
Waterfall(s) ??
Requirement
Design
Coding
Testing
Integration
44
Waterfall(s) ??
Requirement Requirement
Design Design
Coding Coding
Testing Testing
Integrati
Integration
on
45
Waterfall(s) ??
Requirement
Design
Coding
Testing
Integration
Requirement
Design
Coding
Testing
Integration
46
Can we change the requirements in waterfall
model after the requirements are completed?
• Yes!
• Use change request process
More Waterfalls
kraka Niagara
Victoria Iguazu 48
שאלה:
49
מפלי האיגואסו
https://www.youtube.com/watch?v=9lfMb20QLX
g
מה ההבדלים בין מפל
מדרגות
51
Development models
1. Waterfall
2. Iterative
3. Incremental - RUP (Rational Unified
process) Model
4. Agile / SCRUM model
5. Concurrent engineering
52
Iterative model
R Iteration -1
D
C
T
I
R Iteration -2
D
C
T
I
R
D Iteration -n
C
T
I
53
מה הרווחנו בעבודה איטרטיבית?
54
Development models
1. Waterfall
2. Iterative
3. Incremental - RUP (Rational Unified
process) Model
4. Agile / SCRUM model
5. Concurrent engineering
55
The focus of Rup Phases
Focus RUP Phase
58
RUP: Phases and iterations
59
60
Rup: The Distribution of Work Across
Phases (% Coverage)
61
Iterative Vs. Incremental model
62
שאלה:
האם תמיד עדיף מודל מתווסף( )Incrementalעל פני מודל
איטרטיבי?
63
Vertical Work
• WORK:
• Develop feature by feature, either sequentially or
concurrently.
• Run a full cycle of development for each feature.
• Use continuous development, continuous testing,
continuous integration and continuous delivery.
• Advantages:
• Avoidance of the big-bang integration and testing
• Having visible and tested results along the development
process
• Get and use feedback
Iterative /incremental/ RUP Model
Advantages
Disadvantages
• Clear phases • Strong dependencies in
iterations
• Nice view
• Rigid
• Clear dependencies
• Not enough concurrency
• Customer’s control
• No learning
• Provides Visibility
• No evolution
• Enables Reliable Feedback
• Important steps are hidden
• Enables Learning
(infrastructure, tools, research)
• Global view and iterations
65
Development models
1. Waterfall
2. Iterative
3. Incremental - RUP (Rational Unified
process) Model
4. Agile / SCRUM model
5. Concurrent engineering
66
SCRUM Process Overview
67
68
SCRUM: Time box
69
Scrum Model
Advantages
Disadvantages
• Strong dependencies on time-box
• Clear phases
• Very Rigid with a lot of ceremonies
• Nice view
• Not enough concurrency
• Clear dependencies
• Disconnected from the SW
• Customer’s control traditional practices
• Visibility • Important steps are hidden
• Enables Reliable Feedback & (infrastructure, tools, research)
use it • In practice – teams may lose the
vision and the goals
• Encourages Learning
• Insufficient global view
• Encourages evolution
70
integrate waterfall with agile
מ
High
בט
כו
לל
LOW
Low High
A g I I t y 71
integrate global view with agile
מ
High
בט
כו
לל
LOW
Low High
A g I I t y
72
integrate waterfall with agile
מ
High
בט קיבעון שליטה מלאה
כו יש תכנון ואין תגובתיות יש תכנון ויש תגובתיות
לל
Low High
1. Waterfall
2. Iterative
3. Incremental - RUP (Rational Unified
process) Model
4. Agile / SCRUM model
5. Concurrent engineering
74
Concurrent Development
Requirement
Design
Coding
Testing
Integration
75
? Isn’t it Waterfall Project
Requirement
Design
Coding
Testing
Integration
76
Development models
1. Waterfall
2. Iterative
3. Incremental - RUP (Rational Unified
process) Model
4. Agile / SCRUM model
5. Concurrent engineering
78
What to do (1) ??
1. Plan & work with progressive elaboration (rolling wave
planning) ((תכנון בגלים
2. Build the global plans in advance without too many
details and update them frequently
3. Work in phases, each phase with visible, beneficial and
measurable results
4. Develop feature by feature and continuously accumulate
them and deliver pieces of the project till you have a
working system
5. Plan, define, design, code, test and integrate in every
phase
6. Use methodologies
79
What to do (2) ??
1. Encourage Concurrency
2. Fast ramp-up
3. Document !!
8. Use the models with flexibility
9. Enable visibility and transparency
10. Encourage feedback, learning and evolution
11. Use continuous testing, continuous integration and
continuous delivery
12. Develop tools and infrastructures
80
Question: How to ensure a failure in a SW
project ?
81
•Questions ???
•Thank you!!
85