DBT Framework for Story Implementation

by Alex Yakyma
Define-Build-Test (or DBT) is one of the seven agile practices that scale (see "Scaling Software Agility" by Leffingwell). And even though organizing successful agile development at scale is a sum of a whole number of techniques and approaches, DBT paradigm is something to start with as it is the most important step to efficient value creation.

Let’s consider the anatomy of a DBT effort.

Product owner defines a story for the team so that it is understandable enough to be estimated and so the team could commit to deliver the story within a sprint. A developer writes the code that implements the functionality of the user story and tester performs the verification. These are the three logical steps that each DBT team performs. Although there is a number of important nuances relevant to successful deployment of this practice. Let’s consider them in more detail.

Roles overlap. Developer and tester may very actively contribute to the definition. Product owner may sometimes help them test it (in fact, it is not uncommon that product owner writes cucumber tests, for example). Developers may and actually should help testing it via implementing module and unit test as well as system tests. Testers may help with the implementation; I had a chance to witness that as well. Although it is still very important that only product owner can accept (or not accept) the ideas that define the functionality. Same way developer and tester have their exclusive authority to decide how to implement the story. At the same time:

The role overlap is the evidence of effective self-organization within a DBT team, it fosters creative thinking and innovation.

Iterative nature. It is important that the team performs all the three “steps” in creating user value, however it is also crucial how exactly they do that. If a DBT team performs these steps sequentially and in a single pass then they are actually “waterfalling” the story implementation. Here are the reasons why this is not a very good idea:

• Product owner has no chance to efficiently re-define the story
• Batches between the “steps” are too large
• Developers and testers have little chance to efficiently manage technical risks

Indeed what happens is a big batch of story scenarios, business rules, and conditions create even bigger batch of conditional flows, data structures and interfaces that in turn influence testing. Uncertainty of the outcome grows disproportionally. Also these large batches inhibit feedback and communication within the DBT team. And even more importantly:

If the team fails to deliver full user story within a sprint, they deliver zero user value.

There is an alternative way – a multi-cycle DBT effort. This way we reduce the batches because instead of “passing” the entire whole story to implementation, we take a slice of value at a time. Same way as we split user stories into smaller stories, we split story into slices which we don’t have to consider as stories (no need to estimate them, or write acceptance criteria separately for them and so on). A good set of approaches of how to do it can be found in a post by Bill Wake . In this case DBT-effort looks like this:

This way we avoid the “snowball effect” of batches which helps keeping the outcome within much more predictable time boundaries. Also a “vertical slice” of a user story gives the product owner immediate opportunity to evaluate her assumptions. Developers and testers also drive out most of the risks this way, because this tiny slice goes thru the entire system vertically and makes all the system layers “work together” to perform a valuable function. We have selected just one of the examples of splitting story into two DBT cycles based on “Main functionality – Everything else” approach. But there can be many other ways too. Also, there can be more than just two such cycles.

Another important takeaway is that:

Effective product owner works with the team at the level of a DBT cycle, which supports effective just-in-time requirements elaboration.

Now, if the team fails to deliver the entire scope of a story they can still finalize their current cut of the story (the output of the currently finished DBT cycle) and, if the product owner accepts that, count it as user value (say 3 points out of a 5-point story). With this approach teams understand their velocity better as well as their burn-down chart becomes more reliable sprint tracking tool.

DBT formations. Even though we call an individual agile team a DBT team emphasizing that they can define and implement their each backlog item, the implementation of each user story is not precisely done by the whole team. Instead, DBT formations self-organize around each user story.

DBT formations have the following characteristics:

• They are the groups of at least 1 developer, 1 tester and the product owner
• Product owner is always shared across multiple DBT formations within the team
• A DBT formation emerges around a user story and dissolves after the story is completed

In other words, DBT formation is a small team, a subset of the agile team they belong to. It emerges and lives for as long as the user story requires and then the new formations organize around the next stories and so on. Efficient dynamics of DBT formations foster:

• Collective code ownership
• Continuous refactoring
• Knowledge sharing
• Quality

