SlideShare ist ein Scribd-Unternehmen logo
1 von 70
Downloaden Sie, um offline zu lesen
Agile Development with Scrum
            and XP
           Joe Drumgoole
   http://twitter.com/jdrumgoole
A Little Bit Of History
  Requirements


               Functional Spec


                            Design


                                         Implementation


                                                                 Test


                                                                        Deploy


23 July 2010                     http://twitter.com/jdrumgoole                   2
Why Waterfall Sucks
• Can’t tell good software by observation
• What we see changes what we want
• Users are rotten at articulating their desires
       – Obsessed with How rather than What
• Domain knowledge car crash
• Requirements change over time
• Responsiveness

23 July 2010           http://twitter.com/jdrumgoole   3
Waterfall Works…
•    When specs are detailed and unchanging
•    E.g X400, TCP/IP stack, SMTP etc.
•    Requirement to deliver all at once e.g CREST
•    Minimal technical innovation required
•    UI Free Deployments
•    Project team uses appropriate process/tools



23 July 2010         http://twitter.com/jdrumgoole   4
Performance Potential

                                                     Mentor
    Move




                                                     Support
  Manage




23 July 2010         http://twitter.com/jdrumgoole             5
Software Sector
•    Highly Motivated individuals
•    Don’t need more process
•    Need more mentoring
•    .. So PRINCE2/Six Sigma etc. Won’t help
•    Some things need lots of process
       – Pharma, Big Oil, Agriculture
       – Software development ain’t one of them


23 July 2010           http://twitter.com/jdrumgoole   6
Conway’s Law
    Organisations which design systems … are
    constrained to produce designs which are
    copies of the communications structures of
    these organisations




23 July 2010        http://twitter.com/jdrumgoole   7
Software Development
•    Takes 15 minutes to get in the zone
•    Interrupts reset the 15 minute timer
•    Takes 6 months to build product value
•    Takes 18 months to build market value
•    Great developers don’t know how they do it
•    10000 hours of practice (Outliers)



23 July 2010         http://twitter.com/jdrumgoole   8
Agile Manifesto

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

                http://agilemanifesto.org/




23 July 2010         http://twitter.com/jdrumgoole      9
What does this mean?
•    Avoiding Software Engineering
•    Mostly we don’t know what we are doing
•    … so do less of it until we do know
•    Lets look at some specific processes
         Extreme Programming & SCRUM



23 July 2010         http://twitter.com/jdrumgoole   10
XP & SCRUM
• Loose Definitions
       –XP is what the programmers do
       –SCRUM is what the management do




23 July 2010       http://twitter.com/jdrumgoole   11
Extreme Programming
•    On site Customer
•    User Stories
•    Simplest possible Design
•    Pair Programming
•    Short Iterations
•    Test Driven Development
•    Refactoring
•    Continuous Integration
•    Incremental Releases
•    Visibility

23 July 2010           http://twitter.com/jdrumgoole   12
XP: On Site Customer
•    Customer available to team
•    Detailed domain knowledge
•    Understanding of ROI
•    Explains priorities from a business perspective
•    Balances effort /reward
•    Builds a relationship with team



23 July 2010         http://twitter.com/jdrumgoole   13
XP : User Stories
•    Simple stories that detail end-user functions
•    Written by the user
•    Fit on a single card
•    Focus on simple incremental improvements
•    Prune the backlog regularily
•    Priorities driven by customer demands



23 July 2010         http://twitter.com/jdrumgoole   14
XP: Simplest Possible Design
•    Over Architecture
•    You are probably building the wrong thing
•    Linear list/flat file preferred to DB table
•    Validate that the feature is desired
•    Optimise performance as a refactoring
•    Sometimes slow is good enough



23 July 2010            http://twitter.com/jdrumgoole   15
XP : Pair Programming
• Most difficult XP practice to adopt
• Not a master/slave, mentor/acolyte Role
• A sharing by peers
• Oversight at the coal face
• The minute you leave the code your
  knowledge decays exponentially
• Moment of creation
• Eliminates “ownership issues”

23 July 2010         http://twitter.com/jdrumgoole   16
Short Iterations
•    Don’t go dark
•    Validate your assumptions
•    Get customer feedback early and often
•    Don’t do work on non-essential stuff
•    Discover changes in priorities
•    Making a wrong turn at the start



23 July 2010        http://twitter.com/jdrumgoole   17
Test Driven Development
•    Write the tests first
•    Tests fail initially
•    Tests start to pass as code gets written
•    Refactoring breaks tests and then passes
•    Unit Tests (class level)
•    Acceptances Tests (end user level)
•    Use automation (xUnit, Hudson, Ant etc.)
•    If it doesn’t have a test it doesn’t exist
•    Design for automated test

23 July 2010           http://twitter.com/jdrumgoole   18
Refactoring
•    Driven by user stories
•    Performance demands a new sort
•    Flat files cannot be restructured for new data
•    Increase users from 10 to 1000
•    Environment changes (Windows to Linux)
•    Software Rot reduction



23 July 2010         http://twitter.com/jdrumgoole    19
Continuous Integration
•    Single Code Repository
•    Automate the Build
•    Make The Build Self Testing
•    Everyone commits to mainline everyday
•    Every commit builds the system
•    Keep the build fast
•    Test in a production clone
•    Make it easy to get a production copy

23 July 2010         http://twitter.com/jdrumgoole   20
Incremental Releases
• Get the smallest feature working
• Use tests to validate working system
• Make sure each release modifies a small part
  of the system
• Understand all changes
• Focus on end-to-end functionality



23 July 2010         http://twitter.com/jdrumgoole   21
Visibility
• Broken tests detected and fixed
• Broken builds detected and fixed
• Clear stats on:
       – No of builds
       – No of tests
       – No of deployments
       – Development is Data Centric


23 July 2010            http://twitter.com/jdrumgoole   22
XP : Velocity
• An understanding of how many stories we can
  complete
• Measured like the weather
• Feedback loop leads to consistent stories




23 July 2010     http://twitter.com/jdrumgoole   23
XP : Example Velocity
                       350
                                Example Velocity for SaaS Project
                       300



                       250
      Tickets Closed




                       200



                       150
                                                                      Total

                       100



                       50



                         0




                                           Sprints (Two Weeks)


23 July 2010                          http://twitter.com/jdrumgoole           24
XP: 80/20 Rule
                  120
                        Example Velocity for SaaS Project
                        Example Velocity for SaaS Project
                  100



                  80
 Tickets Closed




                  60


                                                              KP
                                                               DR
                  40



                  20



                    0




                                    Sprints (Two Weeks)
                                    Sprints (Two Weeks)




23 July 2010                  http://twitter.com/jdrumgoole   25
Velocity Errors
•    Need to focus on consistent sprint tasks
•    Tasks must be > 4 hrs
•    Tasks must be < 16 hrs
•    Break up or coalesce
•    Product Backlog too coarse grained
•    80/20 rule goes for performance



23 July 2010         http://twitter.com/jdrumgoole   26
Exercise
• Write two User Stories for your software




23 July 2010      http://twitter.com/jdrumgoole   27
SCRUM


Scrum is an agile process that allows us to
focus on delivering the highest business
value in the shortest time




23 July 2010     http://twitter.com/jdrumgoole   28
General George Patton


  A good plan, violently executed
   now, is better than a perfect
          plan next week


23 July 2010         http://twitter.com/jdrumgoole   29
Its Been Around a While
     • Jeff Sutherland
           – Initial scrums at Easel Corp in 1993
           – IDX and 500+ people doing Scrum
           – Scrum presented at OOPLSA 96
     • Ken Schwaber
           – Scrum presented at OOPSLA 96
           – Author of three books on Scrum
     • Mike Beedle
           – Scrum patterns in PLOPD4
     • Ken Schwaber and Mike Cohn
           – Co-founded Scrum Alliance in 2002

