Advanced Information Systems
Analysis and Design
Class 2: System Development
Processes and Methods
Alan R. Hevner
University of South Florida
August 30, 2018 Copyright © 2018 Alan R. Hevner 1
Class 2 Outline
Software Development Processes and Methods – Definitions
Plan-Driven Processes and Methods
Waterfall Development Models
Spiral Development Models
V-Model with Incremental Development and Cleanroom Concepts
Agile Processes and Methods
The Agile Manifesto
Rational Unified Process (RUP)
Extreme Programming
Control in Flexible Software Development
DevOps
Concepts
Industry Status
Risk Management
Risk Identification, Analysis, and Control
Using Risk to Balance Discipline and Agility
Designing the Right Process and Method for Your Project
Cost Estimation for Software Projects
August 30, 2018 Copyright © 2018 Alan R. Hevner 2
Software Process
A software process determines the order of
phases (i.e., activities) involved in software
development and evolution and establishes
transition criteria for progressing from one
phase to the next.
What phase and activities shall we do next?
How do we know when we are finished with an
development phase?
August 30, 2018 Copyright © 2018 Alan R. Hevner 3
Software Method
A software method instructs how to perform the
activities in each software development phase
and how to represent the artifacts of that phase.
How do we produce the artifacts of this development
phase?
What representations are appropriate for the
artifacts?
Methodology is used to denote a collection of
related methods.
August 30, 2018 Copyright © 2018 Alan R. Hevner 4
Agility vs. Discipline (B&T Chapter 1)
Development discipline enforces well-
ordered application of processes and
methods. Consistency, repeatability, and
correctness are prized.
Development agility emphasizes creativity
and adaptability to a changing environment.
Fast reaction time and focus on customer are
prized.
August 30, 2018 Copyright © 2018 Alan R. Hevner 5
Background
Two approaches to software development
Disciplined (CMMI, document-based, heavy
process)
Agile (XP, tacit knowledge, light process)
Both have strengths and weaknesses
Agile and disciplined proponents are
believers
Many of us are perplexed
August 30, 2018 Copyright © 2018 Alan R. Hevner 6
Sources of Perplexity
Distinguishing method use from method misuse
Claiming XP use when simply “not documenting”
“CMM Level 4 Memorial Library” of 99 2-inch binders
Overgeneralization based on the most visible
instances
XP is Agile; CMMI is Discipline
Multiple definitions
Quality: customer satisfaction or process compliance?
Claims of universality
The pace of IT change is accelerating and Agile methods adapt
to change better than disciplined methods therefore Agile
methods will take over the IT world.
Software development is uncertain and the CMMI improves
predictability therefore all software developers should use the
CMMI
August 30, 2018 Copyright © 2018 Alan R. Hevner 7
Sources of Perplexity (2)
Early success stories
Chrysler project that successfully birthed XP was later cancelled
Cleanroom has never made it into the mainstream
Purist interpretations (and internal disagreements)
“Don't start by incrementally adopting parts of XP. Its pieces fit
together like a fine Swiss watch“
"An advantage of agile methods is that you can apply them
selectively and generatively."
"If you aren't 100% compliant with SW CMM Level 3, don't
bother to bid"
"With the CMMI continuous interpretation, you can improve your
processes in any order you feel is best."
August 30, 2018 Copyright © 2018 Alan R. Hevner 8
Key Definitions
Agile method –
one which fully adopts the four value propositions and twelve
principles in the Agile Manifesto.
Discipline – (per Webster)
control gained by enforcing obedience or order;
orderly or prescribed conduct or pattern of behavior;
self-control.
Plan-driven –
a description for disciplined methods (order is often defined in
plans)
Plan – (per Webster)
a method for achieving an end (a process plan);
an orderly arrangements of parts of an overall design (a product
plan).
We assume that such plans are documented.
August 30, 2018 Copyright © 2018 Alan R. Hevner 9
Balancing Agility and Discipline
Some view agility and discipline as end points on
a 2-dimensional scale.
Traditional software processes emphasized
discipline.
SEI CMMI
Recent software processes have focused on
agility.
XP and Scrum
Can we find a balance??
August 30, 2018 Copyright © 2018 Alan R. Hevner 10
Plan-Driven Processes/Methods
Foundations come from Engineering fields and
Total Quality Management (TQM)
Initial Process Models came from Dept. of
Defense (DoD) standards:
DoD-STD-2167a
MIL-STD-498
Large organizations (e.g., IBM) adapted DoD
process models for own use.
Essential component of plan-driven process
models is continuous process improvement.
Large requirements for documentation.
August 30, 2018 Copyright © 2018 Alan R. Hevner 11
Plan-Driven Concepts
Process Capability
Process Improvement
Organizational Maturity
Software Engineering Process Groups (SEPGs)
Risk Management
Verification – Build the product right.
Validation – Build the right product.
Software System Architecture
August 30, 2018 Copyright © 2018 Alan R. Hevner 12
Agile Processes/Methods
Foundations come from rapid product
development needs of the market (e.g., E-
Commerce) and the ‘de-humanizing’ feel of
too much discipline.
‘Lightweight’ processes and methods
Agile Manifesto (Appendix B)
http://agilemanifesto.org/
August 30, 2018 Copyright © 2018 Alan R. Hevner 13
Agile Concepts
Embrace Change
Fast Cycle/ Frequent Delivery
Simple Design (You Aren’t Going to Need It)
Refactoring
Pair Programming
Retrospective
Tacit Knowledge
Test-Driven Development
August 30, 2018 Copyright © 2018 Alan R. Hevner 14
Finding Middle Ground
A pragmatic view
Both approaches have “home grounds”
A broad range of environments and needs
Trends require better handling of rapid change
Processes should be the right weight for the job
Risk-based analysis is one key to finding middle
ground
August 30, 2018 Copyright © 2018 Alan R. Hevner 15
Contrasts and Home Grounds
Comparison is difficult, but 4 areas have clear
differences
Application
The type of project
Management
Communication and control aspects
Technical
How the software is developed
Personnel
The type and competency of developers and
stakeholders
August 30, 2018 Copyright © 2018 Alan R. Hevner 16
Application Characteristics
Primary goals
A: Rapid value, responsiveness to change
D: Predictability, stability, high assurance
Size
A: Small to medium
D: Large
Environment
A: Turbulent, high change
D: Stable, requirements defined
August 30, 2018 Copyright © 2018 Alan R. Hevner 17
Management Characteristics
Customer Relations
A: Dedicated, collocated
D: Contractual
A: Trust through working software and participation
D: Trust through process maturity evaluations
Planning and Control
A: Means to an end
D: Anchor processes, communication
Project Communications
A: Tacit, interpersonal knowledge, poor scalability
N developers requires N(N-1)/2 communication paths
D: Explicit, documented knowledge
August 30, 2018 Copyright © 2018 Alan R. Hevner 18
Technical Characteristics
Requirements
A: Adjustable, informal stories
D: Formally baselined, complete, consistent,
traceable, testable specifications
Development
A: Simple Design
D: Planning, Architecture-based design
Testing
A: Automated, test-driven
D: Planned, requirements-driven
August 30, 2018 Copyright © 2018 Alan R. Hevner 19
Personnel Characteristics
Customers
A: CRACK customers throughout development
D: CRACK customers early
CRACK: Collaborative, Representative, Authorized,
Committed, and Knowledgeable
Developers
A: Heavy mix of high caliber throughout
D: Heavy mix early with lower capability later
Culture
A: Many degrees of freedom (Thrives on chaos)
D: Clear policies and procedures (Thrives on order)
August 30, 2018 Copyright © 2018 Alan R. Hevner 20
Personnel Characteristics (2)
Level Characteristics
3 Able to revise a method (break its rules) to fit an unprecedented new situation
2 Able to tailor a method to fit a precedented new situation
1A With training, able to perform discretionary method steps (e.g., sizing stories to fit increments, composing
patterns, compound refactoring, complex COTS integration). With experience can become Level 2.
1B With training, able to perform procedural method steps (e.g. coding a simple method, simple refactoring,
following coding standards and CM procedures, running tests). With experience can master some Level 1A skills.
-1 May have technical skills, but unable or unwilling to collaborate or follow shared methods.
(Skill, Understanding)
(Formality, Documentation)
August 30, 2018 Copyright © 2018 Alan R. Hevner 21
Misconceptions on Plan-Driven
Processes/Methods
Plan-driven processes/methods are bureaucratic.
Having documented plans guarantees compliance
with plans.
Plan-driven processes/methods can succeed with a
lack of talented people.
High maturity guarantees success.
There are no penalties in applying plan-driven
processes/methods when change is foreseeable.
August 30, 2018 Copyright © 2018 Alan R. Hevner 22
Misconceptions on Agile
Processes/Methods
Agile processes/methods don’t plan.
Agile processes/methods require uniformly
talented people.
Agile processes/methods can make the
slope of the cost-to-change vs. time curve
flat.
You Aren’t Going to Need It (YAGNI) is a
universally safe assumption and won’t
alienate your customers.
August 30, 2018 Copyright © 2018 Alan R. Hevner 23
The Five Critical Factors
Factor Agile Disciplined
Size Small products and teams Large products and teams
Limited scalability up Limited scalability down
Criticality Untested on safety-critical Can be adapted for highly
products (Simple design and critical products and
lack of documentation) environments
Dynamism Designed for highly dynamic Designed for highly stable
environments environments
Personnel Requires continuous Specification requires presence
presence of experts of experts
Fewer experts needed later
Culture Thriving on chaos Thriving on order
August 30, 2018 Copyright © 2018 Alan R. Hevner 24
Five Critical Decision Factors
Personnel
(% Level 1B) (% Level 2&3)
40 15
30 20
20 25
Criticality
Dynamism
(Loss due to impact of defects) 10 30
(% Requirements-change/month)
Many 0 35
1
Lives Single 5
Essential 10
Life Discretionary
Funds 30
Funds Comfort
50
3 Ag i l
90 e
10
70
30 Disc
ip line
50 d
100
30
300
Size 10
(# of personnel) Culture
(% thriving on chaos vs. order)
August 30, 2018 Copyright © 2018 Alan R. Hevner 25
Plan-Driven SW Development
Processes
Code and Fix Process
Waterfall Processes
Spiral Processes
Rational Unified Process (RUP)
V-Model Processes
Incremental Development
Cleanroom Extensions
Evolutionary Processes
Prototyping Models
Object-Oriented Processes
August 30, 2018 Copyright © 2018 Alan R. Hevner 26
Waterfall Model
Requirements
analysis
Specifications &
models
Design
Specifications & models
R
i Code and unit test
s
Tested code
k
Subsystem integration
Executable subsystem
System integration
Executable system
Time
August 30, 2018 Copyright © 2018 Alan R. Hevner 27
Spiral Model of Software Process
CUMMULATIVE
COST
PROGRESS
THROUGH
DETERMINE EVALUATE
STEPS
OBJECTIVES, ALTERNATIVES
ALTERNATIVES, IDENTIFY,
CONSTRAINTS RESOLVE RISKS
RISK ANALYSIS
RISK ANALYSIS
RISK ANALYSIS
OPERATIONAL
COMMITMENT PROTOTYPE
RISK PROTOTYPE3
PARTITION
ANAL. PROTOTYPE2
PROTO-
TYPE1
REVIEW
EMULATIONS
RQTS PLAN MODELS
CONCEPT OF BENCHMARKS
LIFE CYCLE
OPERATION SOFTWARE
PLAN
RQTS
SOFTWARE DETAILED
DEVELOP- PRODUCT DESIGN
REQUIREMENTS
MENT PLAN DESIGN
VALIDATION
CODE
INTEGRATION
DESIGN VALIDATION
AND TEST UNIT
AND VERIFICATION
PLAN NEXT PLAN TEST
PHASES INTEGRA-
TION AND
ACCEPT- TEST
IMPLEMEN- ANCE TEST
TATION DEVELOP, VERIFY
NEXT LEVEL PRODUCT
August 30, 2018 Copyright © 2018 Alan R. Hevner 28
Rational Unified Process (RUP)
Engineering Manufacturing
Stage Stage
Inception Elaboration Construction Transition
LCO LCA IOC
Feasibility Architecture Usable Product
Iterations Iterations Iterations Releases
R D I D R D I D R D I D R D I D
E E M E E E M E E E M E E E M E
Q S P P Q S P P Q S P P Q S P P
Management Management Management Management
RATIONAL
Software Corporation
August 30, 2018 Copyright © 2018 Alan R. Hevner 29
V-Model Process
Software Development Process Model
Customer Acceptance
Requirements Analysis Test Scripts Field Test
System Test Scripts
Software Architecture System Integration
System Test
Subsystem
Software Design Test Scripts Subsystem Integration
Subsystem Test
Implementation
Unit Test
Figure 1
August 30, 2018 Copyright © 2018 Alan R. Hevner 30
V-Model with Incremental Development
Evolved Software Development Process Model
(with Incremental Development)
Customer Acceptance
Requirements Analysis Test Scripts Field Test
System Test Scripts
Software Architecture System Integration
Incremental Dev. Plan System Test
Subsystem
Software Design Test Scripts Subsystem Integration
Subsystem Test
Incremental Implementation
Development Cycle
Unit Test
Figure 2
August 30, 2018 Copyright © 2018 Alan R. Hevner 31
V-Model with Specification
Evolved Software Development Process Model
(with Inc. Dev. and Functional/Usage Specifications)
Customer Acceptance
Requirements Analysis Test Scripts Field Test
Functional Usage
Specification Specification
Box Structure
Representations
Software Architecture System Test Scripts System Integration
Incremental Dev. Plan System Test
Box Structure
Representations Subsystem
Software Design Test Scripts Subsystem Integration
Subsystem Test
Box Structure
Representations
Incremental Implementation
Development Cycle
Unit Test
Figure 3
August 30, 2018 Copyright © 2018 Alan R. Hevner 32
V-Model with Cleanroom Testing
Evolved Software Development Process Model
(with Inc. Dev., Func./Usage Spec., and Correctness Verification/Statistical Testing)
Customer Acceptance
Requirements Analysis Test Scripts Field Test
Functional Usage
Specification Specification
Box Structure
Representations System Test Scripts
Software Architecture
Incremental Dev. Plan
Box Structure System Integration
Representations
Statistical Testing
Software Design
Software Certification
Correctness Verification
Box Structure
Representations
Incremental Implementation
Development Cycle
Figure 4
August 30, 2018 Copyright © 2018 Alan R. Hevner 33
Other Process Models
Evolutionary Prototyping
Risks of Prototype lacking essential
functionality and quality attributes
Rapid Application Development Models
Object-Oriented Process Models
Fountain Model
Numerous Industry Process Models
August 30, 2018 Copyright © 2018 Alan R. Hevner 34
Quality Control of Software
Development Processes
Foundation in Total Quality Management
Deming, Juran, Crosby, etc.
Process Capability – the range of results
expected from following a process.
Process Performance – the actual results
achieved from following a process.
Process Maturity – an organization’s ability to
consistently follow and improve its process.
August 30, 2018 Copyright © 2018 Alan R. Hevner 35
The Frameworks Quagmire
August 30, 2018 Copyright © 2018 Alan R. Hevner 36
SEI Capability Maturity Model
Integration (CMMI)
Staged Representation CMMI-DEV Version 1.2
Level 1 – Initial (Heroes)
Level 2 – Managed (Project management)
Level 3 – Defined (Engineering processes)
Level 4 – Quantitatively Managed (Product and process
quality)
Level 5 – Optimizing (Continuous quality improvement)
SEI CMMI
http://cmmiinstitute.com/
August 30, 2018 Copyright © 2018 Alan R. Hevner 37
The Personal Software Process (PSP)
and the Team Software Process (TSP)
The Personal Software Process (PSP) shows engineers
how to
manage the quality of their projects
make commitments they can meet
improve estimating and planning
reduce defects in their products
The Team Software Process (TSP) helps the high-
performance engineering teams to
ensure quality software products
create secure software products
improve process management in an organization
http://www.sei.cmu.edu/tsp
August 30, 2018 Copyright © 2018 Alan R. Hevner 38
The Agile Manifesto - I
We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left more.
August 30, 2018 Copyright © 2018 Alan R. Hevner 39
The Agile Manifesto – II
Our highest priority is to satisfy the customer
through early and continuous delivery
of valuable software.
Welcome changing requirements, even late in
development. Agile processes harness change for
the customer's competitive advantage.
Deliver working software frequently, from a
couple of weeks to a couple of months, with a
preference to the shorter timescale.
Business people and developers must work
together daily throughout the project.
August 30, 2018 Copyright © 2018 Alan R. Hevner 40
The Agile Manifesto – III
Build projects around motivated individuals. Give
them the environment and support they need, and
trust them to get the job done.
The most efficient and effective method of conveying
information to and within a development team is face-
to-face conversation.
Working software is the primary measure of progress.
Agile processes promote sustainable development.
The sponsors, developers, and users should be able
to maintain a constant pace indefinitely.
August 30, 2018 Copyright © 2018 Alan R. Hevner 41
The Agile Manifesto – IV
Continuous attention to technical excellence and
good design enhances agility.
Simplicity – the art of maximizing the amount of work
not done – is essential.
The best architectures, requirements, and designs
emerge from self-organizing teams.
At regular intervals, the team reflects on how to
become more effective, then tunes and adjusts its
behavior accordingly.
August 30, 2018 Copyright © 2018 Alan R. Hevner 42
Various Agile Methods Available
Appendix A in Boehm and Turner
Adaptive Software Development (ASD)
Agile Modeling
Crystal methods
Dynamic System Development Methodology
(DSDM)
* eXtreme Programming (XP)
Feature Driven Development
Lean Development
Scrum
August 30, 2018 Copyright © 2018 Alan R. Hevner 43
eXtreme Programming (XP)
Principles
The 12 Practices
http://extremeprogramming.org
August 30, 2018 Copyright © 2018 Alan R. Hevner 44
XP Principles – I
Philosophy: Take known good practices
and push them to extremes
“If code reviews are good, we’ll review
code all the time”
“If testing is good, we’ll test all the time”
“If design is good, we’ll make it part of
everybody’s daily business”
August 30, 2018 Copyright © 2018 Alan R. Hevner 45
XP Principles – II
“If simplicity is good, we’ll always leave the
system with the simplest design that
supports its current functionality”
“If architecture is important, everybody will
work defining and refining the architecture
all the time”
“If integration testing is important, then
we’ll integrate and test several times a
day”
August 30, 2018 Copyright © 2018 Alan R. Hevner 46
XP Principles – III
“If short iterations are good, we’ll make
the iterations really, really short –
seconds and minutes and hours, not
weeks and months and years”
“If customer involvement is good, we’ll
make them full-time participants”
August 30, 2018 Copyright © 2018 Alan R. Hevner 47
XP: The 12 Practices
The Planning Game Pair Programming
Small Releases Collective Ownership
Metaphor Continuous Integration
Simple Design 40-hour Week
Testing On-site Customer
Refactoring Coding Standards
-Used generatively, not imperatively
August 30, 2018 Copyright © 2018 Alan R. Hevner 48
The Planning Game
Quickly determine the scope of the next
release by combining business priorities
and technical estimates.
Use stories to facilitate knowledge transfer
Put decisions in the hands of the person
with the best knowledge:
business decisions Customer
software decisions Developer
Plan only as far as your knowledge allows
next iteration or next release
August 30, 2018 Copyright © 2018 Alan R. Hevner 49
Small Releases
Put a simple system into production
quickly, then release new versions on a
very short cycle.
Supports quick feedback from users
Simplify the tracking of metrics
stories per iteration project velocity
Increase the manageability of the
project for the customer
August 30, 2018 Copyright © 2018 Alan R. Hevner 50
Metaphor
Guide all development with a single,
simple shared story of how the whole
system works.
Provide an overarching view of the
project
Connect program to work process
August 30, 2018 Copyright © 2018 Alan R. Hevner 51
Simple Design
The system should be designed as simply as
possible at any given moment.
Design embodies only the needed complexity
and no more
emphasis on top-down or bottom-up design as
needed to meet this iteration’s stories
extra complexity removed when discovered
Simpler designs are easier to modify, maintain,
and describe
Decreases the cost of design changes
But no notion of product line architecture
August 30, 2018 Copyright © 2018 Alan R. Hevner 52
Testing
Programmers continually write unit tests which
must run flawlessly for development to continue.
Unit tests verify the programmer’s work
must be done by programmer
constant testing makes finding new bugs faster and
easier
Functional tests verify that a story is complete
developed by customer
tests define functional requirements
August 30, 2018 Copyright © 2018 Alan R. Hevner 53
Refactoring
Programmers restructure the system without
changing its behavior to remove duplication,
improve communication, simplify, or add
flexibility.
Procedure for implementing iterative design
behavior-preserving
improves communication among developers
adds flexibility to the programming process
Design is important – do it all the time
software development process is a design process
But redesign much more expensive for large systems
August 30, 2018 Copyright © 2018 Alan R. Hevner 54
Pair Programming
All code is written by two programmers at
a single machine
Inspections are important, so do them all
the time
Increase implicit knowledge transfer
Decrease cycle time, but increase effort
August 30, 2018 Copyright © 2018 Alan R. Hevner 55
Costs and Benefits of Pair Programming
Reference: Williams and Kessler, Pair Programming
Illuminated, Addison-Wesley, 2003.
Benefits
Mistakes get caught as they are being made.
Defect content is lower.
Designs are better and code length shorter.
Team solves problems faster.
Individuals learn significantly more.
Multiple people understand each piece of the system.
People learn to work together and talk more often together.
People enjoy their work more
Costs
15% overhead
August 30, 2018 Copyright © 2018 Alan R. Hevner 56
Collective Ownership
Anyone can change any code anywhere in the
system at any time.
Everyone owns all of the code
anyone can change any code anywhere
no personal ownership of modules
no egoless programming either
Everyone is permitted access to all the code so
everyone has a stake in knowing all of the code
(that they will work with)
Requires deserved trust
But still has scalability problems
August 30, 2018 Copyright © 2018 Alan R. Hevner 57
Continuous Integration
Integrate and build the system many times
a day, every time a task is completed.
The system always works
there is always something to be released
Similar to rapid releases
fast feedback to developers on problems
no ‘big bang’ integration disasters
August 30, 2018 Copyright © 2018 Alan R. Hevner 58
40-hour Week
Work no more than 40 hours a week as a
rule.
No heroes
Knowledge can only be transferred at a
limited rate
Work for sustained speed, not a single
sprint
never work overtime a second week in a row
August 30, 2018 Copyright © 2018 Alan R. Hevner 59
On-site Customer
A real, live user available full-time to
answer questions as they occur
Programmers don’t know everything
Business knowledge is the key to a
successful business project
August 30, 2018 Copyright © 2018 Alan R. Hevner 60
Coding Standards
Programmers write all code in
accordance with rules emphasizing
communication through the code.
Common standard promotes
understanding of other developers’ code
Helps promote team focus
August 30, 2018 Copyright © 2018 Alan R. Hevner 61
August 30, 2018 Copyright © 2018 Alan R. Hevner 62
Scrum
Scrum is a popular agile method with well-
defined roles, activities, and artifacts
Scrum Overview
https://www.scrumalliance.org/agile-
resources/overview-of-the-scrum-framework
August 30, 2018 Copyright © 2018 Alan R. Hevner 63
Controls in Flexible Software Development
Flexible software development processes
provide clear control mechanisms to
manage progress and quality
Control Theory is used to understand the
control mechanisms in both Plan-Driven
and Agile Processes
M. Harris, R. Collins, and A. Hevner, “Control of Flexible Software Development
under Uncertainty,” Information Systems Research: Special Issue on Flexible and
Distributed Information Systems Development, September 2009.
M. Harris, A. Hevner, and R. Collins, "Controls in Flexible Software Development,"
Communications of the Association for Information Systems: Vol. 24, Article 43,
2009. Available at: http://aisel.aisnet.org/cais/vol24/iss1/43.
August 30, 2018 Copyright © 2018 Alan R. Hevner 64
85% of CIOs indicate agility
is part of core business
strategy
Motivation (Ware 2004)
Plan-driven vs agile? Comparing agile
FBI Virtual Case Project methods
$170 Million
Process studies use assertions
Plan-driven may feel more
& proof of concept
successful (Zelkowitz et al. 1998)
(MacCormack et al. 2001)
Agile versus ad hoc? Adapting agile
Agile Manifesto methods (Boehm 2004)
(Beck 2001)
Plan Driven
Controlled
Flexibility Ad Hoc
August 30, 2018 Copyright © 2018 Alan R. Hevner 65
Control Theory
Knowledge of Transformation Process
Perfect Imperfect
Availability of High Behavioral or Outcome Outcome
Outcome
Measures Low Behavioral Clan
Control theory Portfolios of control
(Ouchi 1977, 1979, 1980; Ouchi et al (Orlikowski 1991, Henderson 1992, Kirsch
1978; Kirsch 1996, 1997, 2004) 1997, Choudhury et al. 2003, Nidumolu et
al. 2003-2004)
Clan / Self-control
Clan-Team Control Dynamic controls
(Orlikowski 1991, Choudhury et al. 2003,
Clan-Attitude Control Cardinal et al. 2004, Kirsch 2004)
Over time, controls need to change
Adaptable controls?
August 30, 2018 Copyright © 2018 Alan R. Hevner 66
Example Development Processes
Waterfall Rational Synchronize Extreme
Unified And Programming
Process Stabilize
Changes Changes Changes
Discouraged Expected Encouraged
August 30, 2018 Copyright © 2018 Alan R. Hevner 67
Emergent Outcome Controls
Traditional outcome control
A priori specification
Flexible processes
Outcomes emerge throughout development
Actively manage emergent outcomes
Two types of emergent outcome control mechanisms
Scope boundaries
Limit amount of creativity
Time limit
Functional limit
Ongoing feedback
User Representatives
Market / Technical Feasibility
Example: Incremental development
August 30, 2018 Copyright © 2018 Alan R. Hevner 68
Traditional vs. Emergent Control
August 30, 2018 Copyright © 2018 Alan R. Hevner 69
Extreme Programming Example
August 30, 2018 Copyright © 2018 Alan R. Hevner 70
Process Controls Compared
Synchronize & Extreme
Waterfall RUP Stabilize Programming
Flexibility requires broader portfolio of
controls
Emergent outcome controls important for
flexibility
August 30, 2018 Copyright © 2018 Alan R. Hevner 71
Research ModelEnvironment Development Processes Results
H1 H2
Plan Driven Processes
- -
Controlled Flexible Processes
Unpredictability + Emergent Outcomes + + Product-
-Market •Bounded Scope Market
-Technology Match
+ •Ongoing User Feedback -
Ad-hoc H3
H1: As the market and technology become less predictable, software
development is less likely to be managed using a plan-driven method.
H2: In an uncertain environment, mechanisms that manage emergent
outcomes are more likely to match the market’s needs than a plan-
driven method.
H3: In an uncertain environment, mechanisms that manage emergent
outcomes are more likely to match the market’s needs than an ad hoc
approach.
August 30, 2018 Copyright © 2018 Alan R. Hevner 72
DevOps
DevOps (a combination of "development" and "operations") is
a software engineering culture and practice that aims at unifying
software development (Dev) and software operations (Ops).
The main characteristic of the DevOps movement is to strongly
advocate automation and monitoring at all steps of software
construction, from integration, testing, releasing to deployment
and infrastructure management.
DevOps aims at shorter development cycles, increased
deployment frequency, more dependable releases, in close
alignment with business objectives.
References:
https://devops.com/
https://theagileadmin.com/what-is-devops/
August 30, 2018 Copyright © 2018 Alan R. Hevner 73
DevOps Goals
Improved deployment frequency
Faster time to market
Lower failure rate of new releases
Shortened lead time between fixes
Faster mean time to recovery (in the event of a
new release crashing or otherwise disabling the
current system)
Enhanced customer experience
Increased innovation capacity
August 30, 2018 Copyright © 2018 Alan R. Hevner 74
DevOps - Basics
DevOps applies agile and lean principles across
the entire software supply chain
Enhanced customer experience
Increased innovation capacity
Faster time to value
Lower failure rates and faster mean time to recovery
DevOps requires an organizational culture shift
Operations
Development
Quality Assurance - Testing
August 30, 2018 Copyright © 2018 Alan R. Hevner 75
DevOps Transformation
The process of transforming and adapting a
software development methodology in
accordance with Agile development methods
as opposed to the older Waterfall technique.
Thanks to this transformation, development
and operations teams are no longer siloed
and are often merged into a single unit where
development and operations teams work
across the entire application cycle enabling
efficient DevOps processes.
August 30, 2018 Copyright © 2018 Alan R. Hevner 76
Shift Left
August 30, 2018 Copyright © 2018 Alan R. Hevner 77
DevOps Process
August 30, 2018 Copyright © 2018 Alan R. Hevner 78
State of DevOps in 2018
Interop ITX Research Report
https://www.interop.com/reports
August 30, 2018 Copyright © 2018 Alan R. Hevner 79
Returning to the Boehm and Turner Text
Chapter 3
A Day in the Life of XP Project
A Day in the Life of an TSP Project
Chapter 4
Scaling up Agile Methods – Bad Smells
Lease Management Case Study
Streamlining Plan-Driven Methods
Command Center Processing and Display System
Replacement
August 30, 2018 Copyright © 2018 Alan R. Hevner 80
Using Risk to Balance
Discipline and Agility - Overview
Step 1. Step 2. Discipline risks
Risk Analysis Risk dominate Go Risk-driven
Comparison Agile
Rate the project’s
environmental, agility- Compare
oriented and discipline- the agile
Go Risk-driven
oriented risks. and
Agility risks Disciplined
disciplined
risks dominate
Neither dominate
Uncertain No
about
Step 3.
ratings? Architecture
Analysis
Go Risk-driven
Yes Agile in agile
Architect application to
parts; Go Risk-
encapsulate agile parts
Buy information via driven Disciplined
prototyping, data elsewhere
collection and analysis
Step 5.
Execute and Monitor
Deliver incremental
capabilities according to Tailor life cycle process
strategy around anchor point
commitment milestones
Monitor progress and
risks/opportunities,
readjust balance and Step 4.
process as appropriate Tailor Life Cycle
August 30, 2018 Copyright © 2018 Alan R. Hevner 81
Risks Used in Risk Comparison
Environmental risks
Technology uncertainties
Many stakeholders
Complex system-of-systems
Agility-oriented risks
Scalability
Use of simple design
Personnel turnover
Too-frequent releases
Not enough agile-capable people
Discipline-oriented risks
Rapid change
Need for rapid results
Emergent requirements
Not enough discipline-capable people
August 30, 2018 Copyright © 2018 Alan R. Hevner 82
Three Examples
Agent-based systems
Small – Event Managers application
Medium – SupplyChain.com application
Large – National Information System for
Crisis Management (NISCM) application
Each example results in a development
strategy based on risk analyses
August 30, 2018 Copyright © 2018 Alan R. Hevner 83
Event Managers Project
Small startup company
Diverse set of smaller agent-based planning
applications
This project: support for managing the
infrastructure and operations of conferences and
conventions
Widening variety of options and
interdependencies, makes an agent-based
approach highly attractive
August 30, 2018 Copyright © 2018 Alan R. Hevner 84
Event Managers Profile
Risk Items Risk Ratings
Event Managers Personnel
Environmental Risks (% Level 1B) (% Level 2&3)
E1. Technology uncertainties 40 15
E2. Many stakeholders 30 20
E3. Complex system of systems
Risks of using Agile Methods 20 25
A1. Scalability Criticality
Dynamism
(Loss due to impact of defects)
A2. Use of simple design
10 30
(% Requirements-change/month)
A3. Personnel turnover Many 0 35
1
A4. Too-frequent releases Lives Single
Life
Essential
Funds Discretionary
10
5
30
A5. Not enough agile-capable people Funds Comfort
50
Risks of using disciplined methods 3
D1. Rapid change
90
10
D2. Need for rapid results 70
30
D3. Emergent requirements 50
D4. Not enough discipline-capable 100
30
people 300
Risk rating scale: - Serious but manageable risk Size 10
- minimal risk - Very serious but manageable risk (# of personnel) Culture
(% thriving on chaos vs. order)
- moderate risk - Show-stopper risk
August 30, 2018 Copyright © 2018 Alan R. Hevner 85
Event Managers Strategy
1. Startup 2. Design, Development and Deployment
Teambuilding and Shared
Vision
Customer
Management;
Representative
Users
• Establish CRACK joint
management team
• Develop shared vision,
• Test, exercise, deploy new increment
results chain, life cycle
• Re-prioritize next-increment features
strategy, infrastructure
• Analyze lessons learned; prepare
choices
strategy for next increment
• Establish commitment
Joint Developer- to proceed, incremental
Customer Agile Team
capabilities, backlog
• Develop next-increment
features
August 30, 2018 Copyright © 2018 Alan R. Hevner 86
SupplyChain.com Profile
Turnkey agent-based supply chain management
systems
Distributed, multi-organization teams of about 50
people
Parts of applications are relatively stable, while
others are highly volatile
Architectures are driven by a few key COTS
packages that are also continually evolving
August 30, 2018 Copyright © 2018 Alan R. Hevner 87
SupplyChain.com Profile
Risk Items Risk Ratings
SupplyChain.com
Environmental Risks Personnel
(% Level 1B) (% Level 2&3)
E1. Technology uncertainties 40 15
E2. Many stakeholders 20
30
E3. Complex system of systems
Risks of using Agile Methods 20 25
A1. Scalability Criticality
(Loss due to impact of defects) Dynamism
10 30
A2. Use of simple design (% Requirements-change/month)
A3. Personnel turnover Many
Lives Single
0 35
5
1
A4. Too-frequent releases
Essential 10
Life Discretionary
Funds 30
Funds Comfort
50
A5. Not enough agile-capable people 3
Risks of using disciplined methods 90
D1. Rapid change
10
70
D2. Need for rapid results
30
50
D3. Emergent requirements 100
30
D4. Not enough discipline-capable 300
people Size 10
(# of personnel) Culture
Risk rating scale: - Serious but manageable risk (% thriving on chaos vs. order)
- minimal risk - Very serious but manageable risk
- moderate risk - Show-stopper risk
August 30, 2018 Copyright © 2018 Alan R. Hevner 88
SupplyChain.com Strategy
Startup 1. 2. Systems 3. Design, Development and Deployment
Teambuilding Definition and
and Shared Architecting • Ensure representative • Use risk to determine
Furnish CRACK Vision exercise of incremental content of artifacts
representatives capabilities
and alternates • Monitor progress and
• Elaborate supply new operational • Communicate • Analyze
chain operational development proposed feedback on
• Develop benefits-
Stakeholders
realization results concept, prototypes, redirections current
chains transition strategy • Prepare for and version
Project • Evaluate and
• Identify missing execute • Reprioritize
Manager and
stakeholders determine COTS, • Monitor project progress, acceptance features
Risk
Management • Enhance mutual Review; reuse, and Review; risk resolution, and new tests, • Prepare
Team understanding Commit architecture choices Commit technology installation, strategy for
• Explore goals, to • Prioritize and to developments operational next
options, technology, proceed sequence desired proceed • Identify and work critical evolution increment
prototypes, risks capabilities, project-level actions • Consolidate
outstanding risks process
• Establish project lessons
organization, overall learned
Staff and process, and feature
organize to cover teams
all success-
critical risk areas • Develop and integrate
new feature increments
Agile Feature Team
August 30, 2018 Copyright © 2018 Alan R. Hevner 89
NISCM Profile
Broad coalition of government agencies and
critical private-sector organizations
Support cross-agency and public-private sector
coordination of crisis management activities
Adaptive mobile network, virtual collaboration,
information assurance, and information
integration technology
Private-sector system-of-systems integration
contractor
August 30, 2018 Copyright © 2018 Alan R. Hevner 90
NISCM Profile
Risk Items Risk Ratings
NISCM
Environmental Risks
Personnel
E1. Technology uncertainties (% Level 1B) (% Level 2&3)
E2. Many stakeholders 40 15
E3. Complex system of systems 30 20
Risks of using Agile Methods
A1. Scalability — 20 25
A2. Use of simple design — Criticality
(Loss due to impact of defects) 10 30
Dynamism
A3. Personnel turnover (% Requirements-change/month)
A4. Too-frequent releases Many
Lives Single
0 35
5
1
A5. Not enough agile-capable people —
Essential 10
Life Discretionary
Funds 30
Funds Comfort
50
Risks of using disciplined methods
D1. Rapid change 3
90
D2. Need for rapid results 10
70
D3. Emergent requirements 30
D4. Not enough discipline-capable
50
100
people 30
Risk rating scale: - Serious but manageable risk
300
Size 10
- minimal risk - Very serious but manageable risk (# of personnel) Culture
- moderate risk - Show-stopper risk (% thriving on chaos vs. order)
August 30, 2018 Copyright © 2018 Alan R. Hevner 91
NISCM Strategy
Startup Teambuilding Systems Design, Development and
and Shared Definition and Deployment
Vision Architecting
• Prepare for/select • Ensure representative
competitors for exercise of incremental
Furnish CRACK component subcontract capabilities
representatives • Develop results chains definition • Monitor progress and new
and alternates • Identify missing • Elaborate operational operational development
stakeholders concept, prototypes,
• Enhance understanding transition strategy
• Explore goals, options, Hold Life • Evaluate/determine Hold Life
Stakeholders technology, prototypes, Cycle COTS, reuse, and Cycle
risks Objective architecture choices Architecture
• Negotiate mutually Review. If • Develop/ validate critical- Review. If • Use risk to determine content of
satisfactory objectives feasibility infrastructure software feasibility artifacts
and priorities rationale is • Prioritize/sequence rationale is
• Staff and organize • Formulate top-level valid, desired capabilities, valid,
to cover all operational concept, commit to outstanding risks commit to • Communicate • Analyze
• Monitor project progress,
success-critical requirements, proceed • Formulate definitive proceed proposed feedback on
risk resolution, and new
risk areas architecture, life cycle operational concept, redirections current
technology developments
• Prepare for and plan, feasibility rational requirements, • Prepare for version
• Identify/work critical project-
select competitors • Select winning system architecture, life cycle and execute • Reprioritize
level actions
for concept integration contract plan, feasibility rationale acceptance features
• Continuously integrate/ test
definition • Use to solicit/select tests, • Prepare
growing software
component installation, strategy for
infrastructure and
subcontractors operational next
NSO and I3-led Project components
evolution increment
Risk Management Team
Plan, specify,
develop stable,
• Develop compatible higher-criticality
Organize module
Stable, Higher-criticality component-level
into increments
Module Teams prototypes, requirements, disciplined
architectures, plans, and agile
critical software, feasibility module Plan, specify,
rationale teams develop dynamic,
• Classify modules by likely
lower-criticality
stability and criticality module
Dynamic, Lower-criticality
Module Teams increments
August 30, 2018 Copyright © 2018 Alan R. Hevner 92
Risk Profiles Across Examples
Risk Items Risk Ratings
Event Managers SupplyChain.com NISCM
Environmental Risks
E1. Technology uncertainties
E2. Many stakeholders
E3. Complex system of systems
Risks of using Agile Methods
A1. Scalability —
A2. Use of simple design —
A3. Personnel turnover
A4. Too-frequent releases
A5. Not enough agile-capable people —
Risks of using disciplined methods
D1. Rapid change
D2. Need for rapid results
D3. Emergent requirements
D4. Not enough discipline-capable people
Risk rating scale: - Serious but manageable risk
- minimal risk - Very serious but manageable risk
- moderate risk - Show-stopper risk
August 30, 2018 Copyright © 2018 Alan R. Hevner 93
Conclusions (Chapter 6)
Neither agile nor disciplined methods provide a silver
bullet
Agile and disciplined methods have home grounds
where one clearly dominates the other
Future trends are toward application developments that
need both agility and discipline
Some balanced methods are emerging
It is better to build your method up than to tailor it down
Methods are important, but potential silver bullets are
more likely to be found in areas dealing with people,
values, communications, and expectations
management.
August 30, 2018 Copyright © 2018 Alan R. Hevner 94
Software Project Cost Estimation
Extremely difficult and error-prone task.
Essential skill for Project Managers
Three Basic Techniques
Expert Judgment – Use your most experienced analyst
Analytic Models – All models are wrong, some are useful.
COCOMO II -
http://sunset.usc.edu/csse/research/COCOMOII/cocomo_main.html
Analogy – Case Based Reasoning
Find a previous project that resembles the new project
August 30, 2018 Copyright © 2018 Alan R. Hevner 95
Estimation Process
Step 1 – Estimate Size of the Product
Lines of Code
Function Points
Step 2 - Estimate the Effort
Person-Months
Identify Staff Resources (Number and Skills)
Step 3 – Estimate the Schedule
Calendar Months
Step 4 – Present your estimates in ranges and
periodically refine the ranges as the project
progresses.
August 30, 2018 Copyright © 2018 Alan R. Hevner 96
Estimation Guidelines
Avoid off-the-cuff estimates.
Plan adequate time for preparing estimates.
Use data from previous projects.
Involve your team in generating estimates.
Estimate by walk-through.
Estimate by categories.
Estimate at a low level of detail.
Don’t omit common tasks.
Use software estimation tools.
Use several different estimation techniques and compare results.
Change estimation practices as the project progresses.
Modify estimates based on type of system to be built.
System product
Business product
Mass-market product
Build Optimistic, Efficient, and Nominal schedules
August 30, 2018 Copyright © 2018 Alan R. Hevner 97
Class 2 Discussion Question
Consider a recent software development project in which
you have participated. Did your process need more
discipline or more agility to be effective? Why?
August 30, 2018 Copyright © 2018 Alan R. Hevner 98