How To Avoid Fragile Agile

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    How To Avoid Fragile Agile - Presentation Transcript

    1. How to Avoid Fragile Agile Mike MacDonagh Flexibility In Context
    2. Agenda
      • What is Agility?
      • What can make Agile fragile?
      • Flexibility in Context
      • Agile pre-requisites
      • Smart Disciplined Agility
      How to Avoid Fragile Agile
    3. The Agile Manifesto - 2001
      • We are uncovering better ways of developing
      • software by doing it and helping others do it.
      • Through this work we have come to value:
      • That is, while there is value in the items on
      • the right, we value the items on the left more.
      Source: http://agilemanifesto.org/ Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan How to Avoid Fragile Agile
    4. Business Agility vs. Agile Development
      • Business Agility
        • Reduced time to value / reduced TCO
        • Reacting quickly to change
      • Agile Development
        • Using practices that align with the philosophy of the Agile Manifesto
      How to Avoid Fragile Agile
    5. Agile Teams, Agile Projects or Agile Processes It’s all about people, it’s people who build software not processes! Team Project Way of Working undertakes the shapes and follows the applies the How to Avoid Fragile Agile
    6. Lot’s of methods claim to be agile
      • Some of the well-known agile software development methods:
        • Agile Modeling
        • Agile Unified Process
        • Agile Data Method
        • DSDM
        • Essential Unified Process
        • Extreme Programming
        • Feature Driven Development
        • Scrum
      As summarized in Wikipedia – Agile Software Development page – 9 March 2009 Historically, “agile” is low-ceremony, people-communication-intensive, light process.
      • Iterative and incremental
        • Delivery working product often
      • High-bandwidth communications
        • Co-Located Teams
      • Light / low ceremony
        • no heavy documents
        • no long status meetings
      • Empower and trust the team
        • Collaborative and self organizing
      • Test-driven
      • Empirical and objective
      Shared Characteristics How to Avoid Fragile Agile
    7. But nobody uses them out of the box
      • Some of the well-known agile software development methods:
        • Agile Modeling
        • Agile Unified Process
        • Agile Data Method
        • DSDM
        • Essential Unified Process
        • Extreme Programming
        • Feature Driven Development
        • Scrum
      Agile Teams build Agile Ways-of-Working from Agile Practices
      • We’ll use:
      • Sprints, Product Backlog and self-organizing teams from Scrum
      • Use cases, components, and the risk-driven lifecycle from EssUP
      • Some agile modeling techniques
      • Pair programming and test-first development from XP
      • Our local reporting and governance practices
      • … .
      How to Avoid Fragile Agile
    8. Agenda
      • What is Agility?
      • What can make Agile fragile?
      • Flexibility in Context
      • Agile pre-requisites
      • Smart Disciplined Agility
      How to Avoid Fragile Agile
    9. Changing a way of working is difficult The best agile teams balance the needs of the individual, the team and the organization I need to get things done Senior Manager Practitioner There must be predictability, visibility and consistency How to Avoid Fragile Agile
    10. Resourcing
      • All competencies required to build working software need to be in the team
      • Agile teams stay together
      How to Avoid Fragile Agile Architect Analyst Developer Developer Tester Tester Working, Tested Software
    11. Geographical Distribution
      • High bandwidth communication is difficult
        • Culture/Language issues
        • Timezones
        • Separation
      • Holistic Communication
        • Use all channels of communication
          • Face to face meetings
          • Video Conference
          • Instant Messaging
          • RSS feeds
          • Twitter/Yammer
          • Email
      • Effective teams need to work together
      How to Avoid Fragile Agile
    12. Scalability: Agility alone is not always enough
      • Agile home ground:
        • Low criticality
        • Senior developers
        • Requirements change very often
        • Small number of developers
        • Culture that thrives on chaos
      • Plan-driven home ground:
        • High criticality
        • Junior developers
        • Requirements don't change too often
        • Large number of developers
        • Culture that demands order
      What about those large, distributed, or safety critical projects? Low - Innovation High - Application Team Individual Control Focus The Artist The Event The Engineer The Production Line How to Avoid Fragile Agile
    13. Agenda
      • What is Agility?
      • What can make Agile fragile?
      • Flexibility in Context
        • Using Agile practices effectively
        • Agile Governance Framework
      • Agile pre-requisites
      • Smart Disciplined Agility
      How to Avoid Fragile Agile
    14. The characteristics of an agile practice description
      • Lightweight – focus on the essentials
      • Adaptable – can be tuned on the fly
      • Extensible – can grow as needed
      • Iterative – can be applied in short time-boxes
      • Ensure quality – verification and testing are built in
      • Focus on working software – help with the team’s main task
      • Focused – capture one aspect of software development
      • Pragmatic – provide useful advice
      • Play well with other practices
      Starting with the essentials makes the practice easy to learn and adopt. How to Avoid Fragile Agile
    15. There are different kinds of practice Iterative Essentials Scrum Essentials Use-Case Essentials User Stories Architecture Essentials Component Essentials Test-Driven Develop’t QA Essentials Process Essentials PSP Agile Modeling Team Essentials Unified Process Lifecycle Scrum-of -Scrums Use-Cases for Service Def’n Model- Driven Arch Comp’s for Re-Use Practice Harvesting Org Process Imp Essential UML Distributed Team Virtual Team Comp’s for .Net … … … … Technical practices Social and other cross-cutting practices Measurem’t Essentials How to Avoid Fragile Agile Peer Practice Extension Practice Key:
    16. Processes are just collections of practices Peer Practice Extension Practice Key: Iterative Essentials Scrum Essentials Use-Case Essentials User Stories Architecture Essentials Component Essentials Test-Driven Develop’t QA Essentials Process Essentials PSP Agile Modeling Team Essentials Unified Process Lifecycle Scrum-of -Scrums Use-Cases for Service Def’n Model- Driven Arch Comp’s for Re-Use Practice Harvesting Org Process Imp Essential UML Distributed Team Virtual Team Comp’s for .Net Measurem’t Essentials … … … … Social and other cross-cutting practices Technical practices How to Avoid Fragile Agile Agile Process Descriptions will change and evolve over time
      • A Practice addresses a particular concern
      • A Practice provides a set of activities and work products to give specific value to particular stakeholders.
      • Promotes Agility with the RIGHT level of formality
      • A small set of guidance to meet a specific need.
      • Minimal information and documentation – just enough
      • Presented with cards and guidelines.
      • We have a set of practices that you can use as a starting point
      What is a practice? How to Avoid Fragile Agile Iterative
    17. Scaling Practice Formality
      • Deal with things in a way that is appropriate given the risk
      1 2 3 4 5 6 Project Requirements Thermostat How to Avoid Fragile Agile Small Project New scope area Business stakeholders still unclear on desired capability Tiny, one-person project Change to an existing system Stakeholders clear on what they want Huge new endeavour New scope area Nobody really knows what they want £m’s at stake Simple ‘post-it’ list Simple feature list with outline Use Case Model Vision, Full Use-Case Model
    18. Practices enable projects to run the way they need to But how can we manage these projects if they all have different processes? Way of Working = A subset of the practices in the practice library How to Avoid Fragile Agile Use Case Component Architecture Iterative Project A Declarative Requirements Waterfall Architecture Project B Architecture Iterative User Story Project C
    19. Agenda
      • What is Agility?
      • What can make Agile fragile?
      • Flexibility in Context
        • Using Agile practices effectively
        • Agile Governance Framework
      • Agile pre-requisites
      • Smart Disciplined Agility
      How to Avoid Fragile Agile
    20. Practice Architecture is Important The kernel ensures common understanding across teams in a minimal way How to Avoid Fragile Agile Project A Project B Project C
    21. The kernel provides…. … a map of the territory How to Avoid Fragile Agile Understand the Need Ensure Stakeholder Satisfaction Accept the System Specify the System Shape the System Implement Software Test the System Release the System Establish Project Steer Project Support Team Conclude Project
    22. The kernel provides…. … an understanding of the skills needed How to Avoid Fragile Agile Developer Project Lead Customer Representative Analyst Tester
    23. Opportunity Backlog Project Specified System Implemented System Executable System Way of Working Team The kernel provides…. … and a list of things to progress. How to Avoid Fragile Agile
    24. Defining a lifecycle milestones using the kernel Specified System Opportunity Problem Understood Viability Established Problem Addressed Benefit Accrued Value Established Opportunity Identified Executable System Assembled Functionality Validated Ready to Deploy Accepted Approach Validated Operational Key Essential Recommended Project Underway Risks Under Control Development Complete Responsibilities Handed Over Milestones Agreed Closed Conceived Stable Correct Testable Shared Fulfilled Implemented System Approach Selected Interfaces Stable Integrated Production Quality Release Available Approach Confirmed Released Backlog Set Up Change Under Control Quality Criteria Satisfied Sufficient Work Completed Driving Work Outstanding Items Handed Over Way of Working Team Mission Defined Focused Collaborating Formed Disbanded Gaps Analyzed Essentials In Place Embedded Options Explored Handed Over Unified Process Lifecycle = Inception Phase How to Avoid Fragile Agile up up
    25. Defining a lifecycle milestones using the kernel Specified System Opportunity Problem Understood Viability Established Problem Addressed Benefit Accrued Value Established Opportunity Identified Executable System Assembled Functionality Validated Ready to Deploy Accepted Approach Validated Operational Key Essential Recommended Project Underway Risks Under Control Development Complete Responsibilities Handed Over Milestones Agreed Closed Conceived Stable Correct Testable Shared Fulfilled Implemented System Approach Selected Interfaces Stable Integrated Production Quality Release Available Approach Confirmed Released Backlog Set Up Change Under Control Sufficient Work Completed Driving Work Outstanding Items Handed Over Way of Working Team Mission Defined Focused Collaborating Formed Disbanded Gaps Analyzed Essentials In Place Embedded Options Explored Handed Over Quality Criteria Satisfied Unified Process Lifecycle = Elaboration Phase How to Avoid Fragile Agile up up
    26. Defining a lifecycle milestones using the kernel Specified System Opportunity Problem Understood Viability Established Problem Addressed Benefit Accrued Value Established Opportunity Identified Executable System Assembled Functionality Validated Ready to Deploy Accepted Approach Validated Operational Key Essential Recommended Project Underway Risks Under Control Development Complete Responsibilities Handed Over Milestones Agreed Closed Conceived Stable Correct Testable Shared Fulfilled Implemented System Approach Selected Interfaces Stable Integrated Production Quality Release Available Approach Confirmed Released Backlog Set Up Change Under Control Quality Criteria Satisfied Sufficient Work Completed Driving Work Outstanding Items Handed Over Way of Working Team Mission Defined Focused Collaborating Formed Disbanded Gaps Analyzed Essentials In Place Embedded Options Explored Handed Over Unified Process Lifecycle = Construction Phase How to Avoid Fragile Agile up up
    27. Defining a lifecycle milestones using the kernel Specified System Opportunity Problem Understood Viability Established Problem Addressed Benefit Accrued Value Established Opportunity Identified Executable System Assembled Functionality Validated Ready to Deploy Accepted Approach Validated Operational Key Essential Recommended Project Underway Risks Under Control Development Complete Responsibilities Handed Over Milestones Agreed Closed Conceived Stable Correct Testable Shared Fulfilled Implemented System Approach Selected Interfaces Stable Integrated Production Quality Release Available Approach Confirmed Released Backlog Set Up Change Under Control Sufficient Work Completed Driving Work Outstanding Items Handed Over Way of Working Team Mission Defined Focused Collaborating Formed Disbanded Gaps Analyzed Essentials In Place Embedded Options Explored Handed Over Quality Criteria Satisfied Unified Process Lifecycle = Transition Phase How to Avoid Fragile Agile up up
    28. Kernel and Governance The kernel capturing the essence of software development. How to Avoid Fragile Agile Opportunity Backlog Project Specified System Implemented System Executable System Way of Working Team Target State Actual State
    29. The kernel brings all the practices together How to Avoid Fragile Agile Practice Each practice contains practice-specifics to add to the kernel. The kernel defines a very small “empty process” Kernel Practices “slot” into the common kernel. Way of Working
    30. What’s your kernel?
      • Add some practices to create your minimal process
      Add practices into the kernel to create different starter packs or mandate specific practices. How to Avoid Fragile Agile up up
    31. Agenda
      • What is Agility?
      • What can make Agile fragile?
      • Flexibility in Context
      • Agile pre-requisites
      • Smart Disciplined Agility
      How to Avoid Fragile Agile
    32. Agile Pre-Requisites: Cross-Functional Teams “ One-stop shop” for working software Customer Architect Analyst Developer Developer Tester Tester Working, Tested Software How to Avoid Fragile Agile
    33. Agile Pre-Requisites: Team Platform
      • Configuration Management
        • Automated daily builds
        • Restore previous builds
      • Automated Quality Assurance
        • Unit testing
        • Regression Testing
        • Test Coverage
        • Defect Tracking
      • Task Tracking
      • Communication
      • Collaboration
      How to Avoid Fragile Agile
    34. Agenda
      • What is Agility?
      • What can make Agile fragile?
      • Flexibility in Context
      • Agile pre-requisites
      • Smart Disciplined Agility
      How to Avoid Fragile Agile
    35. Summary: Getting the wheel’s turning
      • Get the right team
        • Cross-Functional Team
        • Agile Team Working
      • Using the right technical practices
        • From Iterative Planning to Development Sprints
        • From Use-cases to Scenario-Driven Development
        • Test-Driven Development
      • On the right development platform
        • Continuous Integration
        • Automated Testing
      • Governed Effectively
        • A common kernel
      How to Avoid Fragile Agile
    36. Smart, Disciplined Agility!
      • • Agility – A rapid step-change in speed and responsiveness
      • • Disciplined – Without loss of reliability, quality or sustainability
      • • Smart – Putting the right amount of effort into the right things
      How to Avoid Fragile Agile
    37. THANK YOU Mike MacDonagh www.ivarjacobson.com
    SlideShare Zeitgeist 2009

    + Mike MacDonaghMike MacDonagh Nominate

    custom

    436 views, 0 favs, 2 embeds more stats

    A presentation I gave at the UK RUG Annual Meeting more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 436
      • 358 on SlideShare
      • 78 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 25
    Most viewed embeds
    • 77 views on http://mikemacd.wordpress.com
    • 1 views on http://www.plaxo.com

    more

    All embeds
    • 77 views on http://mikemacd.wordpress.com
    • 1 views on http://www.plaxo.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories