You are on page 1of 94

Application Lifecycle Management Dealing with Complexity

Click to edit Master subtitle style

Jurgen Appelo
http://www.flickr.com/photos/poppacket/4290209522/

Agile ALM

4/20/12

jurgen@noop .nl

ALM: Dealing with Complexity


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?

4/20/12

http://www.flickr.com/photos/futureshape/4000128011

4/20/12

Typical software development

One

small

change

http://www.flickr.com/photos/laszlo-photo/1899390628/

4/20/12

http://www.flickr.com/photos/schanlaub/5102055360/

4/20/12

Rippling effects everywhere

http://www.flickr.com/photos/mcfarlandmo/3275420128/

4/20/12

Endless updates

Very tempting to take shortcuts

http://www.flickr.com/photos/jngelvezon/3544740238/

4/20/12

Or to say STOP!
We wont change this.
http://www.flickr.com/photos/soamplified/4862757831

4/20/12

The result is a big entangled


http://www.flickr.com/photos/hryckowian/2029393648/

4/20/12

Also called technical

technical
http://www.flickr.com/photos/kevinkrejci/3065365140/

4/20/12

Quasimod o software
heart of gold, broken body
Image via Google

4/20/12

http://www.flickr.com/photos/steelmore/221737671/

4/20/12

And it doesnt get

http://www.flickr.com/photos/hinkelstone/2435823037/

4/20/12

Increasing number of technologies

Increasing levels of globalization

http://www.flickr.com/photos/foxspain/3219577797/

4/20/12

Increasing amount of customization

http://www.flickr.com/photos/pmiaki/4566582179/

4/20/12

Lehmans Laws of Software Evolution

http://www.flickr.com/photos/pagedooley/1825685405/

4/20/12

http://www.flickr.com/photos/untitlism/2609684221/

1st Law Continuing Change


Lehmans A system must be continually adapted or else it becomes progressively less capable of satisfying its users. http://en.wikipedia.org/wiki/Lehman's_laws_of_software_evolution
4/20/12

http://www.flickr.com/photos/hinkelstone/2765597758 /

2nd Law Increasing Complexity


Lehmans As a system evolves its complexity increases unless work is done to http://en.wikipedia.org/wiki/Lehman's_laws_of_software_evolution reduce it.
4/20/12

http://www.flickr.com/photos/jurvetson/2323537118/

3rd Law Self-Regulation


Lehmans The system evolution process is selfregulating with product and process measures closely following a normal http://en.wikipedia.org/wiki/Lehman's_laws_of_software_evolution distribution.
4/20/12

http://www.flickr.com/photos/zyllan/4880446208/

4th Law Organizational Stability


Lehmans The average activity rate (maintenance) in an evolving system is invariant over its lifetime. http://en.wikipedia.org/wiki/Lehman's_laws_of_software_evolution
4/20/12

http://www.flickr.com/photos/kevinpoh/3586321697/

5th Law Conservation of Familiarity As a system evolves all people


Lehmans

involved with it must maintain mastery of its content and behavior to achieve satisfactory evolution. http://en.wikipedia.org/wiki/Lehman's_laws_of_software_evolution
4/20/12

http://www.flickr.com/photos/randysonofrobert/376221775/

6th Law Continuing Growth


Lehmans The functional content of a system must be continually increased to maintain user satisfaction over its lifetime. http://en.wikipedia.org/wiki/Lehman's_laws_of_software_evolution
4/20/12

http://www.flickr.com/photos/reinante/4413913423/

7th Law Declining Quality


Lehmans The quality of a system will decline unless it is rigorously maintained and adapted to operational environment changes. http://en.wikipedia.org/wiki/Lehman's_laws_of_software_evolution
4/20/12

http://www.flickr.com/photos/pixel_addict/465394708 /

8th Law Feedback System


Lehmans Evolution processes constitute complex feedback systems and must be treated as such to achieve signifi cant improvement over any reasonable base. http://en.wikipedia.org/wiki/Lehman's_laws_of_software_evolution 4/20/12

http://www.flickr.com/photos/pagedooley/2845763884/

4/20/12

How can we ever deal with all this change?

Application Lifecycle Managemen t (ALM)


http://www.flickr.com/photos/denisecarbonell/3923601326/

4/20/12

Definition(s)
Application Lifecycle Management(ALM) is a continuous process of managing the life of an application through governance, development and maintenance.
Wikipedia
http://en.wikipedia.org/wiki/Application_lifecycle_management

4/20/12

Definition(s)
ALM is a set of disciplines that together govern the process of turning business ideas into software.
ALM changing to meet development organizations' needs

http://en.wikipedia.org/wiki/Application_lifecycle_management

4/20/12

Definition(s)

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 Just-enough application lifecycle management (ALM) system retirement. http://searchsoftwarequality.techtarget.com/news/column/0,294698,sid92_gci1396258,0

4/20/12

ALM visualized in models, from bad

http://en.wikipedia.org/wiki/File:ALM.svg

4/20/12

to absolutely terrible.

http://searchsoftwarequality.techtarget.com/news/article/0,289142,sid92_gci1259517_mem1,00.html

4/20/12

http://www.flickr.com/photos/jeanlouis_zimmermann/570332025/

Conways Law
Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations. http://en.wikipedia.org/wiki/Conway's_Law
4/20/12

http://www.flickr.com/photos/eirikref/727551264/

dev elop m ent

ALM 1.0

Separated disciplines Silos of information


4/20/12

testi ng
desi gn

http://www.flickr.com/photos/sudhamshu/4379880762/

m ge na ma t en

ALM 2.0

develo pm ent

ti es t ng

de gn s i

project ent managem

Single repository Roles and connections


4/20/12

http://www.flickr.com/photos/f-oxymoron/5005673112/

Can ALM 2. 0 handle c o mp le xit y


4/20/12

Complex Systems
Acomplex systemis a systemcomposed 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

4/20/12

General Systems Theory


Study of relationships between elements

Ludwig von Bertalanffy


(biologist) 1901-1972

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)
4/20/12

Cybernetics
Study of regulatory systems

Norbert Wiener
(mathematician) 1894-1964

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 systems goal)
4/20/12

Dynamical Systems Theory


Study of system behavior

Stability (stable states versus unstable states) Attractors (systems getting sucked into stable states)

4/20/12

Game Theory
Study of co-adapting systems

John von Neumann


(mathematician) 1903-1957

Competition versus cooperation Zero sum games versus non-zero sum games Strategies (including evolutionary stable strategies)

4/20/12

Evolutionary Theory
Study of evolving systems

Charles Darwin
(naturalist) 1809-1882

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)
4/20/12

Chaos Theory
Study of unpredictable systems

Edward Lorenz
(meteorologist) 1917-2008

Strange attractors (chaotic behavior) Sensitivity to initial conditions (butterfly effect) Fractals (scale-invariance)

4/20/12

And more...
Study of all kinds of systems

Dissipative systems (spontaneous pattern-forming) Cellular automata (complex behavior from simple rules) Genetic algorithms (adaptive learning) Social network analysis (propagation of information)
4/20/12

The Body of Knowledge of Systems

Complex systems theory is the study of complex systems using multiple system theories

4/20/12

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
4/20/12

Structure-Behavior Model
Complex and complicated seen as different dimensions

http://www.noop.nl/2010/09/simplicity-a-new-model.html

4/20/12

9 lessons from

http://www.flickr.com/photos/stevon/3577915624

4/20/12

complexit y thinking

http://www.flickr.com/photos/arcticpuppy/2943901683/

Focus on people
motivation competence

4/20/12

http://www.flickr.com/photos/linhngan/3101950593/

n o s s ip cu sh Fo on ti la re
communicati collaboration on

4/20/12

Expect change

resilience robustness
http://www.flickr.com/photos/jenny-pics/3602368875

4/20/12

Support selforganization

growth alignme nt
http://www.flickr.com/photos/oth313/2084783266/

4/20/12

Embrace emergen ce

http://www.flickr.com/photos/hamed/428063513/

no constructionism 4/20/12 no predictions

Embrace diversity

adaptabili ty innovation
http://www.flickr.com/photos/meanestindian/478935037/

4/20/12

http://www.flickr.com/photos/zooboing/4743616313 /

Support decentralizatio delegation n


4/20/12

empowerme

http://www.flickr.com/photos/pagedooley/4099585916/in/photostream /

rity linea onect n Exp

unpredictability, unknowns
4/20/12

Heed All models are wrong, some are incompressibility


useful

http://www.flickr.com/photos/speckham/3885641714/

4/20/12

One
4/20/12

People Relationships Change Selforganization Emergence Diversity Decentralizatio n Non-linearity Incompressibili approach to bind ty

http://www.flickr.com/photos/gladius/2332020850/

them all

http://www.flickr.com/photos/sidelong/2909952599/

