Progettazione di Applicazioni Web
corso del Master in Web Technology
a.a. 2017-2018
https://app.schoology.com/course/1511186315/
Henry Muccini
Università degli Studi dell’Aquila
3. Pianificazione del lavoro del team
MWT– Progettazione di Applicazioni Web Henry Muccini
2
Copyright Notice
Il materiale riportato in queste slide puo’ essere
riutilizzato, parziale o totalmente, a patto che le fonti
e gli autori vengano citati
Henry Muccini
MWT– Progettazione di Applicazioni Web Henry Muccini
3
MWT– Progettazione di Applicazioni Web Henry Muccini
4
Principi (da L2)
#principio: selezionare un insieme di tool di
progettazione e sviluppo in modo chiaro e senza
proliferazione
#principio: individuare un unico canale per lo scambio
dei contenuti, definendo regole di classificazione e
nomenclatura
#principio: Priorità nei requisiti, mai partire dalla
comfort-zone, anticipare se possibile i punti 'rischiosi';
MWT– Progettazione di Applicazioni Web Henry Muccini
5
Difficolta’ (da L2)
#difficoltà: la difficoltà a volte è indirizzare il cliente
verso la soluzione corretta
#difficoltà: organizzare il team e pianificare tempi e
scadenze
#difficoltà: interpretazione errata dei messaggi e
conversazione all'interno del team
Project Plan
MWT– Progettazione di Applicazioni Web Henry Muccini
7
The Project Plan
Think to the “Marriage Plan”…
The project plan sets out:
– The resources available to the project
– The work breakdown
– A schedule for the work
Risk
analysis
MWT– Progettazione di Applicazioni Web Henry Muccini
8
VIDEO:https://www.youtube.com/watch?v=qkuUBcmmBpk
MWT– Progettazione di Applicazioni Web Henry Muccini
9
Considerazioni dal Video
Work breakdown
MWT– Progettazione di Applicazioni Web Henry Muccini
11
Work breakdown and Planning
A Work breakdown reflects the decomposition
of a project into subactivities down to a level
needed for effective planning and control
Project planning involves scheduling all
activities such that the constraints are
satisfied and resource limits are not
exceeded.
MWT– Progettazione di Applicazioni Web Henry Muccini
12
Let us model this…
?
MWT– Progettazione di Applicazioni Web Henry Muccini
13
Activities
Have a beginning and end
– Often marked by milestones
– A milestone is a scheduled event for which some person
is held accountable and which is used to measure and
control progress.
Consume resources
– e.g. people and computer time
Have dependencies
– e.g. Can’t code before we have a specification
– Expressed as constraints, a.k.a. precedence relations
– Usually temporal, but sometimes deliverables
MWT– Progettazione di Applicazioni Web Henry Muccini
14
Representing Activities
Work Breakdown Structure (WBS)
– Graphical representation of a project and constituent activities
– Can be abstract or highly detailed
– Different types exist
MWT– Progettazione di Applicazioni Web Henry Muccini
15
Let us use a real example - WBS
MWT– Progettazione di Applicazioni Web Henry Muccini
16
How to represent activities and their
link
PERT
GANTT chart
Activity graph
MWT– Progettazione di Applicazioni Web Henry Muccini
17
PERT Charts
PERT = Program Evaluation and Review Technique
– First used in 1950s on Polaris missile program
Most useful for finding dependencies and minimum
schedule time
MWT– Progettazione di Applicazioni Web Henry Muccini
18
Gantt Chart
Invented by Henry Gantt in 1910
– Engineer and management scientist
– Used on Hoover dam project
Like a bar chart version of PERT chart with extra
features
– Shows activities on a calendar
– Depicts additional temporal dependencies
• Start activity after the start of…
• Start activity before the end of…
– Allocate resources to tasks
• Budgeting
• Can ask what-if questions about allocations
MWT– Progettazione di Applicazioni Web Henry Muccini
19
Example in MS Project: Conference planning
MWT– Progettazione di Applicazioni Web Henry Muccini
20
Tools: some examples
MS Project
GANNT in Excel:
https://www.youtube.com/watch?v=TjxL_hQn5w0
Gantter for Google Drive
MWT– Progettazione di Applicazioni Web Henry Muccini
21
Activity network
A graph, where:
– Arrow = activity
– Node = completion of activity
Picture taken from: http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic30/images/graph2-2-ff.gif
MWT– Progettazione di Applicazioni Web Henry Muccini
22
Critical Path
A critical path is a sequence of activities without
slack time.
– example
If activities on a critical path are delayed, the total
project is delayed as well.
Found by performing a breadth-first search while
tracking the duration
MWT– Progettazione di Applicazioni Web Henry Muccini
23
Example: Activity network
star t
T2
M3
T6
Finish
T10
M7T5
T7
M2
T4
M5
T8
4/7 /03
8 da ys
14/7 /03 15 da ys
4/8/03
15 da ys
25/8/03
7 da ys
5/9/03
10da ys
19/9/03
15 da ys
11/8/03
25 da ys
10 da ys
20 da ys
5 da ys
25/7 /03
15 da ys
25/7 /03
18/7 /03
10 da ys
T1
M1 T3
T9
M6
T11
M8
T12
M4
Project Tracking
MWT– Progettazione di Applicazioni Web Henry Muccini
25
Project Tracking
Effort
– Individuals record how much time is spent on various
tasks
– Cumulative data can be compared to the plan
Progress
– Milestones
– Reports
Schedule slippage
– Monitor closely on critical path
Changes in activities
– Need to re-plan (and re-schedule?)
MWT– Progettazione di Applicazioni Web Henry Muccini
26
Recall--Why software fails: other reasons
Why (according to developers/testers/customers)
– The programmers did not tell the truth about the real
status of code, and lower than expected productivity
– The management understimated time and did not carefully
plan the project
– The customer did not know what he wanted
We do not produce just
Software, we produce
systems
MWT– Progettazione di Applicazioni Web Henry Muccini
27
Multiple stakeholders,
with different concerns!!
MWT– Progettazione di Applicazioni Web Henry Muccini
28
In the project…
Estimation & project planning
MWT– Progettazione di Applicazioni Web Henry Muccini
30Project plans are based on effort
estimates!
Poor Estimation Techniques
– Guessing
– Parkinson's Law
– Pricing to win
– Budget method
Discuss
MWT– Progettazione di Applicazioni Web Henry Muccini
31
Better Estimation Techniques
Based on experience or hard data collection
– Such techniques requires to “extensively record historical
data”
Informal:
– Expert judgment
– Estimation by analogy
– Variation: Delphi method
Formal:
– Algorithmic cost modeling
MWT– Progettazione di Applicazioni Web Henry Muccini
32
Informal
Expert judgment
+ Relatively cheap estimation method.
+ Can be accurate if (AND ONLY IF) experts have direct
experience with similar systems
- Does not use hard data
Estimation by analogy
+ Accurate if project data available
- Impossible if no comparable project has been undertaken.
- Estimates can be inaccurate if details overlooked.
-Subsequent similar projects can be quicker.
MWT– Progettazione di Applicazioni Web Henry Muccini
33
Informal: Delphi Method
Idea: Create a group expert opinion, while counterbalancing
personality factors in process
Group of expert estimators + moderator
1. Experts independently create estimates.
2. Moderator collects written estimates from individuals.
3. Estimates are distributed to group.
– No names
4. Experts deliver new estimates based on new information
from moderator.
5. Continue until consensus is reached.
MWT– Progettazione di Applicazioni Web Henry Muccini
34
Formal: Algorithmic Cost Modeling
Cost and development time for a project is estimated from an
equation
– E.g., Linear model
• E = a0 + i=1…n aixi [Nelson]
• E = man/months needed
Effort estimates are based on size
– Highly inaccurate at start of project
Size is usually given in lines of code, which not reflect difficulty
– Some short programs are harder to write than long ones
– Lines of code ≠ effort
• Not all activities produce code
– Programming Language: Java vs. assembler
MWT– Progettazione di Applicazioni Web Henry Muccini
35
So, what can I do?
You
– Don’t have a historical database
– Are not an expert (usually)
Generate estimates using multiple models and compare
based on your guesses or assumptions
– Candidate models:
• Walston and Felix (simple and easy to use)
– E = 5.2 KLOC0.91
• COCOMO 2 (complicated and detailed)
• DeMarco (based on UI requirements)
• Brooks, p. 20
– 1/3 planning, 1/6 coding, ¼ component tests and early system test, ¼
system test
MWT– Progettazione di Applicazioni Web Henry Muccini
36
Esempio 1: NdR 2017
► UnivAq Street Science
& SHARPER
► 114 eventi
► Un solo giorno
► Un’unica app
MWT– Progettazione di Applicazioni Web Henry Muccini
37
Esempio 2: Uffizi
MWT– Progettazione di Applicazioni Web Henry Muccini
38
Esempio 3: DNE
Risk Management
MWT– Progettazione di Applicazioni Web Henry Muccini
40
Risk management
Risk management is concerned with identifying risks and
drawing up plans to minimise their effect on a project.
“A risk is a possible future negative event that may affect
the success of an effort” [VV8.3]
– Project risks affect schedule or resources;
– Product risks affect the quality or performance of the software
being developed;
– Business risks affect the organisation developing or procuring the
software.
Analogy with “Software Faults and Software Failures”
MWT– Progettazione di Applicazioni Web Henry Muccini
41The risk management process
[from Sommerville book]
Risk avoidance
and contingency
plans
Risk planning
Prioritised risk
list
Risk analysis
List of potential
risks
Risk
identification
Risk
assessment
Risk
monitoring
MWT– Progettazione di Applicazioni Web Henry Muccini
42
The risk management process [from Sommerville book]
1. Risk identification
– Identify project, product and business risks;
2. Risk analysis
– Assess the likelihood and consequences of these risks;
– Called “Risk Exposure” in VV
3. Risk planning
– Draw up plans to avoid or minimise the effects of the risk;
– From VV:
• risk avoidance, transfer, acceptance
• Like in deadlock handling
4. Risk monitoring
– Monitor the risks throughout the project;
Discuss
In pratica?
MWT– Progettazione di Applicazioni Web Henry Muccini
44
GANTT diagrams tools
Project Management tools
MWT– Progettazione di Applicazioni Web Henry Muccini
45
Project management tools – free
https://zapier.com/blog/free-project-management-software/
MWT– Progettazione di Applicazioni Web Henry Muccini
46
Kanban boards
https://zapier.com/learn/project-management/kanban-board/
MWT– Progettazione di Applicazioni Web Henry Muccini
47
Project management tools
https://www.lifehack.org/articles/technology/the-best-8-project-management-apps.html

