Ed Gibbs: Selling TDD

Ed Gibbs talks about the difficulty in selling Test Driven Development (TDD) to his development staff. I agree with him 100%. I’ve been trying to express the value I’ve found in this technique for quite some time now and am not getting the best reception or adoption from my staff. We still find the majority of the tests are written after development has been completed and at a time when most of the relevant details that should be in the test cases are forgotten due to release schedules.

My first foray into TDD was invaluable and taught me quite a bit about the value of writing tests WITH the code you are writing. I was writing a set of object oriented Python scripts that managed our CVS repository. These scripts were originally written in PERL and I had begun learning Python and wanted a real project to use it on. This was also a very good project for object orientation and objects are something that I really despised doing in PERL, so Python was the obvious choice.

In the decision to rewrite these scripts in Python, I found that Python came with PyUnit and thought it was a great opportunity to try TDD since I had just read Kent Becks book, Test Driven Development: By Example. I’m one of those people that can force himself to try something new out of sheer will, even if I don’t quite believe that it will have benefit.

During the development of these scripts, I created an object model in which I could manage multiple source repositories and perform actions on them such as checking out a workarea, branching the repository, and creating new work areas with new build numbers assigned to them. The application wound up being more than I thought it would be, but I stuck with the TDD approach and wrote my tests.

When we made the decision to move to the Subversion Version Control System, I had quite a bit of refactoring to do in order to support both the CVS repository and the Subversion repository in order to reduce cutover time (we basically had to change a property file when we had completed to move to the new source control system). The tests that I had written during original development were invaluable in reducing the development time in refactoring the base source control objects to support the Subversion system and we wound up with a fairly robust application that supported the original requirements of the CVS repository on Subversion.

The best part is that I knew that all of my requirements were met, because I had the tests to run and prove it.

Even with this (I think pretty compelling) example, the TDD approach has been a hard sell. I think that reason #1 in Eds post is the reason. People just think it will take more time. It does take more time, but not that much and from my experience you really don’t notice it that much. As a matter of fact, for me it added a little extra excitement watching the tests pass at regular intervals during the development cycle. Furthermore, if the time is included in the original schedule, who cares if it takes more time? If you budgeted the time, you’ve set expectations!

Still after all of this, there is resistance. I would be very interested in hearing from others who have successfully implemented this in their organizations. There are instances in which ‘leading by example’ still doesn’t work, as people fear changing what they do and find any reason they can not to. Add to that that if the one “leading” isn’t involved in day to day project work, he doesn’t have the credibility as someone who is. It looks like just another “change” the manager wants to make.

So, if you’ve made this change, I’d be really grateful if you could post your experiences in the comments section of this blog. Tell me about what you did to make this change and, more importantly, the benefits you received as a result of the change. I’d love to read them and have a place where my staff can come and read them as well.

Developer Forced To Stop Development on Mercurial due to BitKeeper License

Ben Collins-Sussman pointed to this blog entry written by a developer on the Mercurial Distributed Version Control System which talks about Larry McVoy contacting his employer about his work on the project. His employer is a licensed user of the BitKeeper software.

I think its sad that an employee of a customer of a software company, with no access to the tools source code, can be told to stop developing open source software because of his use of another software application.

Think about this a minute. Before OpenOffice was useable, what if each developer who had to use Microsoft Word at work was forced to stop working on the software because of their use of the Microsoft products at work?

Much of what is going on in the Bitkeeper world right now was the main reason why there was such an uproar over the licensing of the product when Linus Torvalds started using it to manage the Linux kernel. Looks like the community was right again.

On another note, however, I’m definitely going to take a look at Mercurial. It looks like an interesting piece of software. I think its a travesty that its lost one of its developers due to the decision of his employer on what software package to license.

The full discussion on this can be found on the Subversion Developers mailing list.

Yahoo’s new Podcast Directory

I just spent some time looking around Yahoo’s new podcast directory. Its pretty cool. Not only can you search for keywords in episode descriptions, but the site also supports tagging, so you can find related podcasts based on tagged keywords that you click on, a really nice addition to the site.

I’m still playing around with it and clicking around the tag-o-sphere, but it looks like a nice and easy way to navigate around the podcasts available. This service seems to have the best of all worlds right now. Tagging, Ajax enablement, and high ease of use. Check it out if you get a chance. I think I just found my new directory.

Emily Rose and Millenium Followup

[ This posting was written about a month ago (around 9/12) … I just ran out of things to write about, so I’m publishing this ]

I came across this article this morning. It seems that The Exorcism of Emily Rose has struck a chord with people (at least as far as getting them in the theater) as it grossed $30.2M over the weekend making it the third largest September opening ever, despite reviews that pretty much mirror mine.

Apparently I’m not the only one interested in the concept of exorcism — which makes me feel much more normal. 😉

Given the box office numbers though, I’m inclined to wonder what makes these types of movies so attractive to people that they have to go see it? I think that those who were raised hearing about how Satan and demons were the cause of everything bad are more inclined to go see them just out of the curiosity raised through years of hearing about it ad nauseum and finally being able to see something that was supposedly “true”. I think that I really like seeing other peoples interpretation of this phenomenon and the events that surround them.

Just to be clear, I do not believe in actual demonic possession. I do believe, however, that other people believe in it — and can believe in it so much that they can manifest behavior consistent with it if they do not learn to deal with the guilt instilled in them while being initiated, as a child or as an adult, into a religious group in which a fear of Satan forms much of the cornerstone of the doctrine that is taught.

Much of the above is why I also enjoyed the second season of Millennium so much this time around, while “not getting it” when it was actually on TV. Much of the content was around religious beliefs and the fulfilling of prophecy as believed by the “Millennium Group”. A lot of it had to do with what the Millennium Group was doing in order to ensure the outcomes that they believed would signal the end of the world. For some reason the second time around, that really intrigued me.

The second season of the show was quite different than the first. From what I have heard on interviews on the sets, Chris Carter became very busy with the X Files during the second season of Millennium and gave control over to Glenn Morgan and James Wong. The show became quite different than the first season, focusing on the Millennium Group and quite a bit of its religious philosophy and apocalyptic beliefs. Many of the shows took on an almost surreal atmosphere, very unrealistic and “out there”. One episode specifically (I can’t remember the episode but it was towards the end of the season) had very much of a “Natural Born Killers” feel to it — very random and disjointed.

Season Three
, which we started watching (we got through almost 3 discs), feels like a melding of Season 1 and Season 2. There is quite a bit of the religious and / or spiritual aspects to what we’ve seen so far, however it is much less surreal than Season 2, getting “back to the basics” of what made the first season so great.

I’m still a little disconnected from Season 3 as compared to Season 1, but I am still enjoying the shows.