4/20/12

Agile Software Development

Definition
An iterative and incremental (evolutionary) approach to software development which is performed in a highly collaborative manner by selforganizing 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 Agile Modeling changing needs of its stakeholders. http://www.agilemodeling.com/essays/agileSoftwareDevelopment.htm
4/20/12

4/20/12

4/20/12

4/20/12

Lets start with the good old Iron Triangle

4/20/12

Then add some modifications...


Split Cost (Resources) in People and Tools Split Scope in Functionality and Quality
Ambler) (suggestion: Scott

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-measuring4/20/12 agile-performance/

And we get... the 7 dimensions of software projects

1. 2.

People Functionality

3. 4. 5. 6. 7.

Quality Tools Time Value Process

4/20/12

People
colocati on

crossfunctional
interacti on
respe ct

small teams
trus t
4/20/12

collaborati on accountabil ity

selforganization

Functionality
minimal marketable features

customer involvement
user demos inch-deep, milewide

user stories

backlo gs
acceptance criteria

4/20/12

Quality

technical excellence

test-driven development
definition of done

emergent design
simplici ty
4/20/12

refactori ng pair programming

Tools

task boards
version control

open offices

daily builds

automated testing
4/20/12

continuous integration
burn charts

Time

timebox es
release planning
sprint s
4/20/12

rolling wave planning


potentially shippable products

iteratio ns
sustainable pace

Value
increme nts prioritizati on
feedba ck

embracing change
value mapping

value streams 4/20/12

frequent delivery

Process

sprint planning

collective code ownership

stand-up meetings
veloci ty planning poker

retrospecti ves
spike s
4/20/12

http://www.versionone.com/state_of_agile_development_survey/10/ 4/20/12

http://www.versionone.com/state_of_agile_development_survey/10/ 4/20/12

http://www.versionone.com/state_of_agile_development_survey/10/ 4/20/12

Agile + ALM similarities


information sharing better collaboration increased quality higher productivity
http://www.flickr.com/photos/ananth/279721111/

4/20/12

Agile vs. ALM: differences

http://www.flickr.com/photos/thebusybrain/2492945625/

people vs. tools practices vs. techniques 4/20/12

Agile ALM

the best of both, using complexity thinking


http://www.flickr.com/photos/batega/1865482908/

4/20/12

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 Matt Heusser participants.
-

Just-enough application lifecycle management (ALM)

http://searchsoftwarequality.techtarget.com/news/column/0,294698,sid92_gci1396258,0

4/20/12

7 tips for Agile ALM

4/20/12

1. High-Bandwidth Communication
ALM tools should support highbandwidth communication, and should not needlessly replace person-person communication with person-tool communication. Example: facilitation and storage of photos, audio, video.
4/20/12

2. Agile Best Practices


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
4/20/12

3. Bottom-Up Infrastructure
The ALM infrastructure must be selected, built and maintained by the team(s) themselves. Nothing should be mandated by those who dont have to work with it. Example: a team can select its own favorite automatic build system or Agile planning tools.
4/20/12

4. Multi-Vendor Approach
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/20/12

5. Distributed Information
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.

4/20/12

6. Agile Improvement
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.

4/20/12

7. Adaptable Tools
ALM tools must be extensible, customizable and adaptable, so that they can grow together with the project. Example: open APIs, web services, plugins, widgets, macros, etc.

4/20/12

Agile High-Bandwidth Communication ALM


1. 2.

Agile Best Practices

3.

Bottom-up Infrastructure Multi-Vendor Approach Distributed Information Agile Improvement Adaptable Tools

4.

5.

6.

7.

http://www.flickr.com/photos/untitlism/2603959306/

4/20/12

Sources
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,0 Application Lifecycle Management Gets Agile (ITBusinessEdge)

http://www.itbusinessedge.com/cm/blogs/vizard/application-lifecycle-management-gets-a 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

4/20/12

Sources
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-m What exactly is an ALM tool (SearchSoftwareQuality)

http:// searchsoftwarequality.techtarget.com/expert/KnowledgebaseAnswer/0,289625,sid92_gci Getting Started with Agile ALM (Manning)

4/20/12

slideshare.net/jurgenappelo @jurgenappelo (twitter) noop.nl (blog) jurgenappelo.com (site) management30.com (book)

4/20/12

4/20/12

Q& A
4/20/12

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.

http://creativecommons.org/licenses/by-nd/3.0/

4/20/12

You might also like