Adopting Agile Pragmatically 4Aug2010

Embed Size (px)

Citation preview

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    1/26

    1

    Be agile in Adopting Agile

    1

    2010/08/04

    av e ersPrincipal

    Consultant

    An iterative and incremental (evolutionary) approach An iterative and incremental (evolutionary) approach performed in ahighly collaborative manner with just the right amount of ceremony

    An iterative and incremental (evolutionary) approach performed in ahighly collaborative manner with just the right amount of ceremony toproduce high quality software

    An iterative and incremental (evolutionary) approach performed in ahighly collaborative manner with just the right amount of ceremony toproduce high quality software in a cost effective and timely manner

    An iterative and incremental (evolutionary) approach performed in ahighly collaborative manner with just the right amount of ceremony toproduce high quality software in a cost effective and timely manner whichmeets the changing needs of its stakeholders.

    An iterative and incremental (evolutionary) approach performed in ahighly collaborative manner

    What is Agile? Its Adaptability

    22010/08/04

    Must see the Eiffel tower andspend 4 days in Monaco

    Went up the Eiffel tower2 days in Monaco was enough

    In charge? Value?

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    2/26

    2

    Agile is people driven; its driven by principles of people leadership not projectmanagement.

    Its not something you can change overnight. Tools are a means to achieve it. Itrequires lot of un-learning before learning these new agile principles.

    Some Quotations

    It requires management commitment and support otherwise it cannot survive.

    It did not last long Project Control took over

    It's relevant to remember that there are different Agile Methods available, each ofthem fitting different purposes

    Agile assumes that the company wants a long term software development effortnot a short term project

    2010/08/04 3

    By putting an agile faade on top of traditional strategies, we managed to derailthe productivity improvement potential of actual agile techniques.

    Most organizations do not realize that agile needs to be highly customized to thenature of the team and the project.

    Playing to winGrady Booch Software development is a team sport

    Yes, but compare a Relay team to a Rugby team

    I will run as fast as I can

    I will try as smooth a handover as

    I will play my role as best I can

    4

    possible

    Its a whole new ball game!

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    3/26

    3

    Which Statement is true?

    Agile is Deador

    Agile is now Mainstream

    Or Both Agile is dead because its now mainstream

    2010/08/04 5

    Janusz Gorycki

    Third-party research suggests

    "Thirty-five percent of .respondentshave projects or pilots underway, and

    only 12 percent do not see a fitfor Agile

    Agile has gone Mainstream analyst community

    Have you adoptedany Agile techniques?

    even w er a op onprocesses in their organizations.

    The fact that 88 percent of theseorganizations (one-third of which have

    over 10,000 employees) are using orevaluating Agile processes proves that

    Agile processes have truly hit themainstream."

    No35%No35% Yes

    65%Yes65%

    6

    Source: Ambler Agile Adoption Rate Surveyof over 4200 Dr. Dobbs subscribers

    - Excerpt from And the Agile Survey SaysAgile Journal

    6

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    4/26

    4

    52%

    54%

    Stakeholder involvement

    Waterfall culture

    Organizational Complexity: What challenges has your organization

    encountered while adopting agile approaches?

    31%

    32%

    32%

    33%

    Specialization

    C&C Culture

    Lack of Trust

    T&E

    Copyright 2009 Scott W. Ambler www.ambysoft.com/surveys/

    14%

    15%

    29%

    Mgmt Resistance

    Stakeholder Resistance

    Other visions

    7

    47%

    59%

    No Training

    Rigid Culture

    What reasons does your organization have for not adopting agileapproaches to development? Top 10 of 14

    14%

    19%

    20%

    23%

    Process Frameworks

    Regulatory

    Org. Distribution

    Geo. Distribution

    .

    Copyright 2009 Scott W. Ambler www.ambysoft.com/surveys/

    13%

    14%

    14%

    Domain Complexity

    No Stkhlder Support

    Tech. Complexity

    8

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    5/26

    5

    WeValue: Over:Individuals and

    interactionsProcesses and

    tools

    The Agile Manifesto

    WorkingSoftware

    Customercollaboration

    ComprehensiveDocumentation

    ContractNegotiation

    While there is value in the items on the right,

    we value the items on the left more.

    9

    Responding tochange

    Following a Plan

    We

    Value: Individuals andinteractions

    The Agile Manifesto

    WorkingSoftware

    Customercollaboration

    10

    Responding tochange

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    6/26

    6

    WeValue: Over:Individuals and

    interactions

    The Agile Manifesto

    Processes andtools

    WorkingSoftware

    Customercollaboration

    ComprehensiveDocumentation

    ContractNegotiation

    Agile is not a

    methodology,its a set ofValues andPrinciples

    While there is value in the items on the right,

    we value the items on the left more.

    11

    Responding tochange

    Following a Plan

    We

    Value: Over:Individuals andinteractions

    processes andtools

    Its Driving Force is:

    WorkingSoftware

    ComprehensiveDocumentation

    Customercollaboration

    ContractNegotiationVALUE

    While there is value in the items on the right,

    we value the items on the left more.

    12

    Responding tochange

    Following a Plan

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    7/26

    7

    Traditional Practices

    Big Upfront (BUF) Requirements

    In Detail

    Si ned off

    Big Upfront Planning

    In Detail

    Fixed Price

    Early

    The Plan

    Silo Team organisation

    2010/08/04 13

    Requires Cultural Change

    VALUEPLAN

    Not Easy

    Needs Time Must be Demonstrated

    Requires:

    Another quote:I finally figured something out.Agile development is a culture,not a process Josh

    We will deliver value to thebusiness at a good ROI

    2010/08/04 14

    Belief and

    Perseverance

    You have made the right decision

    To make the decision right

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    8/26

    8

    Its not Agile Practices, but Agile Adoptionthat Fails

    have found to be the case is that agilepractices don't fail, rather the variations onagile adoption fail. Jean Tabaka

    2010/08/04 15

    Its NOT about becoming Agile in your SoftwareDevelopment just adopting an Agile methodology

    Agile for Agile sake?

    Its about becoming more efficient / productive inyour software Development and delivering value to

    the business by Adopting good practices, many of which (old and new)

    have been highlighted by Agile Methodologies

    16

    CurrentWay

    AgileMethodology

    Scaling Ceiling

    Adopting Good Practices

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    9/26

    9

    Why agile development? Because it works!

    18

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    10/26

    10

    Traditional Practices

    Big Upfront (BUF) Requirements

    In Detail

    Si ned off

    Big Upfront Planning

    In Detail

    Fixed Price

    Early

    Silo Team organisation

    2010/08/04 19

    Face-to-face Discussions

    BusinessNeed

    Product

    Requirements

    OpenUPUse CasesScenarios

    SupplementarySpecifications

    ScrumUser Stories(place holders)

    ProductBacklog

    The BA

    20

    Detailed asappropriate

    Discussions

    Can discussions replacedocumentation?

    Document, its a ContinuousNegotiation

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    11/26

    11

    Traditional Practices

    Big Upfront (BUF) Requirements

    In Detail

    Si ned off

    Big Upfront Planning

    In Detail

    Fixed Price

    Early

    omman an on ro anagemen Silo Team organisation

    2010/08/04 21

    A Date is not just a Date

    It has a Probability

    Now Future

    2010/08/04 22

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    12/26

    12

    Every type of work is governed by an Horizon of Predictability.Any plan that extends beyond this horizon of predictability isbound to fail. Agile work uses an explicit learning cycle tied in

    Plan to Learn

    change.

    Project Plan (months)

    IterationPlan(weeks)

    23

    Predictability?Level of detail?

    Dates, Scope, Satisfaction Can Not be

    Accurately Pre-determined and Then Fixed

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    13/26

    13

    Traditional Practices

    Big Upfront (BUF) Requirements

    In Detail

    Si ned off

    Big Upfront Planning

    In Detail

    Fixed Price

    Early

    omman an on ro anagemen Silo Team organisation

    2010/08/04 25

    Cost Estimate Fidelity

    4X Project End

    Over-estimated

    rinCosttoCom

    pleteEstimat

    0 ActualEstimate

    -Err

    X/4

    26

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    14/26

    14

    Whats Negotiable and Whats Not?

    Fixed /-

    Functionality

    Traditional

    Time Cost

    Agile

    Variable /Negotiable

    Plan Driven

    Time Cost

    Value Driven

    Functionality

    Whats the best value

    ua y

    1 - 27

    I can get for my time andmoney?

    we run n o rou e

    What percentage of systems / applicationsare never or rarely used?

    But

    Traditional Practices

    Big Upfront (BUF) Requirements

    In Detail

    Si ned off

    Big Upfront Planning

    In Detail

    Fixed Price

    Early

    Silo Team organisation

    2010/08/04 28

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    15/26

    15

    Whole Team Practice

    The Whole Team practice describes how adevelopment team organizes itself to enable it to workeffectively.

    Everyone has a sense of belonging on the team

    Team includes everyone required to build the system

    Everyone contributes any way that they can

    Team is self organizing

    With Leadership

    Everyone works together closely

    Team takes Responsibility for outcome

    29

    Traditional Practices

    Big Upfront (BUF) Requirements

    In Detail

    Si ned off

    Big Upfront Planning

    In Detail

    Fixed Price

    Early

    Silo Team organisation

    2010/08/04 30

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    16/26

    16

    Playing to win

    Silo Whole Team

    I will run as fast as I can

    I will try as smooth a handover aspossible

    I will play my role as best I can

    If you are in trouble I will help

    31

    Its a whole new ball game!

    Well how do we Adopt Agile?

    We be Pragmatic

    2010/08/04 32

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    17/26

    17

    Practise Agile in Adopting Agile Practices

    CurrentEnvironment

    New AgileMethodology

    Big Bang

    New AgileMethodology

    Boom

    CurrentEnvironment

    New AgilePractice

    New AgileNew A ile

    New AgilePractice

    Iterative / Incremental

    Re-Engineering?

    2010/08/04 33

    Practice

    Business ProcessImprovement (BPI)

    Is appropriate, of value to us

    TransparencyCollaboration

    XP Practices (1)

    Planning

    User Stories are written

    Release planning creates the release schedule

    Make frequent small releases

    The project is divided into iterations

    Iteration planning starts each iteration

    Managing

    Give the team a dedicated open work space

    Set a sustainable pace

    The project velocity is measured

    Move people around

    Fix XP when it breaks

    34

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    18/26

    18

    XP Practices (2) Designing

    Simplicity

    Choose a system metaphor

    Use CRC cards for design sessions

    Testing

    All code must have unittests

    All code must pass all unit

    Create spike solutions to reduce risk

    Non functionality is added early

    Refactor whenever and where ever possible

    Coding

    The customer is always available

    Code must be written to agreed standards

    Code the unit test first

    es s e ore can ereleased

    When a bug is found testsare created

    Acceptance tests are runoften and the score ispublished

    All production code is pair programmed Only one pair integrates code at a time

    Integrate often

    Set up a dedicated integration computer

    Use collective ownership

    35

    Scrum Practices Continuous Improvement

    Do retrospectives at the end of eachsprint

    Find impediments to the team and fix

    Organisation

    Have teams be organized ascross-functional teams

    Managementthem

    Have the team figure out how toimprove the teams process

    Planning Do planning at beginning of iteration

    Do release planning at the start of theproject

    Have a manager / projectmanager / scrum masterfacilitate improving the teams

    process Development

    Finish building what wasstarted coding in an iteration

    Get feedback from customers

    36

    - ,time-boxed regardless of length)

    Have some daily method of finding outwhat people are doing and seeingtheir impediments

    at least at the end of theiteration

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    19/26

    19

    OpenUP Practices Management Practices

    Iterative Development

    Risk-Value Lifecycle

    Whole Team

    Team Change Management

    Technical Practices

    Concurrent Testing

    Continuous Integration

    Evolutionar Architecture

    37

    Evolutionary Design

    Shared Vision

    Test Driven Development

    Use Case Driven Development

    Which Practices? Our Work Item List

    We need to examine the various practices that we couldadopt and decide which of them will be appropriate inour organisation.

    We need to carefully consider the uniqueness of ourorganisation and the projects we undertake to decidewhich practices will fit in, and will help us in achievingthe goals we have identified.

    The major areas that we must consider are:

    Our organizations culture

    2010/08/04 38

    Our customers and how they prefer to interact with us

    The types of projects we do

    The tools and processes that we currently use

    The strengths and weaknesses of our software-related staff

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    20/26

    20

    AgileTraditional

    Some

    Agility is a Spectrum

    Waterfall

    RUP

    OpenUP

    Scrum

    39

    XP Need acombination

    MCIFMeasured CapabilityImprovement Framework

    Agility is Relative

    Organizational DriversTeam Size

    Geographical DistributionOrganization Distribution

    Mature or existing projects 50+ developers

    Waterfall

    , ,

    Maturing projects Multi-platform Growing in complexity Remote or offshore work Greater need for

    coordination and handoffs

    Complex, multi-platform applications Distributed teams Need for scalability, reproducibility,

    and traceability

    MCIF

    Technical and RegulatoryDrivers

    ComplianceGovernance

    Application complexity

    Small team New projects Simple application Co-located Minimal need for documentation

    40

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    21/26

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    22/26

    22

    Agile Islands

    Organisation(Business) Non-agile

    A ile software teams are not sustainable for ver lon if the are

    Agile Area

    agile

    2010/08/04 43

    islands in a sea of waterfall projects. The presence of Agile teamscreates a new and incompatible dynamic within a waterfall company.Agile adoption programmes conducted without a thoroughunderstanding of this dynamic will continue to have a very highmortality rate, especially in larger organisations. Adam Finden

    So, When are we Agile?1. Working software Agile teams produce working software on a regular basis,

    typically in the context of short, stable, time-boxed iterations.

    2. Active stakeholder participation

    Important aspects ofthese criteria:

    FlexibilityAdaptability

    Agile teams work closely with their stakeholders, ideally on a daily basis.

    3. Regression testing Agile teams do, at a minimum, continuous developer regression testing.

    Disciplined agile teams take a Test-Driven Development (TDD) approach.

    4. Organization Agile teams are self-organizing, and disciplined agile teams work within an

    appropriate governance framework at a sustainable pace.

    g e eams are a so cross- unc ona w o e eams, w enoug peop e w eappropriate skills to address the goals of the team.

    5. Improvement Agile teams regularly reflect on, and

    disciplined teams also measure, how they work together and then act to improve ontheir findings in a timely manner.

    2010 Rational Whitepaper Scaling Agile

    An Executive Guide by Scott Ambler 44

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    23/26

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    24/26

    24

    Todays message

    AgileTraditional

    MethodiologiesTraditional RUP OpenUP SCRUM XP

    Appropriate Agile Practices

    now e ge

    Skill

    2010/08/04 47

    TRUSTTransparent Collaborative

    Behaviour

    Some Reasons for Failure

    Ineffective use of the retrospective

    Inability to get everyone in the planning meetings

    Failure to pay attention to the infrastructure required

    Bad ScrumMasters

    Product Owner is Consistently Unavailable or There are

    Too Many Owners Who Disagree Reverting to Form

    Teams Lacking Authority and Decision-Making Ability

    Not Having an Onsite Evangelist for Remote Locations

    A Culture that Does Not Support Learning

    Denial is Embraced Instead of the Brutal Truth

    2010/08/04 48

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    25/26

    25

    Which Statement is true?

    Agile is Dead

    Agile is now Mainstream

    2010/08/04 49

    Improvements do not come withoutchangeThere is nothing more difficult to carry out nor more doubtful of success

    nor more dangerous to handle than to initiate a new order of things;for the reformer has enemies in all those who profit by the old order,and only lukewarm defenders in all those who would profit by the neworder; this arisin partl from the incredulit of mankind who does nottruly believe in anything new until they actually have experience of it."

    Niccolo Machiavelli 1469-1527

    Adopting new process and tools requires well-designed strategy and plan

    Changes how people collaboratein softwaredevelopment teams

    Behavioral and or anizational chan emust be

    The Kotter Framework - a well-known frameworkfor introducing change to an organization

    The eight-stage process

    1. Establishing a sense of urgency

    introduced in a planned fashion

    Without appropriate guidance and the rightpeople and the right strategyteams andorganizations often fail to adopt the process andtools effectively

    Must be attacked more like organizational change,less like a technology upgrade

    .

    3. Developing a vision and strategy

    4. Communicate the change vision

    5. Empowering broad-based action

    6. Generating short-term wins

    7. Consolidating gains and producing more change

    8. Anchoring new approaches in the culture

  • 8/7/2019 Adopting Agile Pragmatically 4Aug2010

    26/26

    Summary

    organization or project has transitioned to

    effective agile delivery is the trend in the costof change. This measure of the adaptabilityinherent in software releases is a key indicator ofthe flexibility required to continuously navigate

    uncertainties and steer projects toward success.

    The honest treatment of uncertainty is thefoundation of todays best practices

    When are we Agile?

    Agilist: Agile is more about doing development in iterations,working code, customer feedback, adapting to changes rather thanpicking and choosing few practices and calling yourself agile.

    Traditional methodologies incorporate rigidity Do this because the process says we must

    Beware Trojan Rigidity

    We do not do use cases in agile projects

    2010/08/04 52

    Sander Hoogendoorn