Indeed, team members rotate across different areas of the codebase each time they organize into DBT formations and thus exchange information very efficiently within the formation itself as well as with the rest of the team. Also they keep the code clean because each time they encounter someone else's code that already starts smelling, they just improve the design so that a) they could effectively work with it and b) other DBT formations could add new functionality faster in the near future. The quality of the system functionality maintains high because DBT formation starts catching defects in early cycles which minimizes required rework associated with bug fixing during the implementation.


  1. I am looking your upcoming post, really unique information you have shared here, keep your blog as updated.
    Software testing training in chennai

  2. It was clear to understand the concept of dbt framework, thanks admin.
    Selenium Training in Chennai

  3. I would like to add your post in my RSS feed, can you update your blog regularly.
    Qtp training in Chennai|Loadrunner Training

  4. Thanks for Sharing the valuable information and thanks for sharing the wonderful article..We are glad to see such a wonderful article..
    QTP Training in Chennai | QTP Training Institute in Chennai | QTP Training

  5. Useful post.A debt of gratitude is in order for sharing this post. A lot of chances are accessible in IT parts. Programming testing has an incredible breadth in today's IT industry. Begin your profession in testing field. Taking preparing will help you to accomplish a particular position.
    Software Testing Training in Chennai | Testing Training in Chennai | Software Training institutes in Chennai

  6. Excellent sharing. Testing is a wonderful field for IT peoples. Want to learn Selenium Training reach GangBoard. Hadoop Online Training

  7. The best thing is that your blog really informative thanks for your great information!
    erp in chennai

  8. Excellent blog. I dont know Java but after read this wonderful blog now I am writing very big java program also. Really I thanks lot kindly keep updating, I referred this blog more of my friends. No.1 CCNA Training in Chennai | No.1 CCNP Training in Chennai

  9. Candid institute Spring and Hibernate course provides a comprehensive introduction to Spring and Hibernate open source frameworks as well as Web Services and AJAX. Suitable for both Spring3/Hibernate3 and Spring4/Hibernate4, the course includes coverage of the core Spring and Hibernate capabilities, as well as the integration capabilities provided by Spring.
    spring and hibernate training in chennai


  10. Needed to compose you a very little word to thank you yet again regarding the nice suggestions you’ve contributed here.


  11. I and my friends were going through the nice, helpful tips from the blog then the sudden came up with an awful suspicion I never expressed respect to the website owner for those secrets.
    big data training in bangalore

  12. Superb! I found some useful information in your blog, it was awesome to read.Thank you for sharing.Best Electrical Project Center in Chennai | Best Electrical Project Center in Velachery

  13. Very good informative article. Thanks for sharing such nice article, keep on up dating such good articles.
    Austere Technologies. Best Cloud Solution services company. For more information please visit www.austretech.com



  15. Hi, am a big follower of your blog. I am really happy to found such a helpful and fascinating post that is written in well manner.

    mobile website builder


  16. I wish to show thanks to you just for bailing me out of this particular trouble.As a result of checking through the net and meeting techniques that were not productive, I thought my life was done.
    Advanced Selenium Training in Chennai

  17. I read our full content was really amazing,then the this more important in my part of life.
    The given information very impressed for me really so nice content.

    white label website builder

  18. It’s very useful site for learn. This information’s are very helpful to us. It will improve my knowledge. Thank you for sharing this wonderful site.
    LoadRunner Training in Chennai | LoadRunner Training | LoadRunner Course in Chennai | Best LoadRunner Training Institute in Chennai

  19. Inspiring writings and I greatly admired what you have to say , I hope you continue to provide new ideas for us all and greetings success always for you.
    Summer Camp Training in Chennai | Summer Camp Training in Madipakkam

  20. It is very useful information. It will help to improve my knowledge in Selenium. Thank you for sharing this awesome site.
    Selenium training Chennai | Selenium testing training in Chennai | Best selenium training in Chennai | Selenium classes in Chennai


    Join in Avinash College Of Commerce for Best career in commerce

  22. I have read your blog its very attractive and impressive. I like it your blog.DotNet Project Center in Chennai | DotNet Project in Velachery

  23. Thanks for posting this useful content, Good to know about new things here..Embedded Project Center in Chennai | Embedded Project Center in Velachery

  24. Thanks for posting this useful content, Good to know about new things here..PHP Project Center in Chennai | PHP Project Center in Velachery

  25. Thanks for sharing this informative blog.I have read your blog and I gathered some valuable information from this blog...Embedded Project Center in Chennai | Embedded Project Center in Velachery

  26. Its really nice and informative, thanks for sharing this great content to my vision. Keep blogging like this..Java Project Center in Chennai | Java Project Center in Velachery

  27. I have read your blog its very attractive and impressive. I like it your blog...PHP Project Center in Chennai | PHP Project Center in Velachery

  28. Really enjoying your sharing, you have a great teaching style and make these new concepts..VLSI Project Center in Chennai | VLSI Project Center in Velachery

  29. Nice blog. Thank you for sharing. The information you shared is very effective for learners.VLSI Project Center in Chennai | VLSI Project Center in Velachery

  30. Hi Thanks for the nice information its very useful to read your blog. We provide best Block Chain Services

  31. Thank you for sharing this valuable information. But get out of this busy life and find some peace with a beautiful trip book best Andaman honeymoon packages

  32. Great post. Wonderful information and really very much useful. Thanks for sharing and keep updating.
    Construction erp software in chennai