0% found this document useful (0 votes)
3 views73 pages

W3 Process Models

The document discusses various process models in software development, including linear, iterative, parallel, and prototyping approaches, emphasizing the importance of structured processes for unique projects. It highlights the integration of agile practices and continuous delivery into these models to enhance flexibility and responsiveness to change. Additionally, it covers the principles of Lean software design and the role of DevOps in improving collaboration between development and operations teams.

Uploaded by

Dragus Andreea
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views73 pages

W3 Process Models

The document discusses various process models in software development, including linear, iterative, parallel, and prototyping approaches, emphasizing the importance of structured processes for unique projects. It highlights the integration of agile practices and continuous delivery into these models to enhance flexibility and responsiveness to change. Additionally, it covers the principles of Lean software design and the role of DevOps in improving collaboration between development and operations teams.

Uploaded by

Dragus Andreea
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

1

PROCESS MODELS
Lecture 3
2 Content

Introduction
Process Models
 Linear
 Iterative
 Parallel
 Prototypes
 Continuous delivery
Integrating agile practices into processes
3 References
 Software Architecture Metrics, Ciceri, Christian,
Farley, Dave, Ford, Neal, et al. Eoin, & Safari,
2022. (1st edition.). O’Reilly Media, Inc.
 SOFTWARE PRODUCT MANAGEMENT Course
Specialization, Coursera, University of Alberta
 [Link]
 The DevOps Handbook: How to Create World-
Class Agility, Reliability, and Security in
Technology Organizations by Gene
Kim , Patrick Debois, John Willis, Jez Humble,
October 6, 2016
 Learning DevOps: Continuously Deliver Better
Software, Joakim Verona,Michael Duffy,Paul
Swartout, 2016
4 Why a process?
Projects are unique
No prescribed formula to get the final
product done
Need continuous evaluation and decision
making
Need some form of work organization

Process organizes the work into distinct


phases
Structured software development
5
6 How much covers a process?
Life cycle process = starts from the product’s
initial conception -> eventual retirement
Includes sub-processes
Contains phases (i.e. Specification, Design,
Implementation, Verification and Validation)
7 Process decomposition
Process contains
Phases that contain
Activities that contain
Tasks
Phase
 Ex.
 Verification and Validation
Activity
 Execute tests
 Write test framework code
 Design tests Tasks

 Write tests
 Run tests
8 Task
 The most basic unit of work
 Assigned to persons ROLES
 Produces a work product
 Can use work products (dependencies)
 Consumes resources (i.e. time, people,
technology, knowledge, money)
9 Process models
Linear: phases happen sequentially
Iterative: phases are repeated in cycles
Parallel: activities occur concurrently

[Link]
10 Process/Methodology
WHAT HOW

 Process = Methodology ?
 NOT!
 Methodology = set of practices
 Practice = strategy to execute a (sub) process
Ex.
 Management practices for scheduling and
organizing tasks, minimizing resource waste, and
tracking completed work
 Development practices for preparing effective
tests, maintaining simplicity, and conducting
technical reviews
11 Process/Practices
 Practice
 Specific to a phase (i.e. Specification
phase: elicit requirements, express
requirements, etc.)
 Specific to the whole process (i.e.
Management practices: daily meetings,
monitoring productivity etc.)

 Processes and practices are flexible and


customizable!
 Combine aspects of processes and practices
for your needs!
12 Process Phases
13 Project management activities
 Creating a process  Allocating resources
 Setting standards  Making measurements
 Managing risks  Improving the process
 Performing estimations
14 Linear Process Models - Waterfall
“Get things right the first time and avoid rework”
 Benefits
 easy to understand;
 clearly defines deliverables and milestones;
 emphasizes the importance of analysis before design, and design before
implementation;
 can be adopted within teams using more sophisticated processes, for
well-specified parts of the product that can be outsourced
 Drawbacks
 not adaptable to change
15 Linear Process Models – V Model
 Benefits
 easy to understand;
 clearly defines deliverables and milestones;
 emphasizes the importance of analysis before design, and design before
implementation;
 allows the development team to verify the product at multiple levels in
explicit phases

 Drawbacks
 not very adaptable to change
16 Linear Process Models - Sawtooth
 Benefits
 easy to understand;
 clearly defines deliverables and milestones;
 the client is involved to review intermediate prototypes of the product
during the process
 Drawbacks
 not very adaptable to change
17
Iterative Models
“Work is done in iterations that allow for revisions of the product”
 Benefits
 ability to loop and revisit previous phases ;
 allow for client feedback to be incorporated within the process;
 Drawbacks
 estimating work can be more difficult
 requires much analytical expertise to assess risks