23 July 2010                  http://twitter.com/jdrumgoole   30
SCRUM Users
•    Microsoft                            •    Intuit
•    Yahoo                                •    Nielsen Media
•    Google                               •    First American Real Estate
•    Electronic Arts                      •    BMC Software
•    Philips                              •    John Deere
•    Siemens                              •    Lexis Nexis
•    Nokia                                •    Sabre
•    IBM                                  •    Salesforce.com
•    Capital One                          •    Time Warner
•    BBC                                  •    Oce

23 July 2010             http://twitter.com/jdrumgoole                  31
Key Facets
     • Self-organizing teams
     • Product progresses in a series of two- to
       four-week “sprints”
     • Requirements are captured as items in a list
       of “product backlog”
     • No specific engineering practices prescribed
     • Uses generative rules to create an agile
       environment for delivering projects
     • One of the “agile processes”
23 July 2010         http://twitter.com/jdrumgoole   32
SCRUM Overview




23 July 2010      http://twitter.com/jdrumgoole   33
The Sprint – Coin of the Realm
• A release is broken down into sprints
• Sprints are of fixed identical duration
       – Helps manage velocity
       – Helps keep a rhythm
• Team decides sprint duration
• No changes during a sprint



23 July 2010            http://twitter.com/jdrumgoole   34
Scrum Structure
• Roles
       – Product Owner
       – Scrum Master
       – Team
• Processes
       –   Sprint Planning
       –   Daily Scrum Meeting
       –   Sprint Review
       –   Sprint Retrospective
• Artefacts
       – Product Backlog
       – Sprint Backlog
       – Burn Down Charts

23 July 2010                  http://twitter.com/jdrumgoole   35
Roles: Product Owner
     • Define the features of the product
     • Decide on release date and content
     • Be responsible for the profitability of the
       product (ROI)
     • Prioritize features according to market value
     • Adjust features and priority every
       iteration, as needed
     • Accept or reject work results
23 July 2010         http://twitter.com/jdrumgoole   36
Roles : Scrum Master
     • Represents management to the project
     • Responsible for enacting Scrum values and
       practices
     • Removes impediments
     • Ensure that the team is fully functional and
       productive
     • Enable close cooperation across all roles and
       functions
     • Shield the team from external interferences
23 July 2010          http://twitter.com/jdrumgoole    37
Roles: The Team
     • Typically 5-9 people
     • Cross-functional:
       – Programmers, testers, user experience
         designers, etc.
     • Members should be full-time
       – May be exceptions (e.g., database administrator)
     • Teams are self-organizing
           – Ideally, no titles but rarely a possibility
     • Membership should change only between
       sprints
23 July 2010                  http://twitter.com/jdrumgoole   38
Process : Sprint Planning
• The Product Backlog




23 July 2010           http://twitter.com/jdrumgoole   39
Processes : Sprint Planning
• Sprint Prioritization
       – Analyse and evaluate sprint backlog
       – Takes account of changing business priorities
       – Define Sprint Goal
       – Feed into Sprint Plan




23 July 2010             http://twitter.com/jdrumgoole   40
Processes : Sprint Plan
• Decide how to achieve sprint goal
• Create sprint backlog from product backlog
       – A list of product backlog tasks aligned with goal
• Time estimates for sprint backlog
• Sprint backlog is the Sprint Plan




23 July 2010             http://twitter.com/jdrumgoole       41
Example : Product Backlog
• Product Backlog : Invoicing System
        Feature                                                      Development
                                                                     Effort (Days)
        Allow login using facebook credentials                       5
        Generate PDF copies of invoices                              7
        Graph credit risk                                            4
        Send duplicates of all invoices                              3
        Annotate invoice                                             3
        Customise invoice look and feel                              5
        Support multi-currency                                       10
        Support time sheets for work                                 10
        Store list of clients and allow editing                      4
23 July 2010                         http://twitter.com/jdrumgoole                   42
Exercise
• Prioritise Two Features
• Write sprint backlog with estimates
• Present to group




23 July 2010      http://twitter.com/jdrumgoole   43
Process : The Daily Scrum
     • Parameters
           – Daily
           – 15-minutes
           – Stand-up
     • Not for problem solving
           – Whole world is invited
           – Only team members, ScrumMaster, product
             owner, can talk
     • Helps avoid other unnecessary meetings

23 July 2010              http://twitter.com/jdrumgoole   44
Process : Daily Scrum
• Three Questions for each Team Member
       – What did you do yesterday?
       – What will you do today?
       – Is there anything in your way?
• Not status updates for Scrum Master
• Commitments to your peers
• Keeps SCRUM moving forward
23 July 2010          http://twitter.com/jdrumgoole   45
Processes : Sprint Review
     • Team presents Sprint Goal
     • Ideally a Demo
     • Informal
           – 2-hour prep time rule
           – No slides
     • Whole team participates
     • Invite the world

23 July 2010            http://twitter.com/jdrumgoole   46
Process : Sprint Retrospective
     • Periodically take a look at what is and is not
       working
     • Typically 15–30 minutes
     • Done after every sprint
     • Whole team participates
           – ScrumMaster
           – Product owner
           – Team
           – Possibly customers and others

23 July 2010              http://twitter.com/jdrumgoole   47
Processes : Sprint Retrospective

           Start Doing


                         Stop Doing


                                                Continue Doing

23 July 2010              http://twitter.com/jdrumgoole          48
Artefacts : Product Backlog
•    The engine that drives scrum
•    All desired work (from users perspective)
•    Articulated as value delivered to customer
•    Prioritised by Product Owner
•    Should have rough development estimates
•    Reprioritised at the start of each sprint



23 July 2010            http://twitter.com/jdrumgoole   49
Artefacts : Product Backlog
•    Avoids “infrastructure”
•    Avoids “architecture astronauts”
•    Focuses all efforts on business value
•    Sprint Backlog articulates technical issues
•    Anyone can add to the backlog
•    Product Owner sets priority
•    Starvation is healthy

23 July 2010            http://twitter.com/jdrumgoole   50
Artefacts : Sprint Backlog
• Sprint Goal
       – Centralising paradigm of the overall sprint
       – Put an umbrella over a number of backlog items
       – Can be one backlog item
• Example
       – Support multiple users per account
       – Integrate Google Docs
       – Support Sage Accounting

23 July 2010            http://twitter.com/jdrumgoole     51
Artefacts : Sprint Backlog
     • Individuals sign up for work of their own choosing
           – Work is never assigned, collective ownership
     • Estimated work remaining is updated daily
     • Any team member can add, delete or change the
       sprint backlog
     • Work for the sprint emerges
     • If work is unclear, define a sprint backlog item with a
       larger amount of time and break it down later
     • Update work remaining as more becomes known


23 July 2010                 http://twitter.com/jdrumgoole   52
Artefacts : Sprint Backlog
• Sprint Tasks
       – Each task 8-16 hours
       – Should be achievable by any team member
       – Task time limits avoids “skunk works”




23 July 2010           http://twitter.com/jdrumgoole   53
Artefacts : Burn Down Chart




23 July 2010            http://twitter.com/jdrumgoole   54
Agile Deployment
• Use what works for you
• Phase 1
       – Test Driven Development
       – Continuous Integration
• Phase 2
       – Continuous Integration
       – Shorter release cycles


23 July 2010            http://twitter.com/jdrumgoole   55
What can go wrong Internally?
•    No onsite customer
•    Sprints too long
•    TDD Lip service (all tests pass, nothing works)
•    Techno Bigotry
       – The solution to everything is a NoSQL Db
• Over architecting solutions



23 July 2010            http://twitter.com/jdrumgoole   56
What can go wrong Externally?
• No management buy in
• Expectations that 12 month long waterfall
  schedules will hit their dates
• Expectations of Quarterly “move the market”
  releases
• No domain expertise
• The blame game


23 July 2010     http://twitter.com/jdrumgoole   57
Tools Overview
•    Source Code Control
•    Ticket/Story Tracking
•    Burn Down Charts
•    Sprints
•    Continuous Integration
•    Unit Testing
•    Acceptance Testing

23 July 2010        http://twitter.com/jdrumgoole   58
Source Code Control
• Subversion
       –   Centralised
       –   Mature
       –   Good tool support
       –   Lots of hosting providers
       –   TortoiseSVN for Windows Clients
