Essential Software Testing Tools Blog


Shopping for Clothes with your Girlfriend

February 25th, 2008 by William Echlin

Ever wondered why choosing a development framework is like shopping for clothes with your wife or girlfriend? “No”? Oh, well I’m going to tell you anyway!

A couple of months back, when the ball started rolling for work on version 7 of QaTraq we started looking at the various development frameworks available for Php. The options were quite simple. Only two real contenders were available; Symfony and Zend. Choosing between the two was, however, somewhat more complicated than just identifying them.

Right at the start, Adrian, our lead developer, suggested a combination between Symfony and Zend. The argument behind this was that we would get the flexibility of the Symfony framework and access to the great range of Zend modules and components. The fact that Symfony could utilize the Zend components meant that this was technically possible and would give us the best of both worlds. These reasons had not been thought through in detail at this point, but were probably based quite legitimately on instinct, intuition and years of experience.

In the name of best practice though, we went through a four week evaluation and prototyping period. We were attempting to select just one of the two options in the belief that choosing just one would simplify things for us. One day we’d be thinking Zend would best suit our needs, the next day we’d be extolling the benefits of having the flexibility of running with the Symfony solution. As our prototyping with both solutions went on for week after week so did our constantly changing opinion on which of the solutions was the best option to go with.

After about four weeks of constantly changing minds we had our final meeting to discuss which framework we were going to use to construct version 7 of QaTraq. We spent an hour changing our minds again as both solutions had very real pros and cons. That was until Adrian pointed out again that perhaps his initial suggestion combining both solutions, the approach suggested at the very start, was the way to go. One final prototype later and more web research, and we had made our decision.

So why did we spend 4 weeks changing our minds only to go back to the original suggestion? And how does this compare with buying clothes for your wife or girlfriend?

After 4 weeks we were back to square one with the original idea that should we go for Symfony and then use the Zend components we need where necessary. This is when it occurred to me that this evaluation is a lot like taking your wife or girlfriend shopping. First you take her in shop number 1, and she finds a really nice pair of trousers. She doesn’t buy them because she needs to see all the other shops before making a decision. So you visit what feels like hundreds more shops, see what feels like thousands more garments but 8 hours later you get taken back to buy the trousers in shop number one. So you’re left wondering why on earth we didn’t buy the trousers in the first shop in the first place.

Well I mentioned this analogy to the guys at which point Adrian spoke up and pointed out that this analogy wasn’t quite accurate. Adrian quickly pointed out that we hadn’t bought the best trousers from shop number one but rather we’d bought ALL the trousers just to be sure we’d got the best pair of trousers. I could see his point!

Regardless of how many pairs of trousers we’d decided to purchase the moral would seem to be that there is a lot to be said for trusting your first instincts. So we settled with a combination of Zend and Syfony, and we haven’t looked back since.

Copyright ©2009 - Traq Software Ltd - All Rights Reserved.