EDD
Yes! We’re looking for a better name
Error Driven Development
1. Customer satisfaction by early and continuous delivery of valuable software
2. Welcome changing requirements, even in late development
3. Working software is delivered frequently (weeks rather than months)
4. Close, daily cooperation between business people and developers
5. Projects are built around motivated individuals, who should be trusted
6. Face-to-face conversation is the best form of communication (co-location)
7. Working software is the principal measure of progress
8. Sustainable development, able to maintain a constant pace
9. Continuous attention to technical excellence and good design
10.Simplicity—the art of maximizing the amount of work not done—is essential
11.Best architectures, requirements, and designs emerge from self-organizing teams
12.Regularly, the team reflects on how to become more effective, and adjusts accordingly
The Manifesto for Agile Software Development
If you break something, no problem.
If you break it again, something bad is happening.
- Toni Navarro, the Battlefront guy
Remember TDD?
Why we are not writing software by TDD?
Feedback welcome!
Google Form with two questions
Why are we avoiding TDD?
How can we start using TDD?
Why we are not writing software by TDD?
- Usually, we don’t make mistakes
- We are not proficient with the testing framework
- TDD takes time: it slows the team
- The architecture is not test friendly
- Lazyness: “it’s just a small change”
- As it’s just a good practice, the team avoids it
Error Driven Development
We must reproduce bugs with tests
before fixing them
F: Usually, we don’t make mistakes
EDD: Let’s focus bugs: the mistake was done
F: We are not proficient with the testing framework
EDD: Now, you must learn it
F: TDD takes time: it slows the team
EDD: Bugfixing is not faster than that
F: The architecture is not test friendly
EDD: There’s always a way to test
F: Lazyness: “it’s just a small change”
EDD: Ok for TDD, but not for EDD: Write that test
F: As it’s just a good practice, the team avoids it
EDD: Now, testing is a must
The life without EDD
S1E1
Bug A
Bug A
Fixing the Bug A
Bug A
Fixing the Bug A
Yay!
Bug A
Fixing the Bug A
Yay!
Someone does something bad
The life without EDD
S1E2
Bug B
Bug B
Fixing the Bug B
Bug B Bug C
Fixing the Bug B
Bug B Bug C
Fixing the Bug B
Fixing the Bug C
The life with EDD
S2E1
Bug D
Reproduce Bug D
Bug D
Reproduce Bug D
Bug D
Fixing the Bug D
Reproduce Bug D
Bug D Bug E
Fixing the Bug D
Reproduce Bug EReproduce Bug D
Bug D Bug E
Fixing the Bug D
Reproduce Bug EReproduce Bug D
Bug D Bug E
Fixing the Bug EFixing the Bug D
Reproduce Bug EReproduce Bug D
Bug D Bug E
Fixing the Bug D
Yay!
Fixing the Bug E
Reproduce Bug EReproduce Bug D
Bug D Bug E Bug F
Fixing the Bug EFixing the Bug D
PLEASEadopt EDD as a must
THANKS!questions?

Introducing EDD: Error Driven Development

  • 1.
    EDD Yes! We’re lookingfor a better name Error Driven Development
  • 3.
    1. Customer satisfactionby early and continuous delivery of valuable software 2. Welcome changing requirements, even in late development 3. Working software is delivered frequently (weeks rather than months) 4. Close, daily cooperation between business people and developers 5. Projects are built around motivated individuals, who should be trusted 6. Face-to-face conversation is the best form of communication (co-location) 7. Working software is the principal measure of progress 8. Sustainable development, able to maintain a constant pace 9. Continuous attention to technical excellence and good design 10.Simplicity—the art of maximizing the amount of work not done—is essential 11.Best architectures, requirements, and designs emerge from self-organizing teams 12.Regularly, the team reflects on how to become more effective, and adjusts accordingly The Manifesto for Agile Software Development
  • 4.
    If you breaksomething, no problem. If you break it again, something bad is happening. - Toni Navarro, the Battlefront guy
  • 5.
  • 6.
    Why we arenot writing software by TDD? Feedback welcome! Google Form with two questions Why are we avoiding TDD? How can we start using TDD?
  • 7.
    Why we arenot writing software by TDD? - Usually, we don’t make mistakes - We are not proficient with the testing framework - TDD takes time: it slows the team - The architecture is not test friendly - Lazyness: “it’s just a small change” - As it’s just a good practice, the team avoids it
  • 8.
    Error Driven Development Wemust reproduce bugs with tests before fixing them
  • 9.
    F: Usually, wedon’t make mistakes EDD: Let’s focus bugs: the mistake was done
  • 10.
    F: We arenot proficient with the testing framework EDD: Now, you must learn it
  • 11.
    F: TDD takestime: it slows the team EDD: Bugfixing is not faster than that
  • 12.
    F: The architectureis not test friendly EDD: There’s always a way to test
  • 13.
    F: Lazyness: “it’sjust a small change” EDD: Ok for TDD, but not for EDD: Write that test
  • 14.
    F: As it’sjust a good practice, the team avoids it EDD: Now, testing is a must
  • 15.
  • 16.
  • 17.
  • 18.
    Bug A Fixing theBug A Yay!
  • 19.
    Bug A Fixing theBug A Yay! Someone does something bad
  • 20.
  • 21.
  • 22.
  • 23.
    Bug B BugC Fixing the Bug B
  • 24.
    Bug B BugC Fixing the Bug B Fixing the Bug C
  • 25.
    The life withEDD S2E1
  • 26.
  • 27.
  • 28.
    Reproduce Bug D BugD Fixing the Bug D
  • 29.
    Reproduce Bug D BugD Bug E Fixing the Bug D
  • 30.
    Reproduce Bug EReproduceBug D Bug D Bug E Fixing the Bug D
  • 31.
    Reproduce Bug EReproduceBug D Bug D Bug E Fixing the Bug EFixing the Bug D
  • 32.
    Reproduce Bug EReproduceBug D Bug D Bug E Fixing the Bug D Yay! Fixing the Bug E
  • 33.
    Reproduce Bug EReproduceBug D Bug D Bug E Bug F Fixing the Bug EFixing the Bug D
  • 34.
  • 35.