SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
3.
Can Application Lifecycle Management (ALM)
work in an environment that grows ever more
complex?
And how does this relate to the first Agile
principle, which promotes “people over processes
and tools?”
ALM: Dealing with Complexity
4.
http://www.flickr.com/photos/futureshape/4000128011/
Typical software development
5.
One small change
http://www.flickr.com/photos/laszlo-photo/1899390628/
12.
Quasimodo
software
heart of gold,
broken body
Image via Google Search
13.
And it doesn’t get easier…
http://www.flickr.com/photos/steelmore/221737671/
14.
http://www.flickr.com/photos/hinkelstone/2435823037/
Increasing number
of technologies
15.
http://www.flickr.com/photos/foxspain/3219577797/
Increasing levels
of globalization
16.
Increasing amount
of customization
http://www.flickr.com/photos/pmiaki/4566582179/
17.
Lehman’s Laws of
Software Evolution
http://www.flickr.com/photos/pagedooley/1825685405/
18.
Continuing Change
Lehman’s 1st Law
“A system must be continually adapted or else
it becomes progressively less capable of
satisfying its users.”
http://www.flickr.com/photos/untitlism/2609684221/
http://en.wikipedia.org/wiki/Lehman's_laws_of_software_evolution
19.
Increasing Complexity
Lehman’s 2nd Law
“As a system evolves its complexity increases
unless work is done to reduce it.”
http://www.flickr.com/photos/hinkelstone/2765597758/
http://en.wikipedia.org/wiki/Lehman's_laws_of_software_evolution
20.
Self-Regulation
Lehman’s 3rd Law
“The system evolution process is self-regulating
with product and process measures closely
following a normal distribution.”
http://www.flickr.com/photos/jurvetson/2323537118/
http://en.wikipedia.org/wiki/Lehman's_laws_of_software_evolution
21.
Organizational Stability
Lehman’s 4th Law
“The average activity rate (maintenance) in an
evolving system is invariant over its lifetime.”
http://www.flickr.com/photos/zyllan/4880446208/
http://en.wikipedia.org/wiki/Lehman's_laws_of_software_evolution
22.
Conservation of Familiarity
Lehman’s 5th Law
“As a system evolves all people involved with it
must maintain mastery of its content and
behavior to achieve satisfactory evolution.”
http://www.flickr.com/photos/kevinpoh/3586321697/
http://en.wikipedia.org/wiki/Lehman's_laws_of_software_evolution
23.
Continuing Growth
Lehman’s 6th Law
“The functional content of a system must be
continually increased to maintain user
satisfaction over its lifetime.”
http://www.flickr.com/photos/randysonofrobert/376221775/
http://en.wikipedia.org/wiki/Lehman's_laws_of_software_evolution
24.
Declining Quality
Lehman’s 7th Law
“The quality of a system will decline unless it is
rigorously maintained and adapted to
operational environment changes.”
http://www.flickr.com/photos/reinante/4413913423/
http://en.wikipedia.org/wiki/Lehman's_laws_of_software_evolution
25.
Feedback System
Lehman’s 8th Law
“Evolution processes constitute complex
feedback systems and must be treated as such
to achieve significant improvement over any
reasonable base.”
http://www.flickr.com/photos/pixel_addict/465394708/
http://en.wikipedia.org/wiki/Lehman's_laws_of_software_evolution
26.
How can we ever deal
with all this change?
http://www.flickr.com/photos/pagedooley/2845763884/
28.
“Application Lifecycle Management (ALM) is a
continuous process of managing the life of an
application through governance, development and
maintenance.”
Definition(s)
Wikipedia
http://en.wikipedia.org/wiki/Application_lifecycle_management
29.
“ALM is a set of disciplines that together govern
the process of turning business ideas into
software.”
Definition(s)
“ALM changing to meet development organizations' needs”
http://en.wikipedia.org/wiki/Application_lifecycle_management
30.
“Any tools, technologies, or techniques that
attempt to connect and maintain connections
between activities over the life of a piece of
software – from the first glint in the glimmer of an
executive's eye, through system retirement.”
Definition(s)
“Just-enough application lifecycle management (ALM)”
http://searchsoftwarequality.techtarget.com/news/column/0,294698,sid92_gci1396258,00.html
31.
http://en.wikipedia.org/wiki/File:ALM.svg
ALM visualized in models, from bad…
33.
“Organizations which design systems are
constrained to produce designs which are
copies of the communication structures of
these organizations.”
Conway’s Law
http://www.flickr.com/photos/jeanlouis_zimmermann/570332025/
http://en.wikipedia.org/wiki/Conway's_Law
34.
ALM 1.0
Separated disciplines
Silos of information
Fragile integration
http://www.flickr.com/photos/eirikref/727551264/
35.
ALM 2.0
Single repository
Roles and connections
“One truth”
http://www.flickr.com/photos/sudhamshu/4379880762/
37.
Complex Systems
“A complex system is a system composed of interconnected
parts that as a whole exhibit one or more properties (behavior)
not obvious from the properties of the individual parts.”
Sometimes called the sciences of complexity (plural)
http://cfpm.org/pub/users/bruce/thesis/chap4.pdf
38.
General Systems Theory
Autopoiesis (how a system constructs itself)
Identity (how a system is identifiable)
Homeostatis (how a system remains stable)
Permeability (how a system interacts with its environment)
Ludwig von Bertalanffy
(biologist)
1901-1972
Study of relationships between elements
39.
Cybernetics
Goals (the intention of achieving a desired state)
Acting (having an effect on the environment)
Sensing (checking the response of the environment)
Evaluating (comparing current state with system’s goal)
Norbert Wiener
(mathematician)
1894-1964
Study of regulatory systems
40.
Dynamical Systems Theory
Stability (stable states versus unstable states)
Attractors (systems getting sucked into stable states)
Study of system behavior
41.
Game Theory
Competition versus cooperation
Zero sum games versus non-zero sum games
Strategies (including evolutionary stable strategies)
John von Neumann
(mathematician)
1903-1957
Study of co-adapting systems
42.
Evolutionary Theory
Population (more than one instance)
Replication (mechanism of making new instances)
Variation (differences between instances)
Heredity (differences copied from existing instances)
Selection (environment imposes selective pressure)
Charles Darwin
(naturalist)
1809-1882
Study of evolving systems
43.
Chaos Theory
Strange attractors (chaotic behavior)
Sensitivity to initial conditions (butterfly effect)
Fractals (scale-invariance)
Edward Lorenz
(meteorologist)
1917-2008
Study of unpredictable systems
44.
And more...
Dissipative systems (spontaneous pattern-forming)
Cellular automata (complex behavior from simple rules)
Genetic algorithms (adaptive learning)
Social network analysis (propagation of information)
Study of all kinds of systems
45.
The Body of Knowledge of Systems
Complex systems theory is
the study of complex
systems using multiple
system theories
46.
Simplicity: A New Model
Simple = structure is easily understandable
Complicated = structure is very hard to understand
Ordered = behavior is fully predictable
Complex = behavior is somewhat predictable
Chaotic = behavior is very unpredictable
Simplification = making something better understandable
Linearization = making something more predictable
47.
Structure-Behavior Model
http://www.noop.nl/2010/09/simplicity-a-new-model.html
Complex and complicated
seen as different dimensions
48.
9 lessons
from
complexity
thinking
http://www.flickr.com/photos/stevon/3577915624/
49.
http://www.flickr.com/photos/arcticpuppy/2943901683/
Focus on people
motivation
competence
50.
http://www.flickr.com/photos/linhngan/3101950593/
communication
collaboration
57.
Heed “incompressibility”
All models are wrong, some are useful
http://www.flickr.com/photos/speckham/3885641714/
58.
People
Relationships
Change
Self-organization
Emergence
Diversity
Decentralization
Non-linearity
Incompressibility
One approach to bind them all…
http://www.flickr.com/photos/gladius/2332020850/
59.
Agile Software Development
http://www.flickr.com/photos/sidelong/2909952599/
60.
“An iterative and incremental (evolutionary)
approach to software development which is
performed in a highly collaborative manner by
self-organizing teams within an effective
governance framework with "just enough"
ceremony that produces high quality solutions in a
cost effective and timely manner which meets the
changing needs of its stakeholders.”
Definition
Agile Modeling
http://www.agilemodeling.com/essays/agileSoftwareDevelopment.htm
62.
Then add some
modifications...
Split Cost (Resources) in People and Tools
Split Scope in Functionality and Quality (suggestion: Scott Ambler)
Add a dimension for Process (suggestion: Alistair Cockburn)
Add a dimension for (Business) Value (suggestion: Jim Highsmith)
http://www.ambysoft.com/essays/brokenTriangle.html
http://alistair.cockburn.us/index.php/Process:_the_fourth_dimension
http://blog.cutter.com/2009/08/10/beyond-scope-schedule-and-cost-measuring-agile-performance/
63.
1. People
2. Functionality
3. Quality
4. Tools
5. Time
6. Value
7. Process
And we get...
the 7 dimensions of
software projects
64.
People
interaction
collaborationsmall teams
cross-functional
colocation
self-organization
trust
accountability
respect
65.
Functionality
customer involvement
backlogs
user stories
acceptance criteria
minimal marketable features
user demos
“inch-deep, mile-wide”
66.
Quality
technical excellence
test-driven development
pair programming
definition of done
refactoring
emergent design
simplicity
67.
Tools
daily builds
continuous integration
automated testing
open offices
task boards
burn charts
version control
68.
Time
timeboxes
iterations
sprints
potentially shippable products
rolling wave planning
sustainable pace
release planning
69.
Value
embracing change
feedback
frequent delivery
value streams
value mappingprioritization
increments
70.
Process
stand-up meetings
planning poker
velocity
spikes
collective code ownership
retrospectives
sprint planning
75.
Agile vs. ALM: differences
people vs. tools
practices vs. techniques
http://www.flickr.com/photos/thebusybrain/2492945625/
76.
Agile ALM
the best of both,
using complexity thinking
http://www.flickr.com/photos/batega/1865482908/
77.
“The typical project is a collection of ideas held in
the minds of the people on the project. […]
A project is not the sum of all of its documents or
even its code. A great deal of the context of a
project lies in its participants.”
- Matt Heusser
“Just-enough application lifecycle management (ALM)”
http://searchsoftwarequality.techtarget.com/news/column/0,294698,sid92_gci1396258,00.html
79.
ALM tools should support high-bandwidth
communication, and should not needlessly replace
person-person communication with person-tool
communication.
Example: facilitation and storage of photos, audio,
video.
1. High-Bandwidth Communication
80.
ALM tools must natively support all common
Agile practices.
Example: user stories, acceptance testing,
iterative planning, continuous flow, unit testing,
refactoring, automated builds, continuous
integration, etc…
2. Agile Best Practices
81.
The ALM infrastructure must be selected, built and
maintained by the team(s) themselves. Nothing
should be mandated by those who don’t have to
work with it.
Example: a team can select its own favorite
automatic build system or Agile planning tools.
3. Bottom-Up Infrastructure
82.
A healthy ALM strategy will allow for multiple
vendors of tools. The benefits of specialization
(of tools) often outweighs the cost of
integration. There is no “single truth”.
Example: use Visual Studio Team System except
source control.
4. Multi-Vendor Approach
83.
ALM tools should aim for accessibility. The goal is
collaboration, not centralization. Information
should be radiated, not concentrated.
Example: status updates on whiteboard and in task
tracking tool.
5. Distributed Information
84.
Modeling of processes is a form of prediction, and
thus unreliable. Allow for emergent design of the
ALM infrastructure. Grow it in an Agile way.
Example: use a continuous improvement backlog
for the ALM infrastructure.
6. Agile Improvement
85.
ALM tools must be extensible, customizable and
adaptable, so that they can grow together with the
project.
Example: open API’s, web services, plug-ins,
widgets, macros, etc.
7. Adaptable Tools
87.
Application lifecycle management (Wikipedia)
http://en.wikipedia.org/wiki/Application_lifecycle_management
Mea culpa, ALM toolmakers say (SD Times)
http://www.sdtimes.com/link/31952
ALM changing to meet development organizations' needs (SearchSoftwareQuality)
http://searchsoftwarequality.techtarget.com/news/article/0,289142,sid92_gci1259517_mem1,00.ht
ml
Application Lifecycle Management Gets Agile (ITBusinessEdge)
http://www.itbusinessedge.com/cm/blogs/vizard/application-lifecycle-management-gets-
agile/?cs=39865
What is Agile ALM? (Ezine Articles)
http://ezinearticles.com/?What-is-Agile-ALM?&id=3948403
Agile ALM – Opposites Attract (CM Crossroads)
http://www.cmcrossroads.com/cm-journal-articles/13601-agile-alm-opposites-attract
What is the definition of Application Lifecycle Management (ALM)? (IT Knowledge Exchange)
http://itknowledgeexchange.techtarget.com/software-quality/what-is-the-definition-of-application-
lifecycle-management-alm/
Sources
88.
Just-enough application lifecycle management (ALM) (SearchSoftwareQuality)
http://searchsoftwarequality.techtarget.com/news/column/0,294698,sid92_gci1396258,00.html
ALM and Agile (RedMonk)
http://www.redmonk.com/cote/2006/12/04/alm-and-agile/
Top 7 Key Requirements of an Agile ALM Platform (Top7Business)
http://top7business.com/?id=15513
Does Application Lifecycle Management (ALM) add Value or Hinder the Adoption of Agile-Lean
Product Development? (AgileJournal)
http://www.agilejournal.com/articles/columns/column-articles/3326-does-application-lifecycle-
management-alm-add-value-or-hinder-the-adoption-of-agile-lean-product-development
What exactly is an ALM tool (SearchSoftwareQuality)
http://searchsoftwarequality.techtarget.com/expert/KnowledgebaseAnswer/0,289625,sid92_gci1523
524,00.html
Getting Started with Agile ALM (Manning)
http://www.manning.com/huettermann/
Sources
91.
http://creativecommons.org/licenses/by-nd/3.0/
This presentation was inspired by the works of many people, and I cannot
possibly list them all. Though I did my very best to attribute all authors of texts
and images, and to recognize any copyrights, if you think that anything in this
presentation should be changed, added or removed, please contact me at
jurgen@noop.nl.