• GitHub
       –   Distributed
       –   Younger Lineage
       –   Better for Branching
       –   A few hosting providers
23 July 2010               http://twitter.com/jdrumgoole   59
Tickets: Trac
• Trac
       – Open Source
       – Simple wiki and ticketing support
       – Integration with Mylyn
       – Lots of hosting providers
       – Very simple clean interface
       – Can be deployed on-premise
       – Nice integration with subversion

23 July 2010             http://twitter.com/jdrumgoole   60
Tickets : Assembla
•    Nice Ticket interface
•    Mylyn integration for Eclipse
•    Client interface with good scrum support
•    Good wiki integration
•    Good Multi-project support




23 July 2010         http://twitter.com/jdrumgoole   61
Tickets: JIRA
• JIRA
       – Hosted or on-premise
       – Great ticketing system
       – Lots of features and integrations
       – Comes with full development suite
       – $125 a month for 5 developers




23 July 2010            http://twitter.com/jdrumgoole   62
Burn Down : Charts
• Assembla
• Wush
• Pretty easy to knock out in Excel
       – If they come for free, use them
       – Don’t pay for them
       – Consider tracking Unit tests and Tickets Closed




23 July 2010             http://twitter.com/jdrumgoole     63
Sprints
• Wush
• Assembla
• JIRA
       – All support sprint structures
       – Progress indicators
       – Correlation with source code control system
• Backlog management is hard in Wush
• Multi-projects hard in Wush
23 July 2010            http://twitter.com/jdrumgoole   64
Continuous Integration
• Hudson
       – Apache, easy to setup, works for all scripted builds
       – Great UI
• Cruise Control
       – Older than hudson, but does .NET stuff
• Continuum
       – Apache project, primarily Java builds
• Bamboo
       – Slick but need to pay for it

23 July 2010               http://twitter.com/jdrumgoole        65
Unit Testing
•    Various xUnit Frameworks
•    Use one
•    Good integration with eclipse for JUnit
•    Every language has a framework
• http://en.wikipedia.org/wiki/List_of_unit_testing_fra
  meworks (66 listed)




23 July 2010         http://twitter.com/jdrumgoole    66
Acceptance Testing
• Selenium
       – Plugin and IDE
       – Stores web requests and results
       – Reports success/failure
• FIT
       – Create “fixtures” in Word/Excel
       – Test using FIT library


23 July 2010             http://twitter.com/jdrumgoole   67
Summary
•    Get the individual activities working
•    Get the group activities working
•    Embraced rather than imposed
•    Automation really helps
•    Deliver value before delivering a sea change
•    Start Small



23 July 2010         http://twitter.com/jdrumgoole   68
Deming



                 In God We Trust.
               All others bring data.

23 July 2010          http://twitter.com/jdrumgoole   69
Thanks




23 July 2010   http://twitter.com/jdrumgoole   70

Weitere ähnliche Inhalte

Was ist angesagt?

Agile scrum introduction
Agile scrum introductionAgile scrum introduction
Agile scrum introductionducquoc_vn
 
Agile Scrum Training Process
Agile Scrum Training ProcessAgile Scrum Training Process
Agile Scrum Training ProcessClarion Marketing
 
Scrum in 15 Minutes
Scrum in 15 MinutesScrum in 15 Minutes
Scrum in 15 MinutesSerge Rehem
 
Introduction To Scrum
Introduction To ScrumIntroduction To Scrum
Introduction To ScrumDave Neuman
 
Agile Scrum software methodology
Agile Scrum software methodologyAgile Scrum software methodology
Agile Scrum software methodologyAbdullah Raza
 
Scrum - A Short Tour
Scrum - A Short TourScrum - A Short Tour
Scrum - A Short TourVineet Patni
 
Introduction to Scrum: A How-To Guide
Introduction to Scrum: A How-To GuideIntroduction to Scrum: A How-To Guide
Introduction to Scrum: A How-To GuideEspeo Software
 
Agile Scrum Quick Reference Card
Agile Scrum Quick Reference CardAgile Scrum Quick Reference Card
Agile Scrum Quick Reference CardTechcanvass
 
Introduction to Project Management with Scrum
Introduction to Project Management with ScrumIntroduction to Project Management with Scrum
Introduction to Project Management with ScrumPierre E. NEIS
 
Hanno Jarvet BeWise loeng "An Introduction to Scrum" (20.11.2013 EBS)
Hanno Jarvet BeWise loeng "An Introduction to Scrum" (20.11.2013 EBS)Hanno Jarvet BeWise loeng "An Introduction to Scrum" (20.11.2013 EBS)
Hanno Jarvet BeWise loeng "An Introduction to Scrum" (20.11.2013 EBS)JCI Tallinn BeWise
 
Understanding Scrum in 30 Minutes
Understanding Scrum in 30 MinutesUnderstanding Scrum in 30 Minutes
Understanding Scrum in 30 MinutesAltaf Najvani
 

Was ist angesagt? (20)

Agile scrum introduction
Agile scrum introductionAgile scrum introduction
Agile scrum introduction
 
Agile Scrum Training Process
Agile Scrum Training ProcessAgile Scrum Training Process
Agile Scrum Training Process
 
Scrum in 15 Minutes
Scrum in 15 MinutesScrum in 15 Minutes
Scrum in 15 Minutes
 
Introduction To Scrum
Introduction To ScrumIntroduction To Scrum
Introduction To Scrum
 
Introduction to Scrum
Introduction to ScrumIntroduction to Scrum
Introduction to Scrum
 
Agile Scrum Methodology
Agile Scrum MethodologyAgile Scrum Methodology
Agile Scrum Methodology
 
Introduction to agile
Introduction to agileIntroduction to agile
Introduction to agile
 
Agile Scrum software methodology
Agile Scrum software methodologyAgile Scrum software methodology
Agile Scrum software methodology
 
Introduction to Scrum - Agile Methods
Introduction to Scrum - Agile MethodsIntroduction to Scrum - Agile Methods
Introduction to Scrum - Agile Methods
 
Scrum Process
Scrum ProcessScrum Process
Scrum Process
 
Scrum
ScrumScrum
Scrum
 
Scrum introduction
Scrum introductionScrum introduction
Scrum introduction
 
Scrum - A Short Tour
Scrum - A Short TourScrum - A Short Tour
Scrum - A Short Tour
 
Introduction to Scrum: A How-To Guide
Introduction to Scrum: A How-To GuideIntroduction to Scrum: A How-To Guide
Introduction to Scrum: A How-To Guide
 
Introduction into SCRUM
Introduction into SCRUMIntroduction into SCRUM
Introduction into SCRUM
 
Agile Scrum Quick Reference Card
Agile Scrum Quick Reference CardAgile Scrum Quick Reference Card
Agile Scrum Quick Reference Card
 
Introduction to Project Management with Scrum
Introduction to Project Management with ScrumIntroduction to Project Management with Scrum
Introduction to Project Management with Scrum
 
Scrum way the way
Scrum way the wayScrum way the way
Scrum way the way
 
Hanno Jarvet BeWise loeng "An Introduction to Scrum" (20.11.2013 EBS)
Hanno Jarvet BeWise loeng "An Introduction to Scrum" (20.11.2013 EBS)Hanno Jarvet BeWise loeng "An Introduction to Scrum" (20.11.2013 EBS)
Hanno Jarvet BeWise loeng "An Introduction to Scrum" (20.11.2013 EBS)
 
Understanding Scrum in 30 Minutes
Understanding Scrum in 30 MinutesUnderstanding Scrum in 30 Minutes
Understanding Scrum in 30 Minutes
 

Ähnlich wie Agile development using SCRUM

In the Flow: Patterns of Observable Work (e2conf preso w/speaker notes)
In the Flow: Patterns of Observable Work (e2conf preso w/speaker notes)In the Flow: Patterns of Observable Work (e2conf preso w/speaker notes)
In the Flow: Patterns of Observable Work (e2conf preso w/speaker notes)btullis
 
Software Engineering for Startups (University of St Andrews, 2013)
Software Engineering for Startups (University of St Andrews, 2013)Software Engineering for Startups (University of St Andrews, 2013)
Software Engineering for Startups (University of St Andrews, 2013)RightScale
 
Creando microservicios con Java y Microprofile - Nicaragua JUG
Creando microservicios con Java y Microprofile - Nicaragua JUGCreando microservicios con Java y Microprofile - Nicaragua JUG
Creando microservicios con Java y Microprofile - Nicaragua JUGCésar Hernández
 
LJCConf 2013 "Chuck Norris Doesn't Need DevOps"
LJCConf 2013 "Chuck Norris Doesn't Need DevOps"LJCConf 2013 "Chuck Norris Doesn't Need DevOps"
LJCConf 2013 "Chuck Norris Doesn't Need DevOps"Daniel Bryant
 
Break up the Monolith: Testing Microservices
Break up the Monolith: Testing MicroservicesBreak up the Monolith: Testing Microservices
Break up the Monolith: Testing MicroservicesMarcus Merrell
 
Mojo+presentation+1
Mojo+presentation+1Mojo+presentation+1
Mojo+presentation+1Craig Condon
 
Making Great User Experiences, Pittsburgh Scrum MeetUp, Oct 17, 2017
Making Great User Experiences, Pittsburgh Scrum MeetUp, Oct 17, 2017Making Great User Experiences, Pittsburgh Scrum MeetUp, Oct 17, 2017
Making Great User Experiences, Pittsburgh Scrum MeetUp, Oct 17, 2017Carol Smith
 
Break Up the Monolith- Testing Microservices by Marcus Merrell
Break Up the Monolith- Testing Microservices by Marcus MerrellBreak Up the Monolith- Testing Microservices by Marcus Merrell
Break Up the Monolith- Testing Microservices by Marcus MerrellSauce Labs
 
An Introduction to Scrum: presented at PyTexas 2012
An Introduction to Scrum: presented at PyTexas 2012An Introduction to Scrum: presented at PyTexas 2012
An Introduction to Scrum: presented at PyTexas 2012Tomo Popovic
 
Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...
Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...
Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...StormForge .io
 
English redistributable-intro-scrum
English redistributable-intro-scrumEnglish redistributable-intro-scrum
English redistributable-intro-scrumSean Mike
 
Hybrid model for software development
Hybrid model for software developmentHybrid model for software development
Hybrid model for software developmenteSAT Journals
 
24-scrum.ppt
24-scrum.ppt24-scrum.ppt
24-scrum.pptSTEMEd1
 
Scrum and Agile Software Development
Scrum and Agile Software DevelopmentScrum and Agile Software Development
Scrum and Agile Software Developmentbanerjeerohit
 
Continuous Infrastructure First
Continuous Infrastructure FirstContinuous Infrastructure First
Continuous Infrastructure FirstKris Buytaert
 
How to Run Research in Agile Sprints by Democratizing It Across Teams
How to Run Research in Agile Sprints by Democratizing It Across TeamsHow to Run Research in Agile Sprints by Democratizing It Across Teams
How to Run Research in Agile Sprints by Democratizing It Across TeamsUserZoom
 
Design choices of golang for high scalability
Design choices of golang for high scalabilityDesign choices of golang for high scalability
Design choices of golang for high scalabilitySeongJae Park
 
Writing Futuristic Workflows in Office 365 SharePoint 2013 2016 on premise
Writing Futuristic Workflows in Office 365 SharePoint 2013 2016 on premiseWriting Futuristic Workflows in Office 365 SharePoint 2013 2016 on premise
Writing Futuristic Workflows in Office 365 SharePoint 2013 2016 on premisePrashant G Bhoyar (Microsoft MVP)
 

Ähnlich wie Agile development using SCRUM (20)

In the Flow: Patterns of Observable Work (e2conf preso w/speaker notes)
In the Flow: Patterns of Observable Work (e2conf preso w/speaker notes)In the Flow: Patterns of Observable Work (e2conf preso w/speaker notes)
In the Flow: Patterns of Observable Work (e2conf preso w/speaker notes)
 
Software Engineering for Startups (University of St Andrews, 2013)
Software Engineering for Startups (University of St Andrews, 2013)Software Engineering for Startups (University of St Andrews, 2013)
Software Engineering for Startups (University of St Andrews, 2013)
 
Creando microservicios con Java y Microprofile - Nicaragua JUG
Creando microservicios con Java y Microprofile - Nicaragua JUGCreando microservicios con Java y Microprofile - Nicaragua JUG
Creando microservicios con Java y Microprofile - Nicaragua JUG
 
Scrum discussion (1)
Scrum discussion (1)Scrum discussion (1)
Scrum discussion (1)
 
LJCConf 2013 "Chuck Norris Doesn't Need DevOps"
LJCConf 2013 "Chuck Norris Doesn't Need DevOps"LJCConf 2013 "Chuck Norris Doesn't Need DevOps"
LJCConf 2013 "Chuck Norris Doesn't Need DevOps"
 
Break up the Monolith: Testing Microservices
Break up the Monolith: Testing MicroservicesBreak up the Monolith: Testing Microservices
Break up the Monolith: Testing Microservices
 
Mojo+presentation+1
Mojo+presentation+1Mojo+presentation+1
Mojo+presentation+1
 
Making Great User Experiences, Pittsburgh Scrum MeetUp, Oct 17, 2017
Making Great User Experiences, Pittsburgh Scrum MeetUp, Oct 17, 2017Making Great User Experiences, Pittsburgh Scrum MeetUp, Oct 17, 2017
Making Great User Experiences, Pittsburgh Scrum MeetUp, Oct 17, 2017
 
Break Up the Monolith- Testing Microservices by Marcus Merrell
Break Up the Monolith- Testing Microservices by Marcus MerrellBreak Up the Monolith- Testing Microservices by Marcus Merrell
Break Up the Monolith- Testing Microservices by Marcus Merrell
 
An Introduction to Scrum: presented at PyTexas 2012
An Introduction to Scrum: presented at PyTexas 2012An Introduction to Scrum: presented at PyTexas 2012
An Introduction to Scrum: presented at PyTexas 2012
 
Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...
Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...
Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...
 
English redistributable-intro-scrum
English redistributable-intro-scrumEnglish redistributable-intro-scrum
English redistributable-intro-scrum
 
Hybrid model for software development
Hybrid model for software developmentHybrid model for software development
Hybrid model for software development
 
24-scrum.ppt
24-scrum.ppt24-scrum.ppt
24-scrum.ppt
 
Scrum and Agile Software Development
Scrum and Agile Software DevelopmentScrum and Agile Software Development
Scrum and Agile Software Development
 
Continuous Infrastructure First
Continuous Infrastructure FirstContinuous Infrastructure First
Continuous Infrastructure First
 
24 scrum
24 scrum24 scrum
24 scrum
 
How to Run Research in Agile Sprints by Democratizing It Across Teams
How to Run Research in Agile Sprints by Democratizing It Across TeamsHow to Run Research in Agile Sprints by Democratizing It Across Teams
How to Run Research in Agile Sprints by Democratizing It Across Teams
 
Design choices of golang for high scalability
Design choices of golang for high scalabilityDesign choices of golang for high scalability
Design choices of golang for high scalability
 
Writing Futuristic Workflows in Office 365 SharePoint 2013 2016 on premise
Writing Futuristic Workflows in Office 365 SharePoint 2013 2016 on premiseWriting Futuristic Workflows in Office 365 SharePoint 2013 2016 on premise
Writing Futuristic Workflows in Office 365 SharePoint 2013 2016 on premise
 

Mehr von Joe Drumgoole

MongoDB Schema Design
MongoDB Schema DesignMongoDB Schema Design
MongoDB Schema DesignJoe Drumgoole
 
The Rise of Microservices
The Rise of MicroservicesThe Rise of Microservices
The Rise of MicroservicesJoe Drumgoole
 
