Agile Application Lifecycle Management (ALM)


Published on

Explains how to do Application Lifecycle Management (ALM) in an Agile way.

Published in: Business, Technology, Sports
No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Agile Application Lifecycle Management (ALM)

  1. 1. Agile ALM Application Lifecycle Management Dealing with Complexity Jurgen Appelo Version 3
  2. 2. Jurgen Appelo writer, speaker, trainer, entrepreneur...
  3. 3. Get my new book for FREE!
  4. 4. 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
  5. 5. Typical software development
  6. 6. One small change
  7. 7.
  8. 8.
  9. 9.
  10. 10. Or to say STOP! We won’t change this.
  11. 11. The result is a big entangled mess
  12. 12.
  13. 13. Quasimodo software heart of gold, broken body Image via Google Search
  14. 14. And it doesn’t get easier…
  15. 15. Increasing number of technologies
  16. 16. Increasing levels of globalization
  17. 17. Increasing amount of customization
  18. 18. Lehman’s Laws of Software Evolution
  19. 19. Continuing Change Lehman’s 1st Law “A system must be continually adapted or else it becomes progressively less capable of satisfying its users.”'s_laws_of_software_evolution
  20. 20. Increasing Complexity Lehman’s 2nd Law “As a system evolves its complexity increases unless work is done to reduce it.”'s_laws_of_software_evolution
  21. 21. Self-Regulation Lehman’s 3rd Law “The system evolution process is self-regulating with product and process measures closely following a normal distribution.”'s_laws_of_software_evolution
  22. 22. Organizational Stability Lehman’s 4th Law “The average activity rate (maintenance) in an evolving system is invariant over its lifetime.”'s_laws_of_software_evolution
  23. 23. 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.”'s_laws_of_software_evolution
  24. 24. Continuing Growth Lehman’s 6th Law “The functional content of a system must be continually increased to maintain user satisfaction over its lifetime.”'s_laws_of_software_evolution
  25. 25. Declining Quality Lehman’s 7th Law “The quality of a system will decline unless it is rigorously maintained and adapted to operational environment changes.”'s_laws_of_software_evolution
  26. 26. 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.”'s_laws_of_software_evolution
  27. 27. How can we ever deal with all this change?
  28. 28. Application Lifecycle Management (ALM)
  29. 29. “Application Lifecycle Management (ALM) is a continuous process of managing the life of an application through governance, development and maintenance.” Definition(s) Wikipedia
  30. 30. “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”
  31. 31. “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)”,294698,sid92_gci1396258,00.html
  32. 32. ALM visualized in models, from bad…
  33. 33.,289142,sid92_gci1259517_mem1,00.html …to absolutely terrible.
  34. 34. “Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.” Conway’s Law's_Law
  35. 35. ALM 1.0 Separated disciplines Silos of information Fragile integration
  36. 36. ALM 2.0 Single repository Roles and connections “One truth”
  37. 37.
  38. 38. 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)
  39. 39. 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
  40. 40. 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
  41. 41. Dynamical Systems Theory Stability (stable states versus unstable states) Attractors (systems getting sucked into stable states) Study of system behavior
  42. 42. 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
  43. 43. 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
  44. 44. Chaos Theory Strange attractors (chaotic behavior) Sensitivity to initial conditions (butterfly effect) Fractals (scale-invariance) Edward Lorenz (meteorologist) 1917-2008 Study of unpredictable systems
  45. 45. 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
  46. 46. The Body of Knowledge of Systems Complex systems theory is the study of complex systems using multiple system theories
  47. 47. 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
  48. 48. Structure-Behavior Model Complex and complicated seen as different dimensions
  49. 49. 9 lessons from complexity thinking
  50. 50. Focus on people motivation competence
  51. 51. communication collaboration
  52. 52. Expect change resilience robustness
  53. 53. Support self-organization growth alignment
  54. 54. Embrace emergence no constructionism no predictions
  55. 55. Embrace diversity adaptability innovation
  56. 56. Support decentralization delegation empowerment
  57. 57. unpredictability, unknowns
  58. 58. Heed “incompressibility” All models are wrong, some are useful
  59. 59. People Relationships Change Self-organization Emergence Diversity Decentralization Non-linearity Incompressibility One approach to bind them all…
  60. 60. Agile Software Development
  61. 61. “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
  62. 62. Let’s start with the good old Iron Triangle
  63. 63. 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)
  64. 64. 1. People 2. Functionality 3. Quality 4. Tools 5. Time 6. Value 7. Process And we get... the 7 dimensions of software projects
  65. 65. People interaction collaborationsmall teams cross-functional colocation self-organization trust accountability respect
  66. 66. Functionality customer involvement backlogs user stories acceptance criteria minimal marketable features user demos “inch-deep, mile-wide”
  67. 67. Quality technical excellence test-driven development pair programming definition of done refactoring emergent design simplicity
  68. 68. Tools daily builds continuous integration automated testing open offices task boards burn charts version control
  69. 69. Time timeboxes iterations sprints potentially shippable products rolling wave planning sustainable pace release planning
  70. 70. Value embracing change feedback frequent delivery value streams value mappingprioritization increments
  71. 71. Process stand-up meetings planning poker velocity spikes collective code ownership retrospectives sprint planning
  72. 72.
  73. 73.
  74. 74.
  75. 75. Agile + ALM similarities information sharing better collaboration increased quality higher productivity
  76. 76. Agile vs. ALM: differences people vs. tools practices vs. techniques
  77. 77. Agile ALM the best of both, using complexity thinking
  78. 78. “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)”,294698,sid92_gci1396258,00.html
  79. 79. 7 tips for Agile ALM
  80. 80. 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
  81. 81. 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
  82. 82. 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
  83. 83. 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
  84. 84. 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
  85. 85. 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
  86. 86. 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. 87. Agile ALM 1. High-Bandwidth Communication 2. Agile Best Practices 3. Bottom-up Infrastructure 4. Multi-Vendor Approach 5. Distributed Information 6. Agile Improvement 7. Adaptable Tools
  88. 88. Application lifecycle management (Wikipedia) Mea culpa, ALM toolmakers say (SD Times) ALM changing to meet development organizations' needs (SearchSoftwareQuality),289142,sid92_gci1259517_mem1, ml Application Lifecycle Management Gets Agile (ITBusinessEdge) agile/?cs=39865 What is Agile ALM? (Ezine Articles) Agile ALM – Opposites Attract (CM Crossroads) What is the definition of Application Lifecycle Management (ALM)? (IT Knowledge Exchange) lifecycle-management-alm/ Sources
  89. 89. Just-enough application lifecycle management (ALM) (SearchSoftwareQuality),294698,sid92_gci1396258,00.html ALM and Agile (RedMonk) Top 7 Key Requirements of an Agile ALM Platform (Top7Business) Does Application Lifecycle Management (ALM) add Value or Hinder the Adoption of Agile-Lean Product Development? (AgileJournal) management-alm-add-value-or-hinder-the-adoption-of-agile-lean-product-development What exactly is an ALM tool (SearchSoftwareQuality),289625,sid92_gci1523 524,00.html Getting Started with Agile ALM (Manning) Sources
  90. 90. @jurgenappelo
  91. 91. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.