Execution Practices on an Agile Project


 

I’m going through the Agile Practice Guide on a systematic basis to review all of its contents.   Chapter 5 covers the implementation of a project in an agile environment.

Section 5.2 of this chapter covers the eight most common agile project practices, which are:

5.2.1 Retrospectives

5.2.2 Backlog preparation

5.2.3 Backlog refinement

5.2.4 Daily Standups

5.2.5 Demonstrations/Reviews

5.2.6 Planning for Iteration-Based Agile

5.2.7 Execution Practices that Help Teams Deliver Value

5.2.8 Iterations and Increments Help Deliver Working Product

The first six practices were covered in earlier posts.   The seventh practice is actually a bundle of execution practices that are designed to help quality on the project.

  1. Continuous integration–as each module is designed, the entire product created so far must be retested to make sure that it still works as intended.
  2. Test at all levels
    • Unit testing should be done for the building blocks, and then
    • System-level testing  should be done to make sure that the building blocks are communicating data properly.
    • Smoke testing, also known as “Build Verification Testing”, is a type of software testing that is comprised of a set of tests that aim at ensuring that the most important functions work.  The result of this testing is used to decide if a build is stable enough to proceed with further testing.
    • After smoke testing, regression testing is done.   Regression testing is when you are testing around specific areas of an application where defects have been fixed to ensure that no other issues have been introduced.
    • Agile teams have a strong preference for automated tests that ensure uniformity of testing through the design-test-deliver cycle (see paragraph 3 below regarding ATDD).
  3. Acceptance Test-Driven Development (ATDD)–the entire team gets together ad discusses the acceptance criteria for a work product.   Based on these agreed-upon criteria, the team creates automated tests that will allow the work product to be tested to see if it meets the acceptance criteria.
  4. Test-Driven (TDD) and Behavior-Driven Development (BDD)–the advantage of writing the automated tests before creating the product is that it actually helps people doing the design and it helps mistake-proof the product.
  5. Spikes (timeboxed research or experiments)–spikes are concentrated periods of focus not on creating the product itself, but on doing work which helps facilitate that creation.   They are used when the team needs to learn more about some critical technical or functional elements.   Examples of such research are:
    • estimation
    • acceptance criteria definition
    • understanding work flow

The last practice is the eighth and final one on the list at the top of the post, namely, implementing iterations and increments in order to help deliver work product.   That will be the subject of the next post.

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: