Greg's blog

To content | To menu | To search

Keyword - agile

Entries feed - Comments feed

Thursday, December 6 2007

TDD: Does writing software backwards really improve quality?

If you have adopted agile development methods, or even just interested in them, Dr. Dobb's published an article Test Driven Development: Does writing software backwards really improve quality? where they tried to evaluate if Test Driven Development (TDD) really improves code quality. The article shows that TDD helps to have less critical (none where found by the QA in the article's case) bugs and less bugs in general. The developer's feedback - the one who wrote the code used in the evaluation - is worth the reading:

  • The TDD code was refactored several times during development. Methods were created, then changed, and then changed again with each revision, resulting in code that was tighter or clearer. The developer felt like the code went through an extensive proofreading cycle similar to what is done for newspapers, magazines, or the like.
  • There was a freedom of experimentation that led to better design decisions. Once the first working version of a class method was completed and properly tested, the developer could then try new design ideas. The unit tests quickly confirmed or denied that the new code worked, providing a digital safety net.
  • On a number of occasions, the developer found that the TDD method forced him to slow down and think more carefully about what he was trying to accomplish. Rather than just banging out code to get the job done, he focused on writing high quality code.

This encourage me to try it in my current projects :). As they say in the introduction, writing tests before the code is not so natural ;) at first sight, but it could be fine to spend less time on bug squashing by taking some additional time to write the unit tests before.

Thursday, November 15 2007

Software Development round up #1

As you may know, I'm not a software developer. However I like this domain and am always happy to write some code when I need (or not ;) ). Recently I am focusing on web development (with Django) and Agile methods.

pad.jpg

I am reading Practices of an Agile Developer which is a very interesting book. It brings some real feedback and experience, as well as good advices. I believe it is useful not only in software development but more generally in any IT (or even non-IT) project. The table of content gives a good overview of the book and the practices. The next step is to choose a agile method to focus on. Intuitively I may try eXtreme Programming at first.

python-logo.gif

Vim has always seemed to fit my needs. But I didn't try an IDE for ages, so now I give a try to PyDev, a plugin to Eclipse. I can't bear using arrow keys!!!! So I'll need to quickly find how to use vim modes. I found Vimplugin and viPlugin. After a quick comparison, I'll see which to choose. viPlugin is not free (neither as in free beer nor as in freedom). Thus I'll use vimplugin!

I have seen this list of python IDEs. Wing appears to be a good tool but is not free (as in freedom or even as in free beer!).

I also begin to learn more about Continuous Integration which is an important practice of Agile methods. I aim to integrate all agile practices in my programming tasks.