Back to Basics 2017 - Your First MongoDB Application
Back to Basics 2017 - Your First MongoDB ApplicationBack to Basics 2017 - Your First MongoDB Application
Back to Basics 2017 - Your First MongoDB ApplicationJoe Drumgoole
 
Back to Basics 2017 - Introduction to NoSQL
Back to Basics 2017 - Introduction to NoSQLBack to Basics 2017 - Introduction to NoSQL
Back to Basics 2017 - Introduction to NoSQLJoe Drumgoole
 
Python Ireland Conference 2016 - Python and MongoDB Workshop
Python Ireland Conference 2016 - Python and MongoDB WorkshopPython Ireland Conference 2016 - Python and MongoDB Workshop
Python Ireland Conference 2016 - Python and MongoDB WorkshopJoe Drumgoole
 
Server discovery and monitoring with MongoDB
Server discovery and monitoring with MongoDBServer discovery and monitoring with MongoDB
Server discovery and monitoring with MongoDBJoe Drumgoole
 
Event sourcing the best ubiquitous pattern you have never heard off
Event sourcing   the best ubiquitous pattern you have never heard offEvent sourcing   the best ubiquitous pattern you have never heard off
Event sourcing the best ubiquitous pattern you have never heard offJoe Drumgoole
 
EuroPython 2016 : A Deep Dive into the Pymongo Driver
EuroPython 2016 : A Deep Dive into the Pymongo DriverEuroPython 2016 : A Deep Dive into the Pymongo Driver
EuroPython 2016 : A Deep Dive into the Pymongo DriverJoe Drumgoole
 
MongoDB World 2016 : Advanced Aggregation
MongoDB World 2016 : Advanced AggregationMongoDB World 2016 : Advanced Aggregation
MongoDB World 2016 : Advanced AggregationJoe Drumgoole
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQLJoe Drumgoole
 
Introduction to CQRS and Event Sourcing
Introduction to CQRS and Event SourcingIntroduction to CQRS and Event Sourcing
Introduction to CQRS and Event SourcingJoe Drumgoole
 
Back to Basics Webinar 3 - Thinking in Documents
Back to Basics Webinar 3 - Thinking in DocumentsBack to Basics Webinar 3 - Thinking in Documents
Back to Basics Webinar 3 - Thinking in DocumentsJoe Drumgoole
 
Back to Basics Webinar 2 - Your First MongoDB Application
Back to  Basics Webinar 2 - Your First MongoDB ApplicationBack to  Basics Webinar 2 - Your First MongoDB Application
Back to Basics Webinar 2 - Your First MongoDB ApplicationJoe Drumgoole
 
Back to Basics Webinar 1 - Introduction to NoSQL
Back to Basics Webinar 1 - Introduction to NoSQLBack to Basics Webinar 1 - Introduction to NoSQL
Back to Basics Webinar 1 - Introduction to NoSQLJoe Drumgoole
 
Cloud Computing - Halfway through the revolution
Cloud Computing - Halfway through the revolutionCloud Computing - Halfway through the revolution
Cloud Computing - Halfway through the revolutionJoe Drumgoole
 
Enterprise mobility for fun and profit
Enterprise mobility for fun and profitEnterprise mobility for fun and profit
Enterprise mobility for fun and profitJoe Drumgoole
 
How to run a company for 2k a year
How to run a company for 2k a yearHow to run a company for 2k a year
How to run a company for 2k a yearJoe Drumgoole
 
Mobile monday mhealth
Mobile monday mhealthMobile monday mhealth
Mobile monday mhealthJoe Drumgoole
 
Harness the web and grow your business
Harness the web and grow your businessHarness the web and grow your business
Harness the web and grow your businessJoe Drumgoole
 

Mehr von Joe Drumgoole (20)

MongoDB Schema Design
MongoDB Schema DesignMongoDB Schema Design
MongoDB Schema Design
 
The Rise of Microservices
The Rise of MicroservicesThe Rise of Microservices
The Rise of Microservices
 
Back to Basics 2017 - Your First MongoDB Application
Back to Basics 2017 - Your First MongoDB ApplicationBack to Basics 2017 - Your First MongoDB Application
Back to Basics 2017 - Your First MongoDB Application
 
Back to Basics 2017 - Introduction to NoSQL
Back to Basics 2017 - Introduction to NoSQLBack to Basics 2017 - Introduction to NoSQL
Back to Basics 2017 - Introduction to NoSQL
 
Python Ireland Conference 2016 - Python and MongoDB Workshop
Python Ireland Conference 2016 - Python and MongoDB WorkshopPython Ireland Conference 2016 - Python and MongoDB Workshop
Python Ireland Conference 2016 - Python and MongoDB Workshop
 
Server discovery and monitoring with MongoDB
Server discovery and monitoring with MongoDBServer discovery and monitoring with MongoDB
Server discovery and monitoring with MongoDB
 
Event sourcing the best ubiquitous pattern you have never heard off
Event sourcing   the best ubiquitous pattern you have never heard offEvent sourcing   the best ubiquitous pattern you have never heard off
Event sourcing the best ubiquitous pattern you have never heard off
 
EuroPython 2016 : A Deep Dive into the Pymongo Driver
EuroPython 2016 : A Deep Dive into the Pymongo DriverEuroPython 2016 : A Deep Dive into the Pymongo Driver
EuroPython 2016 : A Deep Dive into the Pymongo Driver
 
MongoDB World 2016 : Advanced Aggregation
MongoDB World 2016 : Advanced AggregationMongoDB World 2016 : Advanced Aggregation
MongoDB World 2016 : Advanced Aggregation
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
Introduction to CQRS and Event Sourcing
Introduction to CQRS and Event SourcingIntroduction to CQRS and Event Sourcing
Introduction to CQRS and Event Sourcing
 
Back to Basics Webinar 3 - Thinking in Documents
Back to Basics Webinar 3 - Thinking in DocumentsBack to Basics Webinar 3 - Thinking in Documents
Back to Basics Webinar 3 - Thinking in Documents
 
Back to Basics Webinar 2 - Your First MongoDB Application
Back to  Basics Webinar 2 - Your First MongoDB ApplicationBack to  Basics Webinar 2 - Your First MongoDB Application
Back to Basics Webinar 2 - Your First MongoDB Application
 
Back to Basics Webinar 1 - Introduction to NoSQL
Back to Basics Webinar 1 - Introduction to NoSQLBack to Basics Webinar 1 - Introduction to NoSQL
Back to Basics Webinar 1 - Introduction to NoSQL
 
Cloud Computing - Halfway through the revolution
Cloud Computing - Halfway through the revolutionCloud Computing - Halfway through the revolution
Cloud Computing - Halfway through the revolution
 
Enterprise mobility for fun and profit
Enterprise mobility for fun and profitEnterprise mobility for fun and profit
Enterprise mobility for fun and profit
 
How to run a company for 2k a year
How to run a company for 2k a yearHow to run a company for 2k a year
How to run a company for 2k a year
 
Mobile monday mhealth
Mobile monday mhealthMobile monday mhealth
Mobile monday mhealth
 
Cloudsplit original
Cloudsplit originalCloudsplit original
Cloudsplit original
 
Harness the web and grow your business
Harness the web and grow your businessHarness the web and grow your business
Harness the web and grow your business
 

Kürzlich hochgeladen

The Stolen Bacillus by Herbert George Wells
The Stolen Bacillus by Herbert George WellsThe Stolen Bacillus by Herbert George Wells
The Stolen Bacillus by Herbert George WellsEugene Lysak
 
How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17Celine George
 
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRADUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRATanmoy Mishra
 
Diploma in Nursing Admission Test Question Solution 2023.pdf
Diploma in Nursing Admission Test Question Solution 2023.pdfDiploma in Nursing Admission Test Question Solution 2023.pdf
Diploma in Nursing Admission Test Question Solution 2023.pdfMohonDas
 
The Singapore Teaching Practice document
The Singapore Teaching Practice documentThe Singapore Teaching Practice document
The Singapore Teaching Practice documentXsasf Sfdfasd
 
