experiment-driven-development

Experiment-Driven Development In A Nutshell

Test-Driven Development (TDD) and Behavior-Driven Development (BDD) are popular agile development techniques. However, they don’t measure application usage or provide guidance on gaining feedback from customers. Experiment-Driven Development (EDD) is a scientific, fact-based approach to software development using agile principles.

Understanding Experiment-Driven Development

While TDD and BDD help developers enhance code quality and ensure that it behaves according to spec, EDD helps identify the features that should be developed. In other words, what will become the spec.

EDD is driven by split A/B testing, where a baseline (control) sample is compared to several single-variable samples to determine which of the two choices improves response rates. 

This form of feedback collection avoids the need to conduct user surveys, which are often time-consuming for both parties and can be prone to bias.

Implementing Experiment-Driven Development

To implement EDD, it is a matter of following these four steps:

  1. Start with a hypothesis. Instead of beginning with a user story, the project team starts by defining a hypothesis related to customers, problems, solutions, value, or growth. For example, a growth hypothesis may be “A virtual shoe fitting station in every store will increase shoe sales by 30%.” 
  2. Identify the experiment. In the second step, take the highest-priority hypothesis and define the smallest experiment that will prove or disprove it. The shoe store may decide to install a virtual fitting station in five stores to begin with and measure the impact on sales.
  3. Run the experiment. This may include creating a minimum viable product (MVP) and then measuring progress based on validated learning from the end-user. Here, many businesses choose to run experiments based on the Build/Measure/Learn (MVPe) loop. 
  4. Debrief. For example, what are the observations? How were the validated learnings used? Would more time spent on planning have helped? Based on the results, the team may choose to pivot to a new hypothesis. Alternatively, they may choose to persevere with the current hypothesis or discard it entirely and move to the next one.

Experiment-Driven Development Benefits

When a business incorporates EDD to complement an existing approach such as TDD or BDD, it can realize several benefits.

These include:

  • Structure. EDD allows project teams to ask and answer questions in a structured, measurable process. Since ideas are validated by hypotheses, teams also avoid the testing of ideas simply to validate individual egos or hunches. 
  • Versatility. Although its scientific foundations may suggest otherwise, Experiment-Driven Development can be used across any business in any industry. It is not specifically designed for use by R&D teams. 
  • Objectivity and efficiency. All agile methodologies dictate that value to the end-user is the primary goal. However, the hypothesis-driven approach of EDD forces teams to define value through validated learning and not assumption alone. Efficiency is also increased by building an MVP instead of focusing on superfluous features that provide little benefit to the end-user.

Key takeaways

  • Experiment-Driven Development is a hypothesis-driven approach to software development that is based on fact.
  • Experiment-Driven Development incorporates A/B testing, where a baseline sample is compared to a single-variable sample to determine which sample delivers a better outcome. This allows the business to formulate, test, and evaluate hypotheses.
  • Experiment-Driven Development complements approaches such as TDD and BDD, but it does not replace them. EDD can be used in any industry or department as an efficient and (most importantly) objective means of agile software development.

Related Business Concepts

scaled-agile-lean-development
Scaled Agile Lean Development (ScALeD) helps businesses discover a balanced approach to agile transition and scaling questions. The ScALed approach helps businesses successfully respond to change. Inspired by a combination of lean and agile values, ScALed is practitioner-based and can be completed through various agile frameworks and practices.
test-driven-development
As the name suggests, TDD is a test-driven technique for delivering high-quality software rapidly and sustainably. It is an iterative approach based on the idea that a failing test should be written before any code for a feature or function is written. Test-Driven Development (TDD) is an approach to software development that relies on very short development cycles.
feature-driven-development
Feature-Driven Development is a pragmatic software process that is client and architecture-centric. Feature-Driven Development (FDD) is an agile software development model that organizes workflow according to which features need to be developed next.
extreme-programming
eXtreme Programming was developed in the late 1990s by Ken Beck, Ron Jeffries, and Ward Cunningham. During this time, the trio was working on the Chrysler Comprehensive Compensation System (C3) to help manage the company payroll system. eXtreme Programming (XP) is a software development methodology. It is designed to improve software quality and the ability of software to adapt to changing customer needs.
dual-track-agile
Product discovery is a critical part of agile methodologies, as its aim is to ensure that products customers love are built. Product discovery involves learning through a raft of methods, including design thinking, lean start-up, and A/B testing to name a few. Dual Track Agile is an agile methodology containing two separate tracks: the “discovery” track and the “delivery” track.
timeboxing
Timeboxing is a simple yet powerful time-management technique for improving productivity. Timeboxing describes the process of proactively scheduling a block of time to spend on a task in the future. It was first described by author James Martin in a book about agile software development.
rapid-application-development
RAD was first introduced by author and consultant James Martin in 1991. Martin recognized and then took advantage of the endless malleability of software in designing development models. Rapid Application Development (RAD) is a methodology focusing on delivering rapidly through continuous feedback and frequent iterations.
mvc-framework
The MVC framework is a predictable software design pattern separated into three main components and suitable for many programming languages. The goal of the MVC framework is to help structure the code-base and separate application concerns into three components: View, Model, and Controller.
agile-methodology
Agile started as a lightweight development method compared to heavyweight software development, which is the core paradigm of the previous decades of software development. By 2001 the Manifesto for Agile Software Development was born as a set of principles that defined the new paradigm for software development as a continuous iteration. This would also influence the way of doing business.
devsecops
DevSecOps is a set of disciplines combining development, security, and operations. It is a philosophy that helps software development businesses deliver innovative products quickly without sacrificing security. This allows potential security issues to be identified during the development process – and not after the product has been released in line with the emergence of continuous software development practices.

Read Next: Business AnalysisCompetitor Analysis, Continuous InnovationAgile MethodologyLean StartupBusiness Model InnovationProject Management.

Main Free Guides:

Scroll to Top
FourWeekMBA
[class^="wpforms-"]
[class^="wpforms-"]