D³, Debug Driven Development
Development mechanics have taken a rather huge paper in the programming world in late years. Nowadays you can read all kind of funny names for development techniques such as TDD, XP, Scrum, etc. In the python world TDD (Test Driven Development) has become highly popular and this is reflected everywhere (eg: Django apps has a full testing suite out of the box).
However this never suited the way I work. Since I’ve learned all by myself, I grew my own development mechanics based on 5 basics steps:
- Choose feature to work on
- Write a small mock up of what it will look like
- Test it as a user (it’s critical that you test the feature as a user, not an automated process)
- Fix bugs found
- Repeat 3 and 4 ad eternum (or as necessary)
This not only allows you to be your own user, but it also gives you an early feeling of what the feature is like and what it bring to the table for the whole product.
Since being highly product focused, D³ matches quite nicely with rapid development techniques. It becomes an iterative process with small cycles forcing the programmer to focus on what matters, no fancy designs.
Now I think, Are there any others debug driven developers out there? How does this all fit with “Premature optimization is the mother of all evil”? I understand that TDD leads to clean code, but in the practice most projects never get 100% code coverage or 100% test pass.
How about focusing on the project and not the development process as a standalone science? Leave the polishing for later! Focus on what matter and bring features to your product!
But the second as important thing is that writing tests forces me to make better design decisions about my code & the result becomes much more maintainable.
If you are sold on this idea don’t ask your boss if he agrees with you. As a web professional writing tests should simply be a “way of life” and a tool to write quality code.
TDD: Describe the one person in your school building that you could not survive without.
Mine is my classroom-neighbor. She’s been teaching for fifteen years and has been my rock this year — even going as far as insisting she’s not my rock because I’m doing great on my own, which is its own form of support and validation. But the reality is: she is never anything but glad to see me, has infinite patience for all my questions, and always always makes the time to help me out. She’s amazing.