SlideShare a Scribd company logo
1 of 44
Download to read offline
Testing in an Agile Context

    “What he needs is some way to pay back. Not some way to borrow more.”
       - Will Rogers



                                                                 Chris Sterling
                                                                           VP of Engineering
                                                                            AgileEVM Inc.
                                                                Web: www.AgileEVM.com
                                                              Email: chris@agileevm.com
                                                            Blog: www.GettingAgile.com
                                                           Follow Me on Twitter: @csterwa
                                                        Hash Tag for Presentation: #swdebt
Wednesday, June 8, 2011
Chris Sterling – Sterling Barton, LLC
             Partner, Sterling Barton, LLC
             Author of Book “Managing Software
             Debt: Building for Inevitable
             Change”
             Consults on software technology,
             Agile technical practices, Scrum,
             and effective management
             techniques
                                                 Email: chris@sterlingbarton.com
                                                 Web: http://www.agileevm.com
             Certified Scrum Trainer              Blog: http://www.gettingagile.com
                                                 Follow me on Twitter: @csterwa
             Innovation Games® Trained
             Facilitator
             Open Source Developer
  © 2009-2010,                                                                  2


Wednesday, June 8, 2011
Presentation Agenda

            Agile - Find Issues Earlier

            Effects of Quality Debt

            Definition of Done

            Quality Dashboard

            Agile Test and Integration Strategies

                 Acceptance Test-Driven Development

                 Test-Driven Design

                 Agile Regression Test Triangle

            Configuration Management Debt Strategy

            Questions and Answers

  © 2009-2010,                                        3


Wednesday, June 8, 2011
Why Use Agile Methods?




  © 2009-2010,                4


Wednesday, June 8, 2011
“Stuff” Rolls Down Hill...

                      Requirements
                      Specification


                                  Design



                                           Construction


                                                      Testing
                                                    (Validation)


                                                              Integration



                                                                       Maintenance

  © 2009-2010,                                                                       5


Wednesday, June 8, 2011
“Stuff” Rolls Down Hill...

                      Requirements
                      Specification


                                  Design



                                           Construction


                                                      Testing
                                                    (Validation)
           This is too
       late to find issues                                     Integration
          and respond
           effectively
                                                                       Maintenance

  © 2009-2010,                                                                       5


Wednesday, June 8, 2011
The Agile Manifesto*
       We are uncovering better ways of developing software by doing it and
           helping others do it. Through this work we have come to value:

        Individuals and interactions over processes and tools
       Working software over comprehensive documentation
             Customer collaboration over contract negotiation
                 Responding to change over following a plan
                   That is, while there is value in the items on the right,
                             we value the items on the left more.”

                          Kent Beck           James Grenning   Robert C. Martin
                          Mike Beedle         Jim Highsmith    Steve Mellor
                          Arie van Bennekum   Andrew Hunt      Ken Schwaber
                          Alistair Cockburn   Ron Jeffries     Jeff Sutherland
                          Ward Cunningham     Jon Kern         Dave Thomas
                          Martin Fowler       Brian Marick


                                                                                                             55
                                                                                                              6
  © 2009-2010,                                                                    * www.agilemanifesto.org

Wednesday, June 8, 2011
Principles Behind the Agile Manifesto*
     1.    Our highest priority is to satisfy the customer through early and continuous delivery of
           valuable software.

     2.    Welcome changing requirements, even late in development. Agile processes harness
           change for
           the customer's competitive advantage.
     3.    Deliver working software frequently, from a couple of weeks to a couple of months, with
           a preference to the shorter timescale.
     4.    Business people and developers must work together daily throughout the project.
     5.    Build projects around motivated individuals. Give them the environment and support
           they need, and trust them to get the job done.
     6.    The most efficient and effective method of conveying information to and within a
           development team is face-to-face conversation.
     7.    Working software is the primary measure of progress.
     8.    Agile processes promote sustainable development. The sponsors, developers, and
           users should be able to maintain a constant pace indefinitely.
     9.    Continuous attention to technical excellence and good design enhances agility.
     10.   Simplicity--the art of maximizing the amount of work not done--is essential.
     11.   The best architectures, requirements, and designs emerge from self-organizing teams.

     12.       At regular intervals, the team reflects on how to become more effective, then tunes and
  © 2009-2010,
               adjusts its behavior accordingly.                                                             56
                                                                                                              7
                                                                       * www.agilemanifesto.org/principles

Wednesday, June 8, 2011
An Agile Method:
     Scrum




  © 2009-2010,            8


Wednesday, June 8, 2011
Effects of Quality Debt

    “Promises make debt, and debt makes promises.” - Dutch Proverb




                                                                     9


Wednesday, June 8, 2011
Effect of Project Constraints on Quality




  © 2009-2010,                                  10


Wednesday, June 8, 2011
Effect of Project Constraints on Quality




  © 2009-2010,                                  10


Wednesday, June 8, 2011
“For every [dollar] of competitive advantage gained by
     cutting quality, it costs $4 to restore it; and software is
     an organizational asset and decisions to cut quality
     must be made by executive management and
     reflected in the financial statements.” - Ken Schwaber




  © 2009-2010,                                                     11


Wednesday, June 8, 2011
Lack of emphasis on software quality attributes
     contributes to decay




  © 2009-2010,                                         12


Wednesday, June 8, 2011
Software Quality Attributes Defined




  © 2009-2010,                            13


Wednesday, June 8, 2011
Software Quality Attributes Rating Tool




  © 2009-2010,                                 14


Wednesday, June 8, 2011
Sonar: Quality Dashboard




  © 2009-2010,                  15


Wednesday, June 8, 2011
Agile Test and Integration Strategies




  © 2009-2010,                               16


Wednesday, June 8, 2011
Definition of Done

     Defines work products that will be
     delivered with each feature as it is
     ready for acceptance.

     Typical entries...

             Code includes unit tests, reviewed,
             checked in

             Tests described and executed

             Build, release notes

             Compliance documentation
             updated to include current
             functionality
                                                   Example	
  of	
  “average”	
  DoD
             What else?

  © 2009-2010,                                                                         17


Wednesday, June 8, 2011
Definition of Done as a Compliance Checklist
                 Acceptance defined criteria for each    Code checked in with reference to
                 user story                             US#/Task#

                 Unit tests written and passed          Tested on FE

                 Code compiles with no errors and no    Integration test written & passes
                 warnings
                                                        Test code reviewed
                 New code doesn’t break existing code
                                                        Environment requirements documented
                 Test case review (Dev to review test
                 case written)                          Interface document updated/added and
                                                        checked in to SVN
                 Architectural impact assessed and
                 artifacts updated if necessary         Acceptance criteria verified complete

                 Comments in code                       All P1-P3 bugs for the story are closed

                 Error codes added                      Test approves user story

                 Code reviewed by peer                  Story demonstrated to product owner

  © 2009-2010,                                                                                    18


Wednesday, June 8, 2011
Another Definition of Done Example

                                                                                          Story and
                             Unit Tests          Functional        Acceptance                              Build System
                                                                                         Task Status
                              Passed            Tests Passed       Tests Passed                             Compiles
                                                                                          Updated
                   Story



                                                                      Code                 Code
                              Code is           Code Meets                                                 Published to
                                                                   Implements            Comments
                             Reviewed            Standards                                                  Dev Server
                                                                     Logging              Updated


                              Product               Past             Product             No Compile
                                                                                                              Demo
                              Owner             Acceptance           Owner               Warnings in
                                                                                                            Prepared
                   Sprint




                               Demo             Tests Passed       Acceptance              Code

                                         Bugs              Deployment          Release                 Code
                                     Committed in             Docs              Notes              Repository
                                    Sprint Resolved         Updated            Updated              is Tagged



                             Release to               Deployment                    Deployment               Release
                               Stage                    Testing                        Docs                   Notes
                   Release




                               Server                   Passed                       Delivered              Delivered

                                          Infrastructure            Integrated                      Build
                                          Change Notes             Stress Testing                Requirements
                                            Delivered                 Passed                         Met


  © 2009-2010,                                                                                                            19


Wednesday, June 8, 2011
No matter what, the cost of addressing software
     debt increases with time.




  © 2009-2010,                                         20


Wednesday, June 8, 2011
Acceptance Test-Driven Development




  © 2009-2010,                            21


Wednesday, June 8, 2011
Test-Driven Design (TDD) - Basic “Flow”




  © 2009-2010,                                 22

Wednesday, June 8, 2011
Test-Driven Design (TDD) - Basic “Flow”


                             Write	
  
                          Failing	
  Test




  © 2009-2010,                                 22

Wednesday, June 8, 2011
Test-Driven Design (TDD) - Basic “Flow”


                             Write	
  
                          Failing	
  Test



                                            Make	
  Test	
  
                                              Pass



  © 2009-2010,                                                 22

Wednesday, June 8, 2011
Test-Driven Design (TDD) - Basic “Flow”


                                          Write	
  
                                       Failing	
  Test



                  Refactor	
  to	
                       Make	
  Test	
  
                  Acceptable	
  
                    Design                                 Pass



  © 2009-2010,                                                              22

Wednesday, June 8, 2011
Test-Driven Design (TDD) - Basic “Flow”


                                          Write	
  
                                       Failing	
  Test



                  Refactor	
  to	
                       Make	
  Test	
  
                  Acceptable	
  
                    Design                                 Pass



  © 2009-2010,                                                              22

Wednesday, June 8, 2011
Test-Driven Design (TDD)

    Lets go through an example session using TDD to drive the implementation of a
    user story to meeting its acceptance criteria.




                                                                                    23


Wednesday, June 8, 2011
Jitter – Example TDD Session


             Fake micro-blogging tool named “Jitter” is made by Seattle-
             based fictitious company that focuses on enabling coffee
             injected folks to write short messages and have common online
             messaging shorthand expanded for easy reading. The user story
             we are working on is:

          So it is easier to read their kid’s messages, Mothers want to
                 automatically expand common shorthand notation

             The acceptance criteria for this user story are:

                 LOL, AFAIK, and TTYL are expandable

                 Expand lower and upper case versions of shorthand



  © 2009-2010,                                                               24

Wednesday, June 8, 2011
Expand LOL to “laughing out loud”


     public class WhenMotherWantsToExpandMessagesThatContainShorthandTest {

             @Test

             public void shouldExpandLOLToLaughingOutLoud() {

                 JitterSession session = mock(JitterSession.class);

                 when(session.getNextMessage()).thenReturn("Expand LOL please");

                 MessageExpander expander = new MessageExpander(session);

                 assertThat(expander.getNextMessage(),

                     equalTo("Expand laughing out loud please"));

             }

     }




  © 2009-2010,                                                                     25

Wednesday, June 8, 2011
But wait…what if…?


            What if LOL is written in lower case?

            What if it is written as “Lol”? Should it be expanded?

            What if some variation of LOL is inside a word?

            What if characters surrounding LOL are symbols, not letters?

     Write these down as upcoming programmer tests as comments so I
      don’t forget them.
     // shouldExpandLOLIfLowerCase
     // shouldNotExpandLOLIfMixedCase
     // shouldNotExpandLOLIfInsideWord
     // shouldExpandIfSurroundingCharactersAreNotLetters




  © 2009-2010,                                                             26

