Monday, January 31, 2011

When “done” doesn't mean “ready”

Picking up a bit from yesterdays lament how in some companies the “unit test” is becoming a dying art on some software projects.

My original feeling – having worked on two projects now which called themselves “Agile” - was that Agile was a dangerous methodology indeed.  Many developers were building a kind of Kanban board with areas to show phases of development which included “Not started”, “Design”, “Coding”, “Done”.

And away they'd report to the project manager “oh yes this module is DONE”.  And so the project manager would come over to me as head of testing and it'd feel like we were put on the spot.

Because the developers version of “done” meant “finished writing coding” - it did not mean “unit tested”, “integrated into test environment” or even “ready for system testing”.

[It took Lisa Crispins book on Agile Testing to teach me that the aim of Agile development was to “bake in testing” and to test early and often]

I know from my own experience that code is just a lot of strange punctuation until you try and make it do something.  Saying code is “done” without executing it (ie testing) is like making a new recipe for a cake, baking it, but not really eating it to see if it's any good.

Mmmm – delicious cake!

I think one of the problems is Agile encourages people to adopt a “framework” and not a “rigid process”, and it means some people who say they're adopting Agile are really perhaps cutting things too far.

The way I see it – you have a process in place, and you have to look through it, and work out which elements add value, and need to be kept, and which are just unneeded overhead which add nothing.  And whatever we're using - Waterfall or Agile we need to be sure to try and strip down what we do, but be vigilant to keep the things that are adding value.

It would be a brave developer to tell me that testing does not add value to code, or that unit tests have never shown problems the developer did not foresee.

So developers beware – whether it's “Agile”, “waterfall” or “v-model”, your code is not “done” until it's “tested” ...

Erm not that I see developers as "the enemy", I just think some adopting Agile or whatever need to see the "bigger picture" of software development, and not just the coding segment.

1 comment:

  1. จีคลับ Online casino gambling entertainment sites are much easier to gamble. It can be played as you would play at. All bets are good bets. You can gamble yourself all areas. This is a gambler. Have fun every day. Gambling is the number one game that anyone would like to gamble easily that you like. Choose a casual gambler to bet every day the way you choose. The first bet is to have fun all the time. There is a realistic gameplay.

    Have fun at any place you choose. Where to play expert. Because there are ways to gamble and betting techniques that will like to make more money. Bet on professional fun every day, want to experience the gambling game that will give players to play themselves at all times like this. Gamblers have fun and gamble every day. Bet you like to gamble every day, realistic with the bets to like to make more money, better every day guarantee. Always play professionally. บาคาร่า