How to Use api.constrains ( ) in Odoo 17
How to Use api.constrains ( ) in Odoo 17How to Use api.constrains ( ) in Odoo 17
How to Use api.constrains ( ) in Odoo 17Celine George
 
How to Make a Field read-only in Odoo 17
How to Make a Field read-only in Odoo 17How to Make a Field read-only in Odoo 17
How to Make a Field read-only in Odoo 17Celine George
 
Easter in the USA presentation by Chloe.
Easter in the USA presentation by Chloe.Easter in the USA presentation by Chloe.
Easter in the USA presentation by Chloe.EnglishCEIPdeSigeiro
 
Education and training program in the hospital APR.pptx
Education and training program in the hospital APR.pptxEducation and training program in the hospital APR.pptx
Education and training program in the hospital APR.pptxraviapr7
 
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptx
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptxPractical Research 1: Lesson 8 Writing the Thesis Statement.pptx
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptxKatherine Villaluna
 
Patient Counselling. Definition of patient counseling; steps involved in pati...
Patient Counselling. Definition of patient counseling; steps involved in pati...Patient Counselling. Definition of patient counseling; steps involved in pati...
Patient Counselling. Definition of patient counseling; steps involved in pati...raviapr7
 
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptxClinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptxraviapr7
 
CapTechU Doctoral Presentation -March 2024 slides.pptx
CapTechU Doctoral Presentation -March 2024 slides.pptxCapTechU Doctoral Presentation -March 2024 slides.pptx
CapTechU Doctoral Presentation -March 2024 slides.pptxCapitolTechU
 
How to Solve Singleton Error in the Odoo 17
How to Solve Singleton Error in the  Odoo 17How to Solve Singleton Error in the  Odoo 17
How to Solve Singleton Error in the Odoo 17Celine George
 
The basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptxThe basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptxheathfieldcps1
 
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdfMaximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdfTechSoup
 
CAULIFLOWER BREEDING 1 Parmar pptx
CAULIFLOWER BREEDING 1 Parmar pptxCAULIFLOWER BREEDING 1 Parmar pptx
CAULIFLOWER BREEDING 1 Parmar pptxSaurabhParmar42
 
AUDIENCE THEORY -- FANDOM -- JENKINS.pptx
AUDIENCE THEORY -- FANDOM -- JENKINS.pptxAUDIENCE THEORY -- FANDOM -- JENKINS.pptx
AUDIENCE THEORY -- FANDOM -- JENKINS.pptxiammrhaywood
 

Kürzlich hochgeladen (20)

The Stolen Bacillus by Herbert George Wells
The Stolen Bacillus by Herbert George WellsThe Stolen Bacillus by Herbert George Wells
The Stolen Bacillus by Herbert George Wells
 
Prelims of Kant get Marx 2.0: a general politics quiz
Prelims of Kant get Marx 2.0: a general politics quizPrelims of Kant get Marx 2.0: a general politics quiz
Prelims of Kant get Marx 2.0: a general politics quiz
 
How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17
 
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRADUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
DUST OF SNOW_BY ROBERT FROST_EDITED BY_ TANMOY MISHRA
 
Diploma in Nursing Admission Test Question Solution 2023.pdf
Diploma in Nursing Admission Test Question Solution 2023.pdfDiploma in Nursing Admission Test Question Solution 2023.pdf
Diploma in Nursing Admission Test Question Solution 2023.pdf
 
The Singapore Teaching Practice document
The Singapore Teaching Practice documentThe Singapore Teaching Practice document
The Singapore Teaching Practice document
 
How to Use api.constrains ( ) in Odoo 17
How to Use api.constrains ( ) in Odoo 17How to Use api.constrains ( ) in Odoo 17
How to Use api.constrains ( ) in Odoo 17
 
How to Make a Field read-only in Odoo 17
How to Make a Field read-only in Odoo 17How to Make a Field read-only in Odoo 17
How to Make a Field read-only in Odoo 17
 
Easter in the USA presentation by Chloe.
Easter in the USA presentation by Chloe.Easter in the USA presentation by Chloe.
Easter in the USA presentation by Chloe.
 
Education and training program in the hospital APR.pptx
Education and training program in the hospital APR.pptxEducation and training program in the hospital APR.pptx
Education and training program in the hospital APR.pptx
 
Finals of Kant get Marx 2.0 : a general politics quiz
Finals of Kant get Marx 2.0 : a general politics quizFinals of Kant get Marx 2.0 : a general politics quiz
Finals of Kant get Marx 2.0 : a general politics quiz
 
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptx
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptxPractical Research 1: Lesson 8 Writing the Thesis Statement.pptx
Practical Research 1: Lesson 8 Writing the Thesis Statement.pptx
 
Patient Counselling. Definition of patient counseling; steps involved in pati...
Patient Counselling. Definition of patient counseling; steps involved in pati...Patient Counselling. Definition of patient counseling; steps involved in pati...
Patient Counselling. Definition of patient counseling; steps involved in pati...
 
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptxClinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
 
CapTechU Doctoral Presentation -March 2024 slides.pptx
CapTechU Doctoral Presentation -March 2024 slides.pptxCapTechU Doctoral Presentation -March 2024 slides.pptx
CapTechU Doctoral Presentation -March 2024 slides.pptx
 
How to Solve Singleton Error in the Odoo 17
How to Solve Singleton Error in the  Odoo 17How to Solve Singleton Error in the  Odoo 17
How to Solve Singleton Error in the Odoo 17
 
The basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptxThe basics of sentences session 10pptx.pptx
The basics of sentences session 10pptx.pptx
 
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdfMaximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
 
CAULIFLOWER BREEDING 1 Parmar pptx
CAULIFLOWER BREEDING 1 Parmar pptxCAULIFLOWER BREEDING 1 Parmar pptx
CAULIFLOWER BREEDING 1 Parmar pptx
 
AUDIENCE THEORY -- FANDOM -- JENKINS.pptx
AUDIENCE THEORY -- FANDOM -- JENKINS.pptxAUDIENCE THEORY -- FANDOM -- JENKINS.pptx
AUDIENCE THEORY -- FANDOM -- JENKINS.pptx
 