Wednesday, June 8, 2011
Expand LOL If Lower Case


     @Test
     public void shouldExpandLOLIfLowerCase() {
             when(session.getNextMessage()).thenReturn("Expand lol please");
             MessageExpander expander = new MessageExpander(session);
             assertThat(expander.getNextMessage(),
                 equalTo("Expand laughing out loud please"));
     }

     This forced use of java.util.regex.Pattern to handle case
      insensitivity.
     public String getNextMessage() {
             String msg = session.getNextMessage();
             return Pattern.compile("LOL”, Pattern.CASE_INSENSITIVE)
                 .matcher(msg).replaceAll("laughing out loud");
     }


  © 2009-2010,                                                                 27

Wednesday, June 8, 2011
Don’t Expand “Lol” – Mixed-Case


     @Test
     public void shouldNotExpandLOLIfMixedCase() {
             String msg = "Do not expand Lol please";
             when(session.getNextMessage()).thenReturn(msg);
             MessageExpander expander = new MessageExpander(session);
             assertThat(expander.getNextMessage(), equalTo(msg));
     }

     This forced me to stop using Pattern.CASE_INSENSITIVE flag
      in pattern compilation. Only use “LOL” or “lol” for now.
     public String getNextMessage() {
             String msg = session.getNextMessage();
             return Pattern.compile("LOL|lol").matcher(msg)
                           .replaceAll("laughing out loud");
     }


  © 2009-2010,                                                          28

Wednesday, June 8, 2011
Don’t Expand “LOL” If Inside Word


     @Test
     public void shouldNotExpandLOLIfInsideWord() {
             String msg = "Do not expand PLOL or LOLP or PLOLP please";
             when(session.getNextMessage()).thenReturn(msg);
             MessageExpander expander = new MessageExpander(session);
             assertThat(expander.getNextMessage(), equalTo(msg));
     }



     The pattern matching is now modified to use spaces around
      each variation of valid LOL shorthand.
     return Pattern.compile("sLOLs|slols").matcher(msg)
             .replaceAll("laughing out loud");




  © 2009-2010,                                                            29

Wednesday, June 8, 2011
Expand “LOL” If Not Inside Word


     @Test
     public void shouldExpandIfSurroundingCharactersAreNotLetters() {
             when(session.getNextMessage()).thenReturn("Expand .lol! please");
             MessageExpander expander = new MessageExpander(session);
             assertThat(expander.getNextMessage(),
                 equalTo("Expand .laughing out loud! please"));
     }



     Final implementation of pattern matching code:
     return Pattern.compile("bLOLb|blolb").matcher(msg)
             .replaceAll("laughing out loud");




  © 2009-2010,                                                                   30

Wednesday, June 8, 2011
The Agile Regression Testing Triangle*




  © 2009-2010,            * The Agile Triangle has been modified from Mike Cohn’s original version   31


Wednesday, June 8, 2011
The Agile Regression Testing Triangle*




                               Automated Unit Tests
                              Make up largest portion of
                               regression tests and are
                             developed by programmers

  © 2009-2010,            * The Agile Triangle has been modified from Mike Cohn’s original version   31


Wednesday, June 8, 2011
The Agile Regression Testing Triangle*



                                        Integration Tests
                                           Automated &
                                            Exploratory

                               Automated Unit Tests
                              Make up largest portion of
                               regression tests and are
                             developed by programmers

  © 2009-2010,            * The Agile Triangle has been modified from Mike Cohn’s original version   31


Wednesday, June 8, 2011
The Agile Regression Testing Triangle*

Smoke++ Tests
Risk-based UI &
                                        Integration Tests
 API Automated
                                           Automated &
      Tests
                                            Exploratory

                               Automated Unit Tests
                              Make up largest portion of
                               regression tests and are
                             developed by programmers

  © 2009-2010,            * The Agile Triangle has been modified from Mike Cohn’s original version   31


Wednesday, June 8, 2011
Configuration Management Debt

    “If releases are like giving birth, then you must be doing something wrong.”
       - Robert Benefield




                                                                                   32


Wednesday, June 8, 2011
The Power of 2 Scripts: Deploy and Rollback




  © 2009-2010,                                     33


Wednesday, June 8, 2011
Thank you

    Questions and Answers




                            34


Wednesday, June 8, 2011
Chris Sterling – Sterling Barton, LLC
             Partner, Sterling Barton, LLC
             Author of Book “Managing Software
             Debt: Building for Inevitable
             Change”
             Consults on software technology,
             Agile technical practices, Scrum,
             and effective management
             techniques
                                                 Email: chris@sterlingbarton.com
                                                 Web: http://www.agileevm.com
             Certified Scrum Trainer              Blog: http://www.gettingagile.com
                                                 Follow me on Twitter: @csterwa
             Innovation Games® Trained
             Facilitator
             Open Source Developer
  © 2009-2010,                                                                 35


Wednesday, June 8, 2011

More Related Content

What's hot

2011 pmo symposium Bridging the Agile-to-PMO Communication Gap
2011 pmo symposium Bridging the Agile-to-PMO Communication Gap2011 pmo symposium Bridging the Agile-to-PMO Communication Gap
2011 pmo symposium Bridging the Agile-to-PMO Communication GapBrent Barton
 
Mary Poppendieck: Agile under contract
Mary Poppendieck: Agile under contractMary Poppendieck: Agile under contract
Mary Poppendieck: Agile under contractAgile Lietuva
 
Mature agile teams essential patterns v4 - half day workshop
Mature agile teams   essential patterns v4 - half day workshopMature agile teams   essential patterns v4 - half day workshop
Mature agile teams essential patterns v4 - half day workshopdrewz lin
 
Rawsthorne dan - scrum the big picture
Rawsthorne dan - scrum the big pictureRawsthorne dan - scrum the big picture
Rawsthorne dan - scrum the big pictureMagneta AI
 
Dollars and Dates are Killing Agile
Dollars and Dates are Killing AgileDollars and Dates are Killing Agile
Dollars and Dates are Killing AgileChris Sterling
 
"Lean software development: discovering waste" by Mary Poppendieck
"Lean software development: discovering waste" by Mary Poppendieck"Lean software development: discovering waste" by Mary Poppendieck
"Lean software development: discovering waste" by Mary PoppendieckOperae Partners
 
Dnv Improving Your Process Performances With Agile
Dnv   Improving Your Process Performances With AgileDnv   Improving Your Process Performances With Agile
Dnv Improving Your Process Performances With AgileGeorge Ang
 
Bv Eng & Agile Specs For Scrum U.Key
Bv Eng & Agile Specs For Scrum U.KeyBv Eng & Agile Specs For Scrum U.Key
Bv Eng & Agile Specs For Scrum U.KeyLeanAgileTraining
 
The Agile Gap: Closing it with User Experience
The Agile Gap: Closing it with User ExperienceThe Agile Gap: Closing it with User Experience
The Agile Gap: Closing it with User Experiencekalebwalton
 
Boeing Webinar - Integrating Quality in Portfolio Management - oct 2010
Boeing Webinar - Integrating Quality in Portfolio Management -  oct 2010Boeing Webinar - Integrating Quality in Portfolio Management -  oct 2010
Boeing Webinar - Integrating Quality in Portfolio Management - oct 2010Brent Barton
 
5 Ingredients Of The EVM Secret Sauce V Final
5 Ingredients Of The EVM Secret Sauce V Final5 Ingredients Of The EVM Secret Sauce V Final
5 Ingredients Of The EVM Secret Sauce V Finalphlckb
 
The Stream Process™ for Defining Projects
The Stream Process™ for Defining ProjectsThe Stream Process™ for Defining Projects
The Stream Process™ for Defining ProjectsOneSpring LLC
 
Identifying Managing & Eliminating Technical Debt
Identifying Managing & Eliminating Technical DebtIdentifying Managing & Eliminating Technical Debt
Identifying Managing & Eliminating Technical DebtAgileDad
 
One XP Experience: Introducing Agile (XP) Software Development into a Culture...
One XP Experience: Introducing Agile (XP) Software Development into a Culture...One XP Experience: Introducing Agile (XP) Software Development into a Culture...
One XP Experience: Introducing Agile (XP) Software Development into a Culture...David Leip
 
Agile Project Management and Scrum Introduction
Agile Project Management and Scrum IntroductionAgile Project Management and Scrum Introduction
Agile Project Management and Scrum IntroductionEric Krock
 
Simple Measurements #2
Simple Measurements #2Simple Measurements #2
Simple Measurements #2Schalk Cronjé
 
Can MVP help Government innovate like a Startup?
Can MVP help Government innovate like a Startup?Can MVP help Government innovate like a Startup?
Can MVP help Government innovate like a Startup?aboobier
 

What's hot (20)

2011 pmo symposium Bridging the Agile-to-PMO Communication Gap
2011 pmo symposium Bridging the Agile-to-PMO Communication Gap2011 pmo symposium Bridging the Agile-to-PMO Communication Gap
2011 pmo symposium Bridging the Agile-to-PMO Communication Gap
 
Mary Poppendieck: Agile under contract
Mary Poppendieck: Agile under contractMary Poppendieck: Agile under contract
Mary Poppendieck: Agile under contract
 
Mature agile teams essential patterns v4 - half day workshop
Mature agile teams   essential patterns v4 - half day workshopMature agile teams   essential patterns v4 - half day workshop
Mature agile teams essential patterns v4 - half day workshop
 
Rawsthorne dan - scrum the big picture
Rawsthorne dan - scrum the big pictureRawsthorne dan - scrum the big picture
Rawsthorne dan - scrum the big picture
 
Business value of Agile : A People10 Showcase
Business value of Agile : A People10 ShowcaseBusiness value of Agile : A People10 Showcase
Business value of Agile : A People10 Showcase
 
Dollars and Dates are Killing Agile
Dollars and Dates are Killing AgileDollars and Dates are Killing Agile
Dollars and Dates are Killing Agile
 
"Lean software development: discovering waste" by Mary Poppendieck
"Lean software development: discovering waste" by Mary Poppendieck"Lean software development: discovering waste" by Mary Poppendieck
"Lean software development: discovering waste" by Mary Poppendieck
 
Value stream mapping
Value stream mapping  Value stream mapping
Value stream mapping
 
Dnv Improving Your Process Performances With Agile
Dnv   Improving Your Process Performances With AgileDnv   Improving Your Process Performances With Agile
Dnv Improving Your Process Performances With Agile
 
Bv Eng & Agile Specs For Scrum U.Key
Bv Eng & Agile Specs For Scrum U.KeyBv Eng & Agile Specs For Scrum U.Key
Bv Eng & Agile Specs For Scrum U.Key
 
The Agile Gap: Closing it with User Experience
The Agile Gap: Closing it with User ExperienceThe Agile Gap: Closing it with User Experience
The Agile Gap: Closing it with User Experience
 
Boeing Webinar - Integrating Quality in Portfolio Management - oct 2010
Boeing Webinar - Integrating Quality in Portfolio Management -  oct 2010Boeing Webinar - Integrating Quality in Portfolio Management -  oct 2010
Boeing Webinar - Integrating Quality in Portfolio Management - oct 2010
 
5 Ingredients Of The EVM Secret Sauce V Final
5 Ingredients Of The EVM Secret Sauce V Final5 Ingredients Of The EVM Secret Sauce V Final
5 Ingredients Of The EVM Secret Sauce V Final
 
The Stream Process™ for Defining Projects
The Stream Process™ for Defining ProjectsThe Stream Process™ for Defining Projects
The Stream Process™ for Defining Projects
 
Agile Planning
Agile PlanningAgile Planning
Agile Planning
 
Identifying Managing & Eliminating Technical Debt
Identifying Managing & Eliminating Technical DebtIdentifying Managing & Eliminating Technical Debt
Identifying Managing & Eliminating Technical Debt
 
One XP Experience: Introducing Agile (XP) Software Development into a Culture...
One XP Experience: Introducing Agile (XP) Software Development into a Culture...One XP Experience: Introducing Agile (XP) Software Development into a Culture...
One XP Experience: Introducing Agile (XP) Software Development into a Culture...
 
Agile Project Management and Scrum Introduction
Agile Project Management and Scrum IntroductionAgile Project Management and Scrum Introduction
Agile Project Management and Scrum Introduction
 
Simple Measurements #2
Simple Measurements #2Simple Measurements #2
Simple Measurements #2
 
Can MVP help Government innovate like a Startup?
Can MVP help Government innovate like a Startup?Can MVP help Government innovate like a Startup?
Can MVP help Government innovate like a Startup?
 

Viewers also liked

Viewers also liked (6)

Scrum at Scale
Scrum at ScaleScrum at Scale
Scrum at Scale
 
Scrum in eBuddy
Scrum in eBuddyScrum in eBuddy
Scrum in eBuddy
 
Scrum Process Overview
Scrum Process OverviewScrum Process Overview
Scrum Process Overview
 
Practical Guide to Scrum
Practical Guide to ScrumPractical Guide to Scrum
Practical Guide to Scrum
 
Agile explained
Agile explainedAgile explained
Agile explained
 
Agile Scrum Methodology
Agile Scrum MethodologyAgile Scrum Methodology
Agile Scrum Methodology
 

Similar to Testing in an Agile Context 2011

Integrating Quality into Portfolio Management, PMI Silicon Valley Chapter Din...
Integrating Quality into Portfolio Management, PMI Silicon Valley Chapter Din...Integrating Quality into Portfolio Management, PMI Silicon Valley Chapter Din...
Integrating Quality into Portfolio Management, PMI Silicon Valley Chapter Din...Brent Barton
 
SEI Webinar Series: Making Agile Work for You
SEI Webinar Series: Making Agile Work for YouSEI Webinar Series: Making Agile Work for You
SEI Webinar Series: Making Agile Work for YouLa Red DBAccess
 
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...Compuware APM
 
Agile Talk at CSI Chapter, Mumbai
Agile Talk at CSI Chapter, MumbaiAgile Talk at CSI Chapter, Mumbai
Agile Talk at CSI Chapter, MumbaiHiren Doshi
 
Technical Debt
Technical DebtTechnical Debt
Technical DebtRob Myers
 
Corporate presentation tech jini
Corporate presentation   tech jiniCorporate presentation   tech jini
Corporate presentation tech jiniZameer Ahammad
 
Ppwithagileyannhamonqconbeijing 090423081417-phpapp02
Ppwithagileyannhamonqconbeijing 090423081417-phpapp02Ppwithagileyannhamonqconbeijing 090423081417-phpapp02
Ppwithagileyannhamonqconbeijing 090423081417-phpapp02youzitang
 
The Business Analyst’s Critical Role in Agile Projects
The Business Analyst’s Critical Role in Agile ProjectsThe Business Analyst’s Critical Role in Agile Projects
The Business Analyst’s Critical Role in Agile ProjectsTechWell
 
STC Toronto Agile Intro - How can this possibly work?
STC Toronto Agile Intro - How can this possibly work?STC Toronto Agile Intro - How can this possibly work?
STC Toronto Agile Intro - How can this possibly work?Michael Sahota
 
Going agile with scrum
Going agile with scrumGoing agile with scrum
Going agile with scrumMayur Sand
 
Stevan Zovinovic - Testers Agile Pocketbook - EuroSTAR 2012
Stevan Zovinovic - Testers Agile Pocketbook - EuroSTAR 2012Stevan Zovinovic - Testers Agile Pocketbook - EuroSTAR 2012
Stevan Zovinovic - Testers Agile Pocketbook - EuroSTAR 2012TEST Huddle
 
Managing Application Performance: A Simplified Universal Approach
Managing Application Performance: A Simplified Universal ApproachManaging Application Performance: A Simplified Universal Approach
Managing Application Performance: A Simplified Universal ApproachTechWell
 
Creating Successful Change Using Continuous Improvement Methods
Creating Successful Change Using Continuous Improvement MethodsCreating Successful Change Using Continuous Improvement Methods
Creating Successful Change Using Continuous Improvement Methodssaw2w
 

Similar to Testing in an Agile Context 2011 (20)

Integrating Quality into Portfolio Management, PMI Silicon Valley Chapter Din...
Integrating Quality into Portfolio Management, PMI Silicon Valley Chapter Din...Integrating Quality into Portfolio Management, PMI Silicon Valley Chapter Din...
Integrating Quality into Portfolio Management, PMI Silicon Valley Chapter Din...
 
SEI Webinar Series: Making Agile Work for You
SEI Webinar Series: Making Agile Work for YouSEI Webinar Series: Making Agile Work for You
SEI Webinar Series: Making Agile Work for You
 
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...
 
Agile Talk at CSI Chapter, Mumbai
Agile Talk at CSI Chapter, MumbaiAgile Talk at CSI Chapter, Mumbai
Agile Talk at CSI Chapter, Mumbai
 
Technical Debt
Technical DebtTechnical Debt
Technical Debt
 
Corporate presentation tech jini
Corporate presentation   tech jiniCorporate presentation   tech jini
Corporate presentation tech jini
 
Ppwithagileyannhamonqconbeijing 090423081417-phpapp02
Ppwithagileyannhamonqconbeijing 090423081417-phpapp02Ppwithagileyannhamonqconbeijing 090423081417-phpapp02
Ppwithagileyannhamonqconbeijing 090423081417-phpapp02
 
Utah PMA Quarterly Meeting, June, 2009
Utah PMA Quarterly Meeting, June, 2009Utah PMA Quarterly Meeting, June, 2009
Utah PMA Quarterly Meeting, June, 2009
 
The Business Analyst’s Critical Role in Agile Projects
The Business Analyst’s Critical Role in Agile ProjectsThe Business Analyst’s Critical Role in Agile Projects
The Business Analyst’s Critical Role in Agile Projects
 
Agile Methodologies
Agile MethodologiesAgile Methodologies
Agile Methodologies
 
PMI is NOT the enemy
PMI is NOT the enemyPMI is NOT the enemy
PMI is NOT the enemy
 
STC Toronto Agile Intro - How can this possibly work?
STC Toronto Agile Intro - How can this possibly work?STC Toronto Agile Intro - How can this possibly work?
STC Toronto Agile Intro - How can this possibly work?
 
Santoshi_CV_Latest
Santoshi_CV_LatestSantoshi_CV_Latest
Santoshi_CV_Latest
 
Going agile with scrum
Going agile with scrumGoing agile with scrum
Going agile with scrum
 
JitheshRamdas_QA
JitheshRamdas_QAJitheshRamdas_QA
JitheshRamdas_QA
 
Stevan Zovinovic - Testers Agile Pocketbook - EuroSTAR 2012
Stevan Zovinovic - Testers Agile Pocketbook - EuroSTAR 2012Stevan Zovinovic - Testers Agile Pocketbook - EuroSTAR 2012
Stevan Zovinovic - Testers Agile Pocketbook - EuroSTAR 2012
 
Managing Application Performance: A Simplified Universal Approach
Managing Application Performance: A Simplified Universal ApproachManaging Application Performance: A Simplified Universal Approach
Managing Application Performance: A Simplified Universal Approach
 
Creating Successful Change Using Continuous Improvement Methods
Creating Successful Change Using Continuous Improvement MethodsCreating Successful Change Using Continuous Improvement Methods
Creating Successful Change Using Continuous Improvement Methods
 
Psp Tsp Agile 3 1 En
Psp Tsp Agile 3 1 EnPsp Tsp Agile 3 1 En
Psp Tsp Agile 3 1 En
 
SharePoint Conference Recap - Project Server
SharePoint Conference Recap - Project Server SharePoint Conference Recap - Project Server
SharePoint Conference Recap - Project Server
 

More from Chris Sterling

Cloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud ServicesCloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud ServicesChris Sterling
 
The DevOps Revolution And Beyond...
The DevOps Revolution And Beyond...The DevOps Revolution And Beyond...
The DevOps Revolution And Beyond...Chris Sterling
 
From Zero to Continuous Validated Learning: Lean Startup on PaaS
From Zero to Continuous Validated Learning: Lean Startup on PaaSFrom Zero to Continuous Validated Learning: Lean Startup on PaaS
From Zero to Continuous Validated Learning: Lean Startup on PaaSChris Sterling
 
Microservices: Aren't Microservices Just SOA?
Microservices: Aren't Microservices Just SOA?Microservices: Aren't Microservices Just SOA?
Microservices: Aren't Microservices Just SOA?Chris Sterling
 
Reduce Time to Value: Focus First on Configuration Management Debt
Reduce Time to Value: Focus First on Configuration Management DebtReduce Time to Value: Focus First on Configuration Management Debt
Reduce Time to Value: Focus First on Configuration Management DebtChris Sterling
 
Managing Software Debt - Quality Debt Focus - QASIG Kirkland
Managing Software Debt - Quality Debt Focus - QASIG KirklandManaging Software Debt - Quality Debt Focus - QASIG Kirkland
Managing Software Debt - Quality Debt Focus - QASIG KirklandChris Sterling
 
Managing Software Debt Workshop at Intel
Managing Software Debt Workshop at IntelManaging Software Debt Workshop at Intel
Managing Software Debt Workshop at IntelChris Sterling
 
Managing Software Debt - Federal Reserve Bank
Managing Software Debt - Federal Reserve BankManaging Software Debt - Federal Reserve Bank
Managing Software Debt - Federal Reserve BankChris Sterling
 
Managing softwaredebt agilepalooza-redmond-sept2010
Managing softwaredebt agilepalooza-redmond-sept2010Managing softwaredebt agilepalooza-redmond-sept2010
Managing softwaredebt agilepalooza-redmond-sept2010Chris Sterling
 
UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...
UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...
UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...Chris Sterling
 
UW Agile CP202 Class 3 Managing Software Debt
UW Agile CP202 Class 3 Managing Software DebtUW Agile CP202 Class 3 Managing Software Debt
UW Agile CP202 Class 3 Managing Software DebtChris Sterling
 
UW Agile CP202 - Class 1 User Stories
UW Agile CP202 - Class 1 User StoriesUW Agile CP202 - Class 1 User Stories
UW Agile CP202 - Class 1 User StoriesChris Sterling
 
Managing Software Debt Agile Bazaar
Managing Software Debt Agile BazaarManaging Software Debt Agile Bazaar
Managing Software Debt Agile BazaarChris Sterling
 
Intro To Tdd Agile Palooza
Intro To Tdd Agile PaloozaIntro To Tdd Agile Palooza
Intro To Tdd Agile PaloozaChris Sterling
 
Class5 Scaling And Strategic Planning
Class5 Scaling And Strategic PlanningClass5 Scaling And Strategic Planning
Class5 Scaling And Strategic PlanningChris Sterling
 
Executable Specifications Agile Palooza
Executable Specifications Agile PaloozaExecutable Specifications Agile Palooza
Executable Specifications Agile PaloozaChris Sterling
 
Building Integrity In Seminar
Building Integrity In   SeminarBuilding Integrity In   Seminar
Building Integrity In SeminarChris Sterling
 
UW ADC - Course 3 - Class 1 - User Stories And Acceptance Testing
UW ADC - Course 3 - Class 1 - User Stories And Acceptance TestingUW ADC - Course 3 - Class 1 - User Stories And Acceptance Testing
UW ADC - Course 3 - Class 1 - User Stories And Acceptance TestingChris Sterling
 

More from Chris Sterling (18)

Cloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud ServicesCloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud Services
 
The DevOps Revolution And Beyond...
The DevOps Revolution And Beyond...The DevOps Revolution And Beyond...
The DevOps Revolution And Beyond...
 
From Zero to Continuous Validated Learning: Lean Startup on PaaS
From Zero to Continuous Validated Learning: Lean Startup on PaaSFrom Zero to Continuous Validated Learning: Lean Startup on PaaS
From Zero to Continuous Validated Learning: Lean Startup on PaaS
 
Microservices: Aren't Microservices Just SOA?
Microservices: Aren't Microservices Just SOA?Microservices: Aren't Microservices Just SOA?
Microservices: Aren't Microservices Just SOA?
 
Reduce Time to Value: Focus First on Configuration Management Debt
Reduce Time to Value: Focus First on Configuration Management DebtReduce Time to Value: Focus First on Configuration Management Debt
Reduce Time to Value: Focus First on Configuration Management Debt
 
Managing Software Debt - Quality Debt Focus - QASIG Kirkland
Managing Software Debt - Quality Debt Focus - QASIG KirklandManaging Software Debt - Quality Debt Focus - QASIG Kirkland
Managing Software Debt - Quality Debt Focus - QASIG Kirkland
 
Managing Software Debt Workshop at Intel
Managing Software Debt Workshop at IntelManaging Software Debt Workshop at Intel
Managing Software Debt Workshop at Intel
 
Managing Software Debt - Federal Reserve Bank
Managing Software Debt - Federal Reserve BankManaging Software Debt - Federal Reserve Bank
Managing Software Debt - Federal Reserve Bank
 
Managing softwaredebt agilepalooza-redmond-sept2010
Managing softwaredebt agilepalooza-redmond-sept2010Managing softwaredebt agilepalooza-redmond-sept2010
Managing softwaredebt agilepalooza-redmond-sept2010
 
UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...
UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...
UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...
 
UW Agile CP202 Class 3 Managing Software Debt
UW Agile CP202 Class 3 Managing Software DebtUW Agile CP202 Class 3 Managing Software Debt
UW Agile CP202 Class 3 Managing Software Debt
 
UW Agile CP202 - Class 1 User Stories
UW Agile CP202 - Class 1 User StoriesUW Agile CP202 - Class 1 User Stories
UW Agile CP202 - Class 1 User Stories
 
Managing Software Debt Agile Bazaar
Managing Software Debt Agile BazaarManaging Software Debt Agile Bazaar
Managing Software Debt Agile Bazaar
 
Intro To Tdd Agile Palooza
Intro To Tdd Agile PaloozaIntro To Tdd Agile Palooza
Intro To Tdd Agile Palooza
 
Class5 Scaling And Strategic Planning
Class5 Scaling And Strategic PlanningClass5 Scaling And Strategic Planning
Class5 Scaling And Strategic Planning
 
Executable Specifications Agile Palooza
Executable Specifications Agile PaloozaExecutable Specifications Agile Palooza
Executable Specifications Agile Palooza
 
Building Integrity In Seminar
Building Integrity In   SeminarBuilding Integrity In   Seminar
Building Integrity In Seminar
 
UW ADC - Course 3 - Class 1 - User Stories And Acceptance Testing
UW ADC - Course 3 - Class 1 - User Stories And Acceptance TestingUW ADC - Course 3 - Class 1 - User Stories And Acceptance Testing
UW ADC - Course 3 - Class 1 - User Stories And Acceptance Testing
 

Recently uploaded

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 

Recently uploaded (20)

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 

Testing in an Agile Context 2011

  • 1. Testing in an Agile Context “What he needs is some way to pay back. Not some way to borrow more.” - Will Rogers Chris Sterling VP of Engineering AgileEVM Inc. Web: www.AgileEVM.com Email: chris@agileevm.com Blog: www.GettingAgile.com Follow Me on Twitter: @csterwa Hash Tag for Presentation: #swdebt Wednesday, June 8, 2011
  • 2. Chris Sterling – Sterling Barton, LLC Partner, Sterling Barton, LLC Author of Book “Managing Software Debt: Building for Inevitable Change” Consults on software technology, Agile technical practices, Scrum, and effective management techniques Email: chris@sterlingbarton.com Web: http://www.agileevm.com Certified Scrum Trainer Blog: http://www.gettingagile.com Follow me on Twitter: @csterwa Innovation Games® Trained Facilitator Open Source Developer © 2009-2010, 2 Wednesday, June 8, 2011
  • 3. Presentation Agenda Agile - Find Issues Earlier Effects of Quality Debt Definition of Done Quality Dashboard Agile Test and Integration Strategies Acceptance Test-Driven Development Test-Driven Design Agile Regression Test Triangle Configuration Management Debt Strategy Questions and Answers © 2009-2010, 3 Wednesday, June 8, 2011
  • 4. Why Use Agile Methods? © 2009-2010, 4 Wednesday, June 8, 2011
  • 5. “Stuff” Rolls Down Hill... Requirements Specification Design Construction Testing (Validation) Integration Maintenance © 2009-2010, 5 Wednesday, June 8, 2011
  • 6. “Stuff” Rolls Down Hill... Requirements Specification Design Construction Testing (Validation) This is too late to find issues Integration and respond effectively Maintenance © 2009-2010, 5 Wednesday, June 8, 2011
  • 7. The Agile Manifesto* We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.” Kent Beck James Grenning Robert C. Martin Mike Beedle Jim Highsmith Steve Mellor Arie van Bennekum Andrew Hunt Ken Schwaber Alistair Cockburn Ron Jeffries Jeff Sutherland Ward Cunningham Jon Kern Dave Thomas Martin Fowler Brian Marick 55 6 © 2009-2010, * www.agilemanifesto.org Wednesday, June 8, 2011
  • 8. Principles Behind the Agile Manifesto* 1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. 2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. 3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. 4. Business people and developers must work together daily throughout the project. 5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. 6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. 7. Working software is the primary measure of progress. 8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. 9. Continuous attention to technical excellence and good design enhances agility. 10. Simplicity--the art of maximizing the amount of work not done--is essential. 11. The best architectures, requirements, and designs emerge from self-organizing teams. 12. At regular intervals, the team reflects on how to become more effective, then tunes and © 2009-2010, adjusts its behavior accordingly. 56 7 * www.agilemanifesto.org/principles Wednesday, June 8, 2011
  • 9. An Agile Method: Scrum © 2009-2010, 8 Wednesday, June 8, 2011
  • 10. Effects of Quality Debt “Promises make debt, and debt makes promises.” - Dutch Proverb 9 Wednesday, June 8, 2011
  • 11. Effect of Project Constraints on Quality © 2009-2010, 10 Wednesday, June 8, 2011
  • 12. Effect of Project Constraints on Quality © 2009-2010, 10 Wednesday, June 8, 2011
  • 13. “For every [dollar] of competitive advantage gained by cutting quality, it costs $4 to restore it; and software is an organizational asset and decisions to cut quality must be made by executive management and reflected in the financial statements.” - Ken Schwaber © 2009-2010, 11 Wednesday, June 8, 2011
  • 14. Lack of emphasis on software quality attributes contributes to decay © 2009-2010, 12 Wednesday, June 8, 2011
  • 15. Software Quality Attributes Defined © 2009-2010, 13 Wednesday, June 8, 2011
  • 16. Software Quality Attributes Rating Tool © 2009-2010, 14 Wednesday, June 8, 2011
  • 17. Sonar: Quality Dashboard © 2009-2010, 15 Wednesday, June 8, 2011
  • 18. Agile Test and Integration Strategies © 2009-2010, 16 Wednesday, June 8, 2011
  • 19. Definition of Done Defines work products that will be delivered with each feature as it is ready for acceptance. Typical entries... Code includes unit tests, reviewed, checked in Tests described and executed Build, release notes Compliance documentation updated to include current functionality Example  of  “average”  DoD What else? © 2009-2010, 17 Wednesday, June 8, 2011
  • 20. Definition of Done as a Compliance Checklist Acceptance defined criteria for each Code checked in with reference to user story US#/Task# Unit tests written and passed Tested on FE Code compiles with no errors and no Integration test written & passes warnings Test code reviewed New code doesn’t break existing code Environment requirements documented Test case review (Dev to review test case written) Interface document updated/added and checked in to SVN Architectural impact assessed and artifacts updated if necessary Acceptance criteria verified complete Comments in code All P1-P3 bugs for the story are closed Error codes added Test approves user story Code reviewed by peer Story demonstrated to product owner © 2009-2010, 18 Wednesday, June 8, 2011
  • 21. Another Definition of Done Example Story and Unit Tests Functional Acceptance Build System Task Status Passed Tests Passed Tests Passed Compiles Updated Story Code Code Code is Code Meets Published to Implements Comments Reviewed Standards Dev Server Logging Updated Product Past Product No Compile Demo Owner Acceptance Owner Warnings in Prepared Sprint Demo Tests Passed Acceptance Code Bugs Deployment Release Code Committed in Docs Notes Repository Sprint Resolved Updated Updated is Tagged Release to Deployment Deployment Release Stage Testing Docs Notes Release Server Passed Delivered Delivered Infrastructure Integrated Build Change Notes Stress Testing Requirements Delivered Passed Met © 2009-2010, 19 Wednesday, June 8, 2011
  • 22. No matter what, the cost of addressing software debt increases with time. © 2009-2010, 20 Wednesday, June 8, 2011
  • 23. Acceptance Test-Driven Development © 2009-2010, 21 Wednesday, June 8, 2011
  • 24. Test-Driven Design (TDD) - Basic “Flow” © 2009-2010, 22 Wednesday, June 8, 2011
  • 25. Test-Driven Design (TDD) - Basic “Flow” Write   Failing  Test © 2009-2010, 22 Wednesday, June 8, 2011
  • 26. Test-Driven Design (TDD) - Basic “Flow” Write   Failing  Test Make  Test   Pass © 2009-2010, 22 Wednesday, June 8, 2011
  • 27. Test-Driven Design (TDD) - Basic “Flow” Write   Failing  Test Refactor  to   Make  Test   Acceptable   Design Pass © 2009-2010, 22 Wednesday, June 8, 2011
  • 28. Test-Driven Design (TDD) - Basic “Flow” Write   Failing  Test Refactor  to   Make  Test   Acceptable   Design Pass © 2009-2010, 22 Wednesday, June 8, 2011
  • 29. Test-Driven Design (TDD) Lets go through an example session using TDD to drive the implementation of a user story to meeting its acceptance criteria. 23 Wednesday, June 8, 2011
  • 30. Jitter – Example TDD Session Fake micro-blogging tool named “Jitter” is made by Seattle- based fictitious company that focuses on enabling coffee injected folks to write short messages and have common online messaging shorthand expanded for easy reading. The user story we are working on is: So it is easier to read their kid’s messages, Mothers want to automatically expand common shorthand notation The acceptance criteria for this user story are: LOL, AFAIK, and TTYL are expandable Expand lower and upper case versions of shorthand © 2009-2010, 24 Wednesday, June 8, 2011
  • 31. Expand LOL to “laughing out loud” public class WhenMotherWantsToExpandMessagesThatContainShorthandTest { @Test public void shouldExpandLOLToLaughingOutLoud() { JitterSession session = mock(JitterSession.class); when(session.getNextMessage()).thenReturn("Expand LOL please"); MessageExpander expander = new MessageExpander(session); assertThat(expander.getNextMessage(), equalTo("Expand laughing out loud please")); } } © 2009-2010, 25 Wednesday, June 8, 2011
  • 32. But wait…what if…? What if LOL is written in lower case? What if it is written as “Lol”? Should it be expanded? What if some variation of LOL is inside a word? What if characters surrounding LOL are symbols, not letters? Write these down as upcoming programmer tests as comments so I don’t forget them. // shouldExpandLOLIfLowerCase // shouldNotExpandLOLIfMixedCase // shouldNotExpandLOLIfInsideWord // shouldExpandIfSurroundingCharactersAreNotLetters © 2009-2010, 26 Wednesday, June 8, 2011
  • 33. Expand LOL If Lower Case @Test public void shouldExpandLOLIfLowerCase() { when(session.getNextMessage()).thenReturn("Expand lol please"); MessageExpander expander = new MessageExpander(session); assertThat(expander.getNextMessage(), equalTo("Expand laughing out loud please")); } This forced use of java.util.regex.Pattern to handle case insensitivity. public String getNextMessage() { String msg = session.getNextMessage(); return Pattern.compile("LOL”, Pattern.CASE_INSENSITIVE) .matcher(msg).replaceAll("laughing out loud"); } © 2009-2010, 27 Wednesday, June 8, 2011
  • 34. Don’t Expand “Lol” – Mixed-Case @Test public void shouldNotExpandLOLIfMixedCase() { String msg = "Do not expand Lol please"; when(session.getNextMessage()).thenReturn(msg); MessageExpander expander = new MessageExpander(session); assertThat(expander.getNextMessage(), equalTo(msg)); } This forced me to stop using Pattern.CASE_INSENSITIVE flag in pattern compilation. Only use “LOL” or “lol” for now. public String getNextMessage() { String msg = session.getNextMessage(); return Pattern.compile("LOL|lol").matcher(msg) .replaceAll("laughing out loud"); } © 2009-2010, 28 Wednesday, June 8, 2011
  • 35. Don’t Expand “LOL” If Inside Word @Test public void shouldNotExpandLOLIfInsideWord() { String msg = "Do not expand PLOL or LOLP or PLOLP please"; when(session.getNextMessage()).thenReturn(msg); MessageExpander expander = new MessageExpander(session); assertThat(expander.getNextMessage(), equalTo(msg)); } The pattern matching is now modified to use spaces around each variation of valid LOL shorthand. return Pattern.compile("sLOLs|slols").matcher(msg) .replaceAll("laughing out loud"); © 2009-2010, 29 Wednesday, June 8, 2011
  • 36. Expand “LOL” If Not Inside Word @Test public void shouldExpandIfSurroundingCharactersAreNotLetters() { when(session.getNextMessage()).thenReturn("Expand .lol! please"); MessageExpander expander = new MessageExpander(session); assertThat(expander.getNextMessage(), equalTo("Expand .laughing out loud! please")); } Final implementation of pattern matching code: return Pattern.compile("bLOLb|blolb").matcher(msg) .replaceAll("laughing out loud"); © 2009-2010, 30 Wednesday, June 8, 2011
  • 37. The Agile Regression Testing Triangle* © 2009-2010, * The Agile Triangle has been modified from Mike Cohn’s original version 31 Wednesday, June 8, 2011
  • 38. The Agile Regression Testing Triangle* Automated Unit Tests Make up largest portion of regression tests and are developed by programmers © 2009-2010, * The Agile Triangle has been modified from Mike Cohn’s original version 31 Wednesday, June 8, 2011
  • 39. The Agile Regression Testing Triangle* Integration Tests Automated & Exploratory Automated Unit Tests Make up largest portion of regression tests and are developed by programmers © 2009-2010, * The Agile Triangle has been modified from Mike Cohn’s original version 31 Wednesday, June 8, 2011
  • 40. The Agile Regression Testing Triangle* Smoke++ Tests Risk-based UI & Integration Tests API Automated Automated & Tests Exploratory Automated Unit Tests Make up largest portion of regression tests and are developed by programmers © 2009-2010, * The Agile Triangle has been modified from Mike Cohn’s original version 31 Wednesday, June 8, 2011
  • 41. Configuration Management Debt “If releases are like giving birth, then you must be doing something wrong.” - Robert Benefield 32 Wednesday, June 8, 2011
  • 42. The Power of 2 Scripts: Deploy and Rollback © 2009-2010, 33 Wednesday, June 8, 2011
  • 43. Thank you Questions and Answers 34 Wednesday, June 8, 2011
  • 44. Chris Sterling – Sterling Barton, LLC Partner, Sterling Barton, LLC Author of Book “Managing Software Debt: Building for Inevitable Change” Consults on software technology, Agile technical practices, Scrum, and effective management techniques Email: chris@sterlingbarton.com Web: http://www.agileevm.com Certified Scrum Trainer Blog: http://www.gettingagile.com Follow me on Twitter: @csterwa Innovation Games® Trained Facilitator Open Source Developer © 2009-2010, 35 Wednesday, June 8, 2011