Web Engineering L3: Project Planning (3/8)

  • 1.
    Progettazione di ApplicazioniWeb corso del Master in Web Technology a.a. 2017-2018 https://app.schoology.com/course/1511186315/ Henry Muccini Università degli Studi dell’Aquila 3. Pianificazione del lavoro del team
  • 2.
    MWT– Progettazione diApplicazioni Web Henry Muccini 2 Copyright Notice Il materiale riportato in queste slide puo’ essere riutilizzato, parziale o totalmente, a patto che le fonti e gli autori vengano citati Henry Muccini
  • 3.
    MWT– Progettazione diApplicazioni Web Henry Muccini 3
  • 4.
    MWT– Progettazione diApplicazioni Web Henry Muccini 4 Principi (da L2) #principio: selezionare un insieme di tool di progettazione e sviluppo in modo chiaro e senza proliferazione #principio: individuare un unico canale per lo scambio dei contenuti, definendo regole di classificazione e nomenclatura #principio: Priorità nei requisiti, mai partire dalla comfort-zone, anticipare se possibile i punti 'rischiosi';
  • 5.
    MWT– Progettazione diApplicazioni Web Henry Muccini 5 Difficolta’ (da L2) #difficoltà: la difficoltà a volte è indirizzare il cliente verso la soluzione corretta #difficoltà: organizzare il team e pianificare tempi e scadenze #difficoltà: interpretazione errata dei messaggi e conversazione all'interno del team
  • 6.
  • 7.
    MWT– Progettazione diApplicazioni Web Henry Muccini 7 The Project Plan Think to the “Marriage Plan”… The project plan sets out: – The resources available to the project – The work breakdown – A schedule for the work Risk analysis
  • 8.
    MWT– Progettazione diApplicazioni Web Henry Muccini 8 VIDEO:https://www.youtube.com/watch?v=qkuUBcmmBpk
  • 9.
    MWT– Progettazione diApplicazioni Web Henry Muccini 9 Considerazioni dal Video
  • 10.
  • 11.
    MWT– Progettazione diApplicazioni Web Henry Muccini 11 Work breakdown and Planning A Work breakdown reflects the decomposition of a project into subactivities down to a level needed for effective planning and control Project planning involves scheduling all activities such that the constraints are satisfied and resource limits are not exceeded.
  • 12.
    MWT– Progettazione diApplicazioni Web Henry Muccini 12 Let us model this… ?
  • 13.
    MWT– Progettazione diApplicazioni Web Henry Muccini 13 Activities Have a beginning and end – Often marked by milestones – A milestone is a scheduled event for which some person is held accountable and which is used to measure and control progress. Consume resources – e.g. people and computer time Have dependencies – e.g. Can’t code before we have a specification – Expressed as constraints, a.k.a. precedence relations – Usually temporal, but sometimes deliverables
  • 14.
    MWT– Progettazione diApplicazioni Web Henry Muccini 14 Representing Activities Work Breakdown Structure (WBS) – Graphical representation of a project and constituent activities – Can be abstract or highly detailed – Different types exist
  • 15.
    MWT– Progettazione diApplicazioni Web Henry Muccini 15 Let us use a real example - WBS
  • 16.
    MWT– Progettazione diApplicazioni Web Henry Muccini 16 How to represent activities and their link PERT GANTT chart Activity graph
  • 17.
    MWT– Progettazione diApplicazioni Web Henry Muccini 17 PERT Charts PERT = Program Evaluation and Review Technique – First used in 1950s on Polaris missile program Most useful for finding dependencies and minimum schedule time
  • 18.
    MWT– Progettazione diApplicazioni Web Henry Muccini 18 Gantt Chart Invented by Henry Gantt in 1910 – Engineer and management scientist – Used on Hoover dam project Like a bar chart version of PERT chart with extra features – Shows activities on a calendar – Depicts additional temporal dependencies • Start activity after the start of… • Start activity before the end of… – Allocate resources to tasks • Budgeting • Can ask what-if questions about allocations
  • 19.
    MWT– Progettazione diApplicazioni Web Henry Muccini 19 Example in MS Project: Conference planning
  • 20.
    MWT– Progettazione diApplicazioni Web Henry Muccini 20 Tools: some examples MS Project GANNT in Excel: https://www.youtube.com/watch?v=TjxL_hQn5w0 Gantter for Google Drive
  • 21.
    MWT– Progettazione diApplicazioni Web Henry Muccini 21 Activity network A graph, where: – Arrow = activity – Node = completion of activity Picture taken from: http://www.cs.mcgill.ca/~cs251/OldCourses/1997/topic30/images/graph2-2-ff.gif
  • 22.
    MWT– Progettazione diApplicazioni Web Henry Muccini 22 Critical Path A critical path is a sequence of activities without slack time. – example If activities on a critical path are delayed, the total project is delayed as well. Found by performing a breadth-first search while tracking the duration
  • 23.
    MWT– Progettazione diApplicazioni Web Henry Muccini 23 Example: Activity network star t T2 M3 T6 Finish T10 M7T5 T7 M2 T4 M5 T8 4/7 /03 8 da ys 14/7 /03 15 da ys 4/8/03 15 da ys 25/8/03 7 da ys 5/9/03 10da ys 19/9/03 15 da ys 11/8/03 25 da ys 10 da ys 20 da ys 5 da ys 25/7 /03 15 da ys 25/7 /03 18/7 /03 10 da ys T1 M1 T3 T9 M6 T11 M8 T12 M4
  • 24.
  • 25.
    MWT– Progettazione diApplicazioni Web Henry Muccini 25 Project Tracking Effort – Individuals record how much time is spent on various tasks – Cumulative data can be compared to the plan Progress – Milestones – Reports Schedule slippage – Monitor closely on critical path Changes in activities – Need to re-plan (and re-schedule?)
  • 26.
    MWT– Progettazione diApplicazioni Web Henry Muccini 26 Recall--Why software fails: other reasons Why (according to developers/testers/customers) – The programmers did not tell the truth about the real status of code, and lower than expected productivity – The management understimated time and did not carefully plan the project – The customer did not know what he wanted We do not produce just Software, we produce systems
  • 27.
    MWT– Progettazione diApplicazioni Web Henry Muccini 27 Multiple stakeholders, with different concerns!!
  • 28.
    MWT– Progettazione diApplicazioni Web Henry Muccini 28 In the project…
  • 29.
  • 30.
    MWT– Progettazione diApplicazioni Web Henry Muccini 30Project plans are based on effort estimates! Poor Estimation Techniques – Guessing – Parkinson's Law – Pricing to win – Budget method Discuss
  • 31.
    MWT– Progettazione diApplicazioni Web Henry Muccini 31 Better Estimation Techniques Based on experience or hard data collection – Such techniques requires to “extensively record historical data” Informal: – Expert judgment – Estimation by analogy – Variation: Delphi method Formal: – Algorithmic cost modeling
  • 32.
    MWT– Progettazione diApplicazioni Web Henry Muccini 32 Informal Expert judgment + Relatively cheap estimation method. + Can be accurate if (AND ONLY IF) experts have direct experience with similar systems - Does not use hard data Estimation by analogy + Accurate if project data available - Impossible if no comparable project has been undertaken. - Estimates can be inaccurate if details overlooked. -Subsequent similar projects can be quicker.
  • 33.
    MWT– Progettazione diApplicazioni Web Henry Muccini 33 Informal: Delphi Method Idea: Create a group expert opinion, while counterbalancing personality factors in process Group of expert estimators + moderator 1. Experts independently create estimates. 2. Moderator collects written estimates from individuals. 3. Estimates are distributed to group. – No names 4. Experts deliver new estimates based on new information from moderator. 5. Continue until consensus is reached.
  • 34.
    MWT– Progettazione diApplicazioni Web Henry Muccini 34 Formal: Algorithmic Cost Modeling Cost and development time for a project is estimated from an equation – E.g., Linear model • E = a0 + i=1…n aixi [Nelson] • E = man/months needed Effort estimates are based on size – Highly inaccurate at start of project Size is usually given in lines of code, which not reflect difficulty – Some short programs are harder to write than long ones – Lines of code ≠ effort • Not all activities produce code – Programming Language: Java vs. assembler
  • 35.
    MWT– Progettazione diApplicazioni Web Henry Muccini 35 So, what can I do? You – Don’t have a historical database – Are not an expert (usually) Generate estimates using multiple models and compare based on your guesses or assumptions – Candidate models: • Walston and Felix (simple and easy to use) – E = 5.2 KLOC0.91 • COCOMO 2 (complicated and detailed) • DeMarco (based on UI requirements) • Brooks, p. 20 – 1/3 planning, 1/6 coding, ¼ component tests and early system test, ¼ system test
  • 36.
    MWT– Progettazione diApplicazioni Web Henry Muccini 36 Esempio 1: NdR 2017 ► UnivAq Street Science & SHARPER ► 114 eventi ► Un solo giorno ► Un’unica app
  • 37.
    MWT– Progettazione diApplicazioni Web Henry Muccini 37 Esempio 2: Uffizi
  • 38.
    MWT– Progettazione diApplicazioni Web Henry Muccini 38 Esempio 3: DNE
  • 39.
  • 40.
    MWT– Progettazione diApplicazioni Web Henry Muccini 40 Risk management Risk management is concerned with identifying risks and drawing up plans to minimise their effect on a project. “A risk is a possible future negative event that may affect the success of an effort” [VV8.3] – Project risks affect schedule or resources; – Product risks affect the quality or performance of the software being developed; – Business risks affect the organisation developing or procuring the software. Analogy with “Software Faults and Software Failures”
  • 41.
    MWT– Progettazione diApplicazioni Web Henry Muccini 41The risk management process [from Sommerville book] Risk avoidance and contingency plans Risk planning Prioritised risk list Risk analysis List of potential risks Risk identification Risk assessment Risk monitoring
  • 42.
    MWT– Progettazione diApplicazioni Web Henry Muccini 42 The risk management process [from Sommerville book] 1. Risk identification – Identify project, product and business risks; 2. Risk analysis – Assess the likelihood and consequences of these risks; – Called “Risk Exposure” in VV 3. Risk planning – Draw up plans to avoid or minimise the effects of the risk; – From VV: • risk avoidance, transfer, acceptance • Like in deadlock handling 4. Risk monitoring – Monitor the risks throughout the project; Discuss
  • 43.
  • 44.
    MWT– Progettazione diApplicazioni Web Henry Muccini 44 GANTT diagrams tools Project Management tools
  • 45.
    MWT– Progettazione diApplicazioni Web Henry Muccini 45 Project management tools – free https://zapier.com/blog/free-project-management-software/
  • 46.
    MWT– Progettazione diApplicazioni Web Henry Muccini 46 Kanban boards https://zapier.com/learn/project-management/kanban-board/
  • 47.
    MWT– Progettazione diApplicazioni Web Henry Muccini 47 Project management tools https://www.lifehack.org/articles/technology/the-best-8-project-management-apps.html