Agile development using SCRUM

  • 1. Agile Development with Scrum and XP Joe Drumgoole http://twitter.com/jdrumgoole
  • 2. A Little Bit Of History Requirements Functional Spec Design Implementation Test Deploy 23 July 2010 http://twitter.com/jdrumgoole 2
  • 3. Why Waterfall Sucks • Can’t tell good software by observation • What we see changes what we want • Users are rotten at articulating their desires – Obsessed with How rather than What • Domain knowledge car crash • Requirements change over time • Responsiveness 23 July 2010 http://twitter.com/jdrumgoole 3
  • 4. Waterfall Works… • When specs are detailed and unchanging • E.g X400, TCP/IP stack, SMTP etc. • Requirement to deliver all at once e.g CREST • Minimal technical innovation required • UI Free Deployments • Project team uses appropriate process/tools 23 July 2010 http://twitter.com/jdrumgoole 4
  • 5. Performance Potential Mentor Move Support Manage 23 July 2010 http://twitter.com/jdrumgoole 5
  • 6. Software Sector • Highly Motivated individuals • Don’t need more process • Need more mentoring • .. So PRINCE2/Six Sigma etc. Won’t help • Some things need lots of process – Pharma, Big Oil, Agriculture – Software development ain’t one of them 23 July 2010 http://twitter.com/jdrumgoole 6
  • 7. Conway’s Law Organisations which design systems … are constrained to produce designs which are copies of the communications structures of these organisations 23 July 2010 http://twitter.com/jdrumgoole 7
  • 8. Software Development • Takes 15 minutes to get in the zone • Interrupts reset the 15 minute timer • Takes 6 months to build product value • Takes 18 months to build market value • Great developers don’t know how they do it • 10000 hours of practice (Outliers) 23 July 2010 http://twitter.com/jdrumgoole 8
  • 9. Agile Manifesto Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan http://agilemanifesto.org/ 23 July 2010 http://twitter.com/jdrumgoole 9
  • 10. What does this mean? • Avoiding Software Engineering • Mostly we don’t know what we are doing • … so do less of it until we do know • Lets look at some specific processes Extreme Programming & SCRUM 23 July 2010 http://twitter.com/jdrumgoole 10
  • 11. XP & SCRUM • Loose Definitions –XP is what the programmers do –SCRUM is what the management do 23 July 2010 http://twitter.com/jdrumgoole 11
  • 12. Extreme Programming • On site Customer • User Stories • Simplest possible Design • Pair Programming • Short Iterations • Test Driven Development • Refactoring • Continuous Integration • Incremental Releases • Visibility 23 July 2010 http://twitter.com/jdrumgoole 12
  • 13. XP: On Site Customer • Customer available to team • Detailed domain knowledge • Understanding of ROI • Explains priorities from a business perspective • Balances effort /reward • Builds a relationship with team 23 July 2010 http://twitter.com/jdrumgoole 13
  • 14. XP : User Stories • Simple stories that detail end-user functions • Written by the user • Fit on a single card • Focus on simple incremental improvements • Prune the backlog regularily • Priorities driven by customer demands 23 July 2010 http://twitter.com/jdrumgoole 14
  • 15. XP: Simplest Possible Design • Over Architecture • You are probably building the wrong thing • Linear list/flat file preferred to DB table • Validate that the feature is desired • Optimise performance as a refactoring • Sometimes slow is good enough 23 July 2010 http://twitter.com/jdrumgoole 15
  • 16. XP : Pair Programming • Most difficult XP practice to adopt • Not a master/slave, mentor/acolyte Role • A sharing by peers • Oversight at the coal face • The minute you leave the code your knowledge decays exponentially • Moment of creation • Eliminates “ownership issues” 23 July 2010 http://twitter.com/jdrumgoole 16
  • 17. Short Iterations • Don’t go dark • Validate your assumptions • Get customer feedback early and often • Don’t do work on non-essential stuff • Discover changes in priorities • Making a wrong turn at the start 23 July 2010 http://twitter.com/jdrumgoole 17
  • 18. Test Driven Development • Write the tests first • Tests fail initially • Tests start to pass as code gets written • Refactoring breaks tests and then passes • Unit Tests (class level) • Acceptances Tests (end user level) • Use automation (xUnit, Hudson, Ant etc.) • If it doesn’t have a test it doesn’t exist • Design for automated test 23 July 2010 http://twitter.com/jdrumgoole 18
  • 19. Refactoring • Driven by user stories • Performance demands a new sort • Flat files cannot be restructured for new data • Increase users from 10 to 1000 • Environment changes (Windows to Linux) • Software Rot reduction 23 July 2010 http://twitter.com/jdrumgoole 19
  • 20. Continuous Integration • Single Code Repository • Automate the Build • Make The Build Self Testing • Everyone commits to mainline everyday • Every commit builds the system • Keep the build fast • Test in a production clone • Make it easy to get a production copy 23 July 2010 http://twitter.com/jdrumgoole 20
  • 21. Incremental Releases • Get the smallest feature working • Use tests to validate working system • Make sure each release modifies a small part of the system • Understand all changes • Focus on end-to-end functionality 23 July 2010 http://twitter.com/jdrumgoole 21
  • 22. Visibility • Broken tests detected and fixed • Broken builds detected and fixed • Clear stats on: – No of builds – No of tests – No of deployments – Development is Data Centric 23 July 2010 http://twitter.com/jdrumgoole 22
  • 23. XP : Velocity • An understanding of how many stories we can complete • Measured like the weather • Feedback loop leads to consistent stories 23 July 2010 http://twitter.com/jdrumgoole 23
  • 24. XP : Example Velocity 350 Example Velocity for SaaS Project 300 250 Tickets Closed 200 150 Total 100 50 0 Sprints (Two Weeks) 23 July 2010 http://twitter.com/jdrumgoole 24
  • 25. XP: 80/20 Rule 120 Example Velocity for SaaS Project Example Velocity for SaaS Project 100 80 Tickets Closed 60 KP DR 40 20 0 Sprints (Two Weeks) Sprints (Two Weeks) 23 July 2010 http://twitter.com/jdrumgoole 25
  • 26. Velocity Errors • Need to focus on consistent sprint tasks • Tasks must be > 4 hrs • Tasks must be < 16 hrs • Break up or coalesce • Product Backlog too coarse grained • 80/20 rule goes for performance 23 July 2010 http://twitter.com/jdrumgoole 26
  • 27. Exercise • Write two User Stories for your software 23 July 2010 http://twitter.com/jdrumgoole 27
  • 28. SCRUM Scrum is an agile process that allows us to focus on delivering the highest business value in the shortest time 23 July 2010 http://twitter.com/jdrumgoole 28
  • 29. General George Patton A good plan, violently executed now, is better than a perfect plan next week 23 July 2010 http://twitter.com/jdrumgoole 29
  • 30. Its Been Around a While • Jeff Sutherland – Initial scrums at Easel Corp in 1993 – IDX and 500+ people doing Scrum – Scrum presented at OOPLSA 96 • Ken Schwaber – Scrum presented at OOPSLA 96 – Author of three books on Scrum • Mike Beedle – Scrum patterns in PLOPD4 • Ken Schwaber and Mike Cohn – Co-founded Scrum Alliance in 2002 23 July 2010 http://twitter.com/jdrumgoole 30
  • 31. SCRUM Users • Microsoft • Intuit • Yahoo • Nielsen Media • Google • First American Real Estate • Electronic Arts • BMC Software • Philips • John Deere • Siemens • Lexis Nexis • Nokia • Sabre • IBM • Salesforce.com • Capital One • Time Warner • BBC • Oce 23 July 2010 http://twitter.com/jdrumgoole 31
  • 32. Key Facets • Self-organizing teams • Product progresses in a series of two- to four-week “sprints” • Requirements are captured as items in a list of “product backlog” • No specific engineering practices prescribed • Uses generative rules to create an agile environment for delivering projects • One of the “agile processes” 23 July 2010 http://twitter.com/jdrumgoole 32
  • 33. SCRUM Overview 23 July 2010 http://twitter.com/jdrumgoole 33
  • 34. The Sprint – Coin of the Realm • A release is broken down into sprints • Sprints are of fixed identical duration – Helps manage velocity – Helps keep a rhythm • Team decides sprint duration • No changes during a sprint 23 July 2010 http://twitter.com/jdrumgoole 34
  • 35. Scrum Structure • Roles – Product Owner – Scrum Master – Team • Processes – Sprint Planning – Daily Scrum Meeting – Sprint Review – Sprint Retrospective • Artefacts – Product Backlog – Sprint Backlog – Burn Down Charts 23 July 2010 http://twitter.com/jdrumgoole 35
  • 36. Roles: Product Owner • Define the features of the product • Decide on release date and content • Be responsible for the profitability of the product (ROI) • Prioritize features according to market value • Adjust features and priority every iteration, as needed • Accept or reject work results 23 July 2010 http://twitter.com/jdrumgoole 36
  • 37. Roles : Scrum Master • Represents management to the project • Responsible for enacting Scrum values and practices • Removes impediments • Ensure that the team is fully functional and productive • Enable close cooperation across all roles and functions • Shield the team from external interferences 23 July 2010 http://twitter.com/jdrumgoole 37
  • 38. Roles: The Team • Typically 5-9 people • Cross-functional: – Programmers, testers, user experience designers, etc. • Members should be full-time – May be exceptions (e.g., database administrator) • Teams are self-organizing – Ideally, no titles but rarely a possibility • Membership should change only between sprints 23 July 2010 http://twitter.com/jdrumgoole 38
  • 39. Process : Sprint Planning • The Product Backlog 23 July 2010 http://twitter.com/jdrumgoole 39
  • 40. Processes : Sprint Planning • Sprint Prioritization – Analyse and evaluate sprint backlog – Takes account of changing business priorities – Define Sprint Goal – Feed into Sprint Plan 23 July 2010 http://twitter.com/jdrumgoole 40
  • 41. Processes : Sprint Plan • Decide how to achieve sprint goal • Create sprint backlog from product backlog – A list of product backlog tasks aligned with goal • Time estimates for sprint backlog • Sprint backlog is the Sprint Plan 23 July 2010 http://twitter.com/jdrumgoole 41
  • 42. Example : Product Backlog • Product Backlog : Invoicing System Feature Development Effort (Days) Allow login using facebook credentials 5 Generate PDF copies of invoices 7 Graph credit risk 4 Send duplicates of all invoices 3 Annotate invoice 3 Customise invoice look and feel 5 Support multi-currency 10 Support time sheets for work 10 Store list of clients and allow editing 4 23 July 2010 http://twitter.com/jdrumgoole 42
  • 43. Exercise • Prioritise Two Features • Write sprint backlog with estimates • Present to group 23 July 2010 http://twitter.com/jdrumgoole 43
  • 44. Process : The Daily Scrum • Parameters – Daily – 15-minutes – Stand-up • Not for problem solving – Whole world is invited – Only team members, ScrumMaster, product owner, can talk • Helps avoid other unnecessary meetings 23 July 2010 http://twitter.com/jdrumgoole 44
  • 45. Process : Daily Scrum • Three Questions for each Team Member – What did you do yesterday? – What will you do today? – Is there anything in your way? • Not status updates for Scrum Master • Commitments to your peers • Keeps SCRUM moving forward 23 July 2010 http://twitter.com/jdrumgoole 45
  • 46. Processes : Sprint Review • Team presents Sprint Goal • Ideally a Demo • Informal – 2-hour prep time rule – No slides • Whole team participates • Invite the world 23 July 2010 http://twitter.com/jdrumgoole 46
  • 47. Process : Sprint Retrospective • Periodically take a look at what is and is not working • Typically 15–30 minutes • Done after every sprint • Whole team participates – ScrumMaster – Product owner – Team – Possibly customers and others 23 July 2010 http://twitter.com/jdrumgoole 47
  • 48. Processes : Sprint Retrospective Start Doing Stop Doing Continue Doing 23 July 2010 http://twitter.com/jdrumgoole 48
  • 49. Artefacts : Product Backlog • The engine that drives scrum • All desired work (from users perspective) • Articulated as value delivered to customer • Prioritised by Product Owner • Should have rough development estimates • Reprioritised at the start of each sprint 23 July 2010 http://twitter.com/jdrumgoole 49
  • 50. Artefacts : Product Backlog • Avoids “infrastructure” • Avoids “architecture astronauts” • Focuses all efforts on business value • Sprint Backlog articulates technical issues • Anyone can add to the backlog • Product Owner sets priority • Starvation is healthy 23 July 2010 http://twitter.com/jdrumgoole 50
  • 51. Artefacts : Sprint Backlog • Sprint Goal – Centralising paradigm of the overall sprint – Put an umbrella over a number of backlog items – Can be one backlog item • Example – Support multiple users per account – Integrate Google Docs – Support Sage Accounting 23 July 2010 http://twitter.com/jdrumgoole 51
  • 52. Artefacts : Sprint Backlog • Individuals sign up for work of their own choosing – Work is never assigned, collective ownership • Estimated work remaining is updated daily • Any team member can add, delete or change the sprint backlog • Work for the sprint emerges • If work is unclear, define a sprint backlog item with a larger amount of time and break it down later • Update work remaining as more becomes known 23 July 2010 http://twitter.com/jdrumgoole 52
  • 53. Artefacts : Sprint Backlog • Sprint Tasks – Each task 8-16 hours – Should be achievable by any team member – Task time limits avoids “skunk works” 23 July 2010 http://twitter.com/jdrumgoole 53
  • 54. Artefacts : Burn Down Chart 23 July 2010 http://twitter.com/jdrumgoole 54
  • 55. Agile Deployment • Use what works for you • Phase 1 – Test Driven Development – Continuous Integration • Phase 2 – Continuous Integration – Shorter release cycles 23 July 2010 http://twitter.com/jdrumgoole 55
  • 56. What can go wrong Internally? • No onsite customer • Sprints too long • TDD Lip service (all tests pass, nothing works) • Techno Bigotry – The solution to everything is a NoSQL Db • Over architecting solutions 23 July 2010 http://twitter.com/jdrumgoole 56
  • 57. What can go wrong Externally? • No management buy in • Expectations that 12 month long waterfall schedules will hit their dates • Expectations of Quarterly “move the market” releases • No domain expertise • The blame game 23 July 2010 http://twitter.com/jdrumgoole 57
  • 58. Tools Overview • Source Code Control • Ticket/Story Tracking • Burn Down Charts • Sprints • Continuous Integration • Unit Testing • Acceptance Testing 23 July 2010 http://twitter.com/jdrumgoole 58
  • 59. Source Code Control • Subversion – Centralised – Mature – Good tool support – Lots of hosting providers – TortoiseSVN for Windows Clients • GitHub – Distributed – Younger Lineage – Better for Branching – A few hosting providers 23 July 2010 http://twitter.com/jdrumgoole 59
  • 60. Tickets: Trac • Trac – Open Source – Simple wiki and ticketing support – Integration with Mylyn – Lots of hosting providers – Very simple clean interface – Can be deployed on-premise – Nice integration with subversion 23 July 2010 http://twitter.com/jdrumgoole 60
  • 61. Tickets : Assembla • Nice Ticket interface • Mylyn integration for Eclipse • Client interface with good scrum support • Good wiki integration • Good Multi-project support 23 July 2010 http://twitter.com/jdrumgoole 61
  • 62. Tickets: JIRA • JIRA – Hosted or on-premise – Great ticketing system – Lots of features and integrations – Comes with full development suite – $125 a month for 5 developers 23 July 2010 http://twitter.com/jdrumgoole 62
  • 63. Burn Down : Charts • Assembla • Wush • Pretty easy to knock out in Excel – If they come for free, use them – Don’t pay for them – Consider tracking Unit tests and Tickets Closed 23 July 2010 http://twitter.com/jdrumgoole 63
  • 64. Sprints • Wush • Assembla • JIRA – All support sprint structures – Progress indicators – Correlation with source code control system • Backlog management is hard in Wush • Multi-projects hard in Wush 23 July 2010 http://twitter.com/jdrumgoole 64
  • 65. Continuous Integration • Hudson – Apache, easy to setup, works for all scripted builds – Great UI • Cruise Control – Older than hudson, but does .NET stuff • Continuum – Apache project, primarily Java builds • Bamboo – Slick but need to pay for it 23 July 2010 http://twitter.com/jdrumgoole 65
  • 66. Unit Testing • Various xUnit Frameworks • Use one • Good integration with eclipse for JUnit • Every language has a framework • http://en.wikipedia.org/wiki/List_of_unit_testing_fra meworks (66 listed) 23 July 2010 http://twitter.com/jdrumgoole 66
  • 67. Acceptance Testing • Selenium – Plugin and IDE – Stores web requests and results – Reports success/failure • FIT – Create “fixtures” in Word/Excel – Test using FIT library 23 July 2010 http://twitter.com/jdrumgoole 67
  • 68. Summary • Get the individual activities working • Get the group activities working • Embraced rather than imposed • Automation really helps • Deliver value before delivering a sea change • Start Small 23 July 2010 http://twitter.com/jdrumgoole 68
  • 69. Deming In God We Trust. All others bring data. 23 July 2010 http://twitter.com/jdrumgoole 69
  • 70. Thanks 23 July 2010 http://twitter.com/jdrumgoole 70
  • 71. Back 23 July 2010 http://twitter.com/jdrumgoole 71

Hinweis der Redaktion

  1. Needwatefall picture here
  2. Analysis of buildings vs analysis of softwareDECnet Phase VPicture of an oil tanker
  3. Sometimes you just have to fire all the unhappy people
  4. Oracle’s struggles
  5. Thumbnails in PutPlace
  6. Break into boxes and redraw