18 Parallel Models
“Work is done in iterations however, parallel processes allow for more
concurrency ”
 Benefits
 allows for tasks done in one phase to also occur in another ;
 once the product is released, the process can begin another cycle to
refine and improve the product ;
 well suited to large projects where iterations can allow the product to
grow naturally beyond the original inception for the product

 Drawbacks
 estimating work can be
difficult
19 Prototypes

Applied in both Spiral and UP models


Types:
 Illustrative
 Exploratory
 Throw-away
 Incremental
 Evolutionary
20 Illustrative prototype

 Most basic
 The purpose is to define the basic idea
 May involve storyboarding, wireframes, even
drawings on paper or slideshows
21 Exploratory prototype

Involves working code


The purpose is to explore what is feasible
Expensive in terms of consumed resources
=> Important to evaluate the cost of
exploratory prototyping vs. cost of finding out
later that the product is not realizable
22 Throw-away Prototype
 The first version of a product (usually having various
problems) => opportunity to learn from past mistakes
 First version with patches and fixes vs. robust second
version
 Have working software for each successive
prototype, any of which could be released as a
version of your software product

 A common feature of illustrated, exploratory, and


throw-away prototypes is that none of the effort to
build the prototypes will end up in the final version of
the product.
 Lessons learned
 Development resources lost
23 Incremental Prototype

Product is built and released in increments


Triage system: components are built
iteratively in increments starting with the most
important to the least important
Priorities:
 must do (in Complete first-version
prototype)
 should do (added in second version)
 could do (added in third version)
24 Evolutionary Prototype
The first-generation prototype has all the
features of the product, even though some
features may need to “evolve” or be refined
Integrating prototypes with Spiral/UP models
 First iteration – creation of illustrative
prototype
 Next iterations – incremental/evolutionary
prototype approach

IMPORTANT! Core idea is to gain feedback


on versions of the product => make decisions
on future versions!
25
What can we learn from a
prototype?
 Conceptual model
 Do users understand it?
 Functionality
 Does it do what’s needed? Missing features?
 Navigation & task flow
 Can users find their way around?
 Are information preconditions met?
 Terminology
 Do users understand labels?
 Screen contents
 What needs to go on the screen?
26
What can we learn from a
prototype?
 Screen layout
 Is it clear, overwhelming, distracting,
complicated?
 Can users find important elements?
 Colors, fonts, icons, other elements
 Well-chosen?
 Interactive feedback
 Do users notice & respond to status bar
messages, cursor changes, other feedback
 Efficiency issues
 Controls big enough? Too close together?
Scrolling list is too long?
27 Prototype evaluation
 Google HEART framework
