Wednesday, December 19, 2007

We're on a cascade testing phase!

Honestly, there's not much excitement in delivering 359,000 lines of code of your project X into the hands of a fierce team of testers... but that's exactly where my team is right now.

SD Times reports that "A survey found that developers spent more time troubleshooting application problems than programming".

Scary! Most of us plan our schedules with lots of programming tasks and underestimate time for functional testing. That survey shows that a problem found after programming has a high cost. And if that survey predicts what the testing phase for project X is gonna be so expensive, the least we can do is to something from the experience...

What can we do? I find really interesting the philosophy that inspires Lean thinking and Agile practices. Although the project X I mentioned before is not driven by an agile methodology, we started applying Test driven development and Continuous Integration practices. I have learned a lot this year applying this practices, and I hope my team too.

The winning formula is:

Design Patterns + TDD + CI = better-tested-more maintainable code.

TDD, in my opinion, leads to a simple design which does exactly what's intended and can be continuously verified.
Design Patterns help us embrace change by making code thats more cohesive and less coupled.
CI is our feedback machine.

I don't think our software is bug-free, we are just starting to mature on this practices, but I hope to report some good things a few weeks from now. Until then, I encourage you to read more about TDD, CI and design patterns. I'm sharing some great podcasts and blogs on this page, and wish to hear your suggestions and comments. Make great code!

No comments: