Agile Methods in Software Development (a real world story)

Document Sample
Agile Methods in Software Development (a real world story) Powered By Docstoc
					Agile Methods in Software
      Development
    (a real world story)


Clinton Keith
CTO,
High Moon Studios
The goal of this presentation
   Learn about Agile Software Development
    through the story of applying it to the game
    development environment.
Overview
 My Dark Waterfall Past
 History of Video Game Dev
 The Current State of the Business
 What is Agile and how it is applied
 Q&A at the end
My Dark Waterfall Past
      What is waterfall?
      7 years in the defense industry
         Nuclear weapon delivery systems
         F-22 (almost a 20 year project)
                The memo
                Distributed & classified work
           Underwater systems
      Lots of time with 2179
           Never heard of Agile
      Seen Waterfall grow in VG
           There’s a real lack of Agile awareness still
      Seen the same types of failures
Spectacular Software Failures
History of Video Game Dev
 Industry is ~ 30 years old
 In the good old days…
     One  person could make a game in 3 months.
     It was a programmer
     Who also did the design and art
…and it showed
Evolution of Dev Process
   I think of the evolution of our process
    occurring in three stages…
     Hacking
     Large scale hacking
     Waterfall
Stage 1 - Hacking

 Small teams of 1-5
  people
 Communication was not
  an issue
 Development was Agile-
  like
Proposal   Sound fun?   Prototype   Fun?   Test Unit
                        Iteration




                                              $$?




                                           Success!
Stage 2 – Large scale hacking
   Team sizes 10-20
    People
   Communication
    breakdown and
    divergent hacking
    cause spectacular
    failures
   Hard to kill after the
    first million $
   Many developers are
    still doing this
Stage 3 – Waterfall to the rescue!

     Large design docs
     Excel MS Project
     Hierarchies &
      Producers
     Phased
      development
     The result…
Development effort curve
   120

   100

    80

    60                        People Years to
                              develop a game
    40

    20

    0
         1980   1990   2000
Costs is growing much faster
than the market
    8
    7
    6
    5
    4                        Cost (Millions)
    3                        Sales (Billions)

    2
    1
    0
        1996   2000   2004
    VG Industry is at a cross-roads

 Costs are increasing, value is dropping
 We can have another disaster soon
 Can Agile methods help?
Why Adopt Agile?
   The Reasons/Goals:
     o Reduce wasted effort/crunch
     o To find the fun first
   Other industries have used Agile to
    develop better products faster. Can
    we?
History of Agile at High Moon
      Used Scrum in last year of
       Darkwatch
        Helped   keep the project on
         track
      Adopted XP and Agile
       planning practices on new
       projects over the last year
What is Agile Development?
   The roots of Agile go back 60 years for
     product dev (in Japan) and 30+ years for
     software dev.
   The Agile Manifesto (slightly changed)
    We value…
     o People and communication over processes
       and project management tools;
     o Working software over comprehensive design
       documents;
     o Customer collaboration over contracts
     o Responding to change over following a plan;
Wasted Effort Can Come From “Noise”
…and it influences what methodology we use
              Far from
            Agreement

                                                                Anarchy


                       Requirements               Complex




                                        Simple
              Close to
            Agreement
                                      Close to     Technology      Far from
                                      Certainty                    Certainty



Source: Strategic Management and
Organizational Dynamics by Ralph Stacey
in Agile Software Development with Scrum
by Ken Schwaber and Mike Beedle.
Finding the Fun First
                                    Alpha/Beta

              100

              80
                             Demo
              60
    % "Fun"                                 Desired
    Known                                   Waterfall
              40

              20
                    Design
               0

                             Time
What is Scrum?
  Scrum is..
     One of the major Agile Methodologies
     Iterative
     Commitment-oriented
     Results-oriented
     Disciplined
     About making things visible so you can apply
      common sense
                                                             Product
The Scrum Cast                                               Owner

                                                              Director
                                   Scrum
                      Artist
        Artist                     Master
                                            Anyone. Not a
                                 Animator      lead role      Marketing

   QA
                 The
                 Team

                                                              Publisher
                               Programmer
                                                              Producer
   Designer
                  Programmer
                                                            Customers
Product Backlog




 Jump      Product Backlog as prioritized by Product Owner
  Crouch
           Defined as User Stories with conditions of satisfaction
Run        Estimated with relative User Story Points
             that help track progress
Sprints (Iteration)

       Change
                                  Sprint
                Sprint Backlog    (Fixed
                broken out by    Duration)
                     team
Sprint Goals

                                                    Game

Jump
                                                   New Game
 Crouch                                      (Vertical Slice Added)

Run
Review and Planning




        Jump                     Game




     Fly
   Crouch

  Run                 Review and Planning
Daily Scrum
                    Daily
                   Scrum




            Jump            Game




           Fly

  Crouch

       Run
The War Room
Sprint Backlog Burndown Chart
        800
                                  Drag works against velocity
        700
                              Slope = Velocity
        600
        500
Hours
        400   Backlogged
              Story
        300
        200
        100
          0
                           Days
                   Must hit zero hours by end
Scaling Scrum - The Scrum of
Scrums
     Functional
        Leadership
                             Support
                                services




                     Teams
Releases – The Product Backlog
Iceberg
                 Sprint          High

           Release

                                         Value

                             Priority    Cost
   Future                                 Risk
      Releases
                                        Knowledge


                                  Low
Release Burndown
                        600

                        500

                        400
    User Story Points




                        300

                        200

                        100

                          0

                        -100

                        -200

                        -300
                               Sprints
 eXtreme Programming (XP)

                                Alpha/Beta

 Cost
  Of
Change                                       W aterfall
                                             XP
                  Development



         Design




                   Time
Agile Game Development
 Lessons learned
 Benefits
 Where to go for more info?
Lessons Learned
     Start small
       One  Scrum team doing a prototype
         would be ideal
     Do what the book says from the start
       Company     dysfunctions can creep in
        otherwise
       Don’t get too dogmatic about it
       …but Scrum is meant to be modified
        (eventually)
Lessons Learned…
   Agile planning is harder to start than thought
     But   XP was easier
   Coaching was critical
     Onsite   and CSM
   Customer buy-in wasn’t difficult
     Getting them into reviews and planning took
       adjustment
                             Normal Velocity        Overtime Velocity



Lessons Learned…
Overtime value is limited
 but average intensity is
  raised
Old Habits Die Hard                 Week 1     Week 2   Week 3   Week 4   Week 5

   • Over-design
   • Delayed integration
   •Command and control

Testing needs to be pushed
Benefits
      Improved…
        Productivity
        Reliabilityof build
        Quality of game
        Morale
            Ownership
            Team work

            Communication

      Enables low-cost executive awareness
        Which   means you don’t have
          to work hard to find out what’s
          going on
Where to go for more info?
   www.agilegamedevelopment.com
     Books
     Mailing lists – For Game Developers to share
      info on adopting Agile
     AGD Blog – Addressing challenges and news
      on adopting Agile to Game Development

                 Questions?