([Link]
n//pubs/archive/[Link])
 Happiness — Measure of user attitudes (via surveys or interviews).
 Ex: satisfaction, perceived ease of use, and net promoter score.

 Engagement — Measures the level of user involvement (via behavioral


proxies such as frequency, intensity, or depth of interaction over some
time period).
 Ex: # of visits/user/week or # of photos uploaded/user/day.

Taken from: [Link]


28 Prototype evaluation
 Adoption — New users of a product, feature or a
service.
 Ex: # of accounts created in the last seven days,
# of people dropping off during the onboarding
experience.
 Retention — The rate at which existing users are
returning.
 Ex: # of active users from a given time period
that are still present in some later time period, or
churn (failure to retain)
 Task success —traditional behavioral metrics with
respect to user experience, such as efficiency (e.g.
time to complete a task), effectiveness (e.g.
percent of tasks completed), and error rate.
29 HEART + Goals-Signals-Metrics

From [Link]
30 Prototyping tools
 Storyboarding Tools
 Photoshop
 Balsamiq Mockup
 Mockingbird
 Form Builders
 Mac Interface Builder
 Qt Designer
 FlexBuilder
 Silverlight
 Visual Basic

[Link]
prototyping/#reading_8_prototyping
31 Continuous Delivery
Continuous Delivery applies automation so
that intermediate releases of working
software can be more disciplined and
frequent.
The aim is to have working software that is
tested, ready to run, and releasable to
others.
Releases are placed in channels
 Developer
 Test
 Stable
Fits well with iterative process models (i.e. UP)
32 Daily Build
 each “iteration” of the construction phase is
laid out in a day
 at the end of every day, incompatibilities are
detected (sooner rather than later)
 uses a system of continuous integration
(automated testing at integration)
 A successful build allows overnight testing to
proceed, with test results reported in the
morning.

 Combining approaches: UP/Agile + Prototyping


+ Continuous delivery => more robust process
33
Can we integrate agile
practices into processes?
34 Can ANY process model be agile?

 Waterfall, V-model
 do not allow for early and continuous
delivery
 rely heavily on documentation and
approving it when moving between phases
 culture of contracts and sign-offs
 Sawtooth
 Provides earlier prototypes to clients
 Other principles are not respected
=> Linear process models do not work well with
agile practices
35
Iterative models
 Spiral and UP
 Allow frequent and continuous releases to
gather feedback
 Consistent with the Agile practices
36 Agile in context

Wider principles&practices
 Lean
 DevOps
Agile development methodologies
 Scrum
 Extreme programming
…
Management practice
 Kanban
37 Lean Software Design
 Inspired by the Toyota manufacturing industry
aimed to reduce waste in the production process
and increase the quality of their vehicles

 7 principles
1. Eliminate waste
2. Amplify learning
3. Decide as late as possible
4. Deliver at fast as possible
5. Empower the team
6. Build quality in
7. See the whole
38 Applying lean principles to
software development
 Eliminate waste
 Unclear requirements, process bottlenecks,
product defects, and unnecessary meetings =>
waste of time and effort
 “busy” is NOT “productive”
 A busy team is not focused on developing code
 Additional features can interfere with code
functionality
 Code is useless if it is not planned to be released
=> Anything that does not add value to the product is
considered waste and should be identified and
eliminated
39 Amplify Learning

Explore all ideas sufficiently before


proceeding with actions
Do not settle on the first idea, generate as
diverse alternatives as possible
Run tests after each build, use failures as
opportunities to learn

⇒ Decide as late as possible


⇒ Eliminate waste
⇒ Deliver as fast as possible
40 Empower the team

“The best executive is one who has sense


enough to pick good people to do what he
wants done, and self-restraint enough to keep
from meddling with them while they do it”.
— Theodore Roosevelt

Managers listen to the developers


Developers decide how to make the
product
41 Related principles
 Build quality in (from the beginning)
 conduct reviews of the work products,
 prepare and run automated tests,
 refactor the code to simplify its design,
 provide useful documentation,
 give meaningful code comments.
⇒ Reduced time to fix defects => eliminated waste

 Needs focus on the end-user experience (See the


Whole)
 A quality product is cohesive and well
designed as a whole
42 Additional principles
 Use the Scientific Method
 Initiate experiments to collect data and test ideas
 Encourage Leadership
 Enable individual developers to be courageous,
innovative, inspirational, and collaborative.
 Warranty
 "Lean principles are warranted to be tried and proven in
many disciplines, and when properly applied, they are
warranted to work for software development.”
 Proper application:
 all of the lean principles are employed
 thinking tools are used to translate them into agile
practices appropriate for the environment.
 Mistakes:
 practices are transferred directly from other disciplines
or domains without adaptation
43 DevOps
 Term emerging from the collision of two major
related trends
 Agile/Lean
 Operations and Development engineers
working together in the entire service
lifecycle
 Devs
 Developers, QA, etc.
 Ops
 systems engineers, system admins,
operations staff, release engineers, DBAs,
network engineers, security professionals..
44 DevOps continued
 DevOps Practices
 continuous integration and continuous
deployment
 using configuration management, metrics and
monitoring schemes
 virtualization and cloud computing
 and more…
 DevOps tools
 release (Jenkins, Travis, Teamcity),
 configuration management (Puppet, Chef,
Ansible, Cfengine),
 orchestration (Zookeeper, Noah, Mesos),
 monitoring, virtualization and containerization
(AWS, OpenStack, Vagrant, Docker)
45 Primary practices
Infrastructure Automation – create your
systems, OS configurations, and app
deployments as code.

Continuous Delivery – build, test, deploy


your apps in a fast and automated manner.

Site Reliability Engineering – operate your


systems; monitoring and orchestration, but
also designing for operability in the first
place.
46 What is DevOps NOT

It’s Not NoOps


It’s Not (Just) Tools
It’s Not (Just) Culture
It’s Not (Just) Devs and Ops
It’s Not (Just) A Job Title
It’s Not Everything
47 DevOps and Continuous Delivery
48 How good is our software
delivery process?
DevOps Research and Assessment
(DORA) metrics
Development
Deployment frequency throughput

Lead time for changes


Change failure rate Service stability

Time to restore services

The power is in combining them!


49 DORA metrics

Deployment frequency
Number of individual changes deployed
over time
Lead time for changes
The time it takes to deploy completed
changes
Change failure rate
Proportion of deployed changes that
cause a failure on the running service
Time to restore services
The time it takes to fix a failure
experienced by a service
50 Define scope

 Looking at all the changes in the


organization or just those in your
program of work?
 Including infrastructure changes or
just those for software and
services?

The scope must be the same for all 4


metrics!
51 Process as a pipeline

zz
52 Process as a pipeline

zz
53 Where are your instrumentation
points?
Commit timestamp
Complexities: branching by
feature? Doing pull requests?
Proxy trigger = the merge to main
Deployment timestamp
when the pipeline doing the final
deployment to production
completes
Does it include smoke test or not?
54 Complexities
Where did the change-deployment
#264 originated?
What if a deployment aggregates a
number of changes?
55 Monitoring for service failures

Service failures
Too slow
Service down
Monitoring of service failures
Start time = opening a change
failure ticket
End time = closing the ticket
Number of tickets
56 Capturing and calculating the
4 metrics
Deployment frequency
Sum of deployments (on all
pipelines) over a time period (1 day)
Mean over 1 month
Lead time for changes
Mean per day of the lead times for
each change
Mean per month of the daily means
57 Capturing and calculating the
4 metrics
Change failure rate
the proportion of change failure
tickets resolved as a fraction of the
total number of deployments over
the same period
Ex. in a day you have 36
deployments and 2 change failures
resolved => 2/36
Look at this rate over 31 days
58 Capturing and calculating the
4 metrics
Change failure rate assumptions:
Failures are distinct
A single failure is caused by a single
deployment
Open failures are not included !
(because they are excluded from the
time to restore service, too!)
59 Capturing and calculating the
4 metrics
Time to restore service
Time for a change failure ticket from
open to closed
Mean or median time to restore?
Usually on longer time periods (ex.
120 days)
60 Minimum Viable Dashboard

The current calculated values of each of


the four key metrics
The definitions of each metric
The time periods across which we
calculate them
The historical values of the data
61 Deployment frequency
62 Lead time for changes
63 Change failure rate
64 Time to restore service
65 DORA performance levels

[Link]
66 Agile in name only (AINO)

Agile camouflage
 Meet briefly each morning for a stand-
up
 Refer to requirements as user stories,
although they look the same
 Divide the Gantt chart into 2-week
chunks and call them sprints
 At the end of each sprint, gather to
discuss what you have done, and what
you hope to do better
[Link]
67 Hand-offs between sub-teams

 Agile  Camouflage
 Teams operate as a unit  Teams operate as a
 Members are experts in collection of discrete sub-
one/more specialties but teams
have other abilities too  Architects design,
(T-shape) developers code, testers
 Swarm on work test, operators implement
(Musketeer approach) ⇒ Capacity is discrete
⇒ Capacity is fluid ⇒ Reduced efficiency
⇒ Accelerated learning ⇒ Iterations become
waterfall
⇒ Every person’s ownership
is temporary and
incomplete
68
Clairvoyant on future iteration
planning
 Agile  Camouflage
 About humility:  Slot user stories and
recognize that the specific milestones
future is hard to see for iterations
 Detailed agile occurring far into
planning happens the future
one iteration at a
time  Does not consider
 Detailed iteration the assumptions of
backlogs tend to discovery and
give way to general adaptation upon
features and high- which agile methods
level themes are built
69 Testimonials instead of demos
 Agile  Camouflage
 require that the  technical tasks
product owner masquerading as
accept user stories user stories.
before these are  decompose work in
considered fully terms of software
finished (after seeing configuration items,
a working demo) rather than user
 user stories represent capabilities
delivered business  At the end of the
value, not mere iteration it might be
technical activity nothing to be shown!
=> No feedback from
the product owner
70 Too big stories
 Agile  Camouflage
 employ a  take on stories that are
comprehensive too large to fit into a single
definition of done sprint
(including production  Break work into discrete
caliber testing) phases (development
⇒ Do not take credit for and testing), a story for
finishing a story that is each
partially done  Schedule the stories
⇒ Measure true velocity across multiple iterations
⇒ Avoid context switching ⇒ No fully qualified software
(going back to finish at the end of the iteration
undone body of work) ⇒ Disruptive rework on
development if testing
reveals problems
71
Retrospectives do not lead to
change

 Agile  Camouflage
 aim at the evolution of  hold retrospectives
processes and practices because, like stand-ups,
in response to observed retrospectives are one of
outcomes the obligatory
 Constructive reflection ceremonies
and follow-through on  end up discussing the
identified deficiencies same problem in the
 Retrospective catalyze same way across
actions multiple retrospectives,
because they aren't
doing anything about it
 Retrospectives are
therapeutic
72 Wrap-up

Discussed different classes of Process Models


 Linear
 Iterative
 Parallel
 Prototypes
 Continuous delivery
Agile practices can be integrated into
processes in different ways and applying
different management techniques
73 Quiz time

Please switch over to Moodle

You might also like