Consutlant, coach, guide in all things agile at Allan Kelly Associates
Allan started his career as a coder, one day he realised the code wasn't the challenge: it was the way companies were set up and run. So he began a new journey, to help the coder he was. Today he specialises in better ways of working through agile approaches and OKRs. He partners with growing technology focused businesses to enhance effectiveness and predictability through improved organization, product focus, and delivery. He has written several books including the best selling "Succeeding with OKRs in Agile" and "The Art of Agile Product Ownership". He most proud of the badly named "Business Patterns for Software Developers".
Stats
Reputation: | 1670 |
Pageviews: | 1.3M |
Articles: | 11 |
Comments: | 14 |
Comments
Feb 21, 2014 · Allen Coin
Thanks Jeff, that story is most illuminating.
One thing that intrigues me is: what was the bug count like?
Both overall and from the different developers, did the one who practices TDD religiously have a significantly different number is issues to those who didn't?
You said the TDD'ed code was slower to write, I would argue that while code may well be slower to write initially it will be faster to complete, i.e. clear testing and need less rework, and this will save time and money when it is deployed. Again it would be good to know more about this case.
What I take from the story is this: even those who practices it less often knew how to do it, they made a (hopefully) informed choice of when to do it and when not.
To me, this is what we want: there may well be occasions when it makes sense to not do things test first but that decision can only be informed when those doing the work understand the options and are capable of proceeding by either route.
My objection is when developers say: "This code can't/shouldn't be done test first" without really understanding what is involved.
Feb 21, 2014 · Allen Coin
Thanks Jeff, that story is most illuminating.
One thing that intrigues me is: what was the bug count like?
Both overall and from the different developers, did the one who practices TDD religiously have a significantly different number is issues to those who didn't?
You said the TDD'ed code was slower to write, I would argue that while code may well be slower to write initially it will be faster to complete, i.e. clear testing and need less rework, and this will save time and money when it is deployed. Again it would be good to know more about this case.
What I take from the story is this: even those who practices it less often knew how to do it, they made a (hopefully) informed choice of when to do it and when not.
To me, this is what we want: there may well be occasions when it makes sense to not do things test first but that decision can only be informed when those doing the work understand the options and are capable of proceeding by either route.
My objection is when developers say: "This code can't/shouldn't be done test first" without really understanding what is involved.
Feb 21, 2014 · Allen Coin
Thanks Jeff, that story is most illuminating.
One thing that intrigues me is: what was the bug count like?
Both overall and from the different developers, did the one who practices TDD religiously have a significantly different number is issues to those who didn't?
You said the TDD'ed code was slower to write, I would argue that while code may well be slower to write initially it will be faster to complete, i.e. clear testing and need less rework, and this will save time and money when it is deployed. Again it would be good to know more about this case.
What I take from the story is this: even those who practices it less often knew how to do it, they made a (hopefully) informed choice of when to do it and when not.
To me, this is what we want: there may well be occasions when it makes sense to not do things test first but that decision can only be informed when those doing the work understand the options and are capable of proceeding by either route.
My objection is when developers say: "This code can't/shouldn't be done test first" without really understanding what is involved.
Feb 21, 2014 · Allen Coin
Thanks Jeff, that story is most illuminating.
One thing that intrigues me is: what was the bug count like?
Both overall and from the different developers, did the one who practices TDD religiously have a significantly different number is issues to those who didn't?
You said the TDD'ed code was slower to write, I would argue that while code may well be slower to write initially it will be faster to complete, i.e. clear testing and need less rework, and this will save time and money when it is deployed. Again it would be good to know more about this case.
What I take from the story is this: even those who practices it less often knew how to do it, they made a (hopefully) informed choice of when to do it and when not.
To me, this is what we want: there may well be occasions when it makes sense to not do things test first but that decision can only be informed when those doing the work understand the options and are capable of proceeding by either route.
My objection is when developers say: "This code can't/shouldn't be done test first" without really understanding what is involved.
Jan 30, 2014 · Allen Coin
Good points. (A reply to Dave Beck).
You bring us back to the "people or the system" argument. I have heard many people say "its the people" and I agree with them, and I've read Deming and he say "its 98% the system" and I agree with him. I think the whole industry is stuck in this double-think.
Let me suggest that the best programmers gravitate towards TDD, OK, its my opinion, but all the programmers I respect practice it. It may be that doing TDD is a filter. Or it may be that the best people conclude that it is effective.
Unraveling cause and effect here is beyond me.
Jan 19, 2014 · Allen Coin
Thanks Darryl,
I couldn't have said it better myself!
I think you've put your finger on something here, something I'll have to follow up in a later blog. In my experience, when presented with a coherent argument most managers get it. As I said, this deserves more discussion, another blog
allan
Jan 19, 2014 · Allen Coin
Thanks Darryl,
I couldn't have said it better myself!
I think you've put your finger on something here, something I'll have to follow up in a later blog. In my experience, when presented with a coherent argument most managers get it. As I said, this deserves more discussion, another blog
allan
Jan 15, 2014 · Allen Coin
Burabari, doing TDD is improving your coders.
TDD - and no other method I know of - guarantee's software will be bug free but all the evidence I have tells me it reduces - sometimes vastly reduces - the number of bugs that are there.
If not TDD then what?
Manual Unit tests?
If not manual unit tests then what?
Static analysis tools, code reviews and similar are good but you can use all these techniques, they are not exclusive.
Jan 15, 2014 · Allen Coin
Burabari, doing TDD is improving your coders.
TDD - and no other method I know of - guarantee's software will be bug free but all the evidence I have tells me it reduces - sometimes vastly reduces - the number of bugs that are there.
If not TDD then what?
Manual Unit tests?
If not manual unit tests then what?
Static analysis tools, code reviews and similar are good but you can use all these techniques, they are not exclusive.
Jan 15, 2014 · Allen Coin
Steven,
Thanks for your comment. What you describe is exactly what I believe. Its good to have someone else describe it from direct experience.
I probably over did it in my comments on manual testing, I believe there will always be an element of manual testing - exactly as you say after the automated tests. But I so rarely see true exploratory testing, usually it is manual testing in the absence of any automation.
allan
Jan 15, 2014 · Allen Coin
Steven,
Thanks for your comment. What you describe is exactly what I believe. Its good to have someone else describe it from direct experience.
I probably over did it in my comments on manual testing, I believe there will always be an element of manual testing - exactly as you say after the automated tests. But I so rarely see true exploratory testing, usually it is manual testing in the absence of any automation.
allan
Jan 14, 2014 · Allen Coin
:)
Jan 10, 2014 · Allen Coin
Thanks for that Jarek,
Interesting to note that in the Twitter stream about this article (no hashtag, you'll have to look at @allankellynet and the interactions) many area expressing pessimism that this will come to pass by 2022. But from what you, and a few other people say, this is already the norm in many many places.
Jan 09, 2014 · Allen Coin
Thanks for pointing that out Barry, it a while since I (re)read MMM.
A reasonable observation - one I hope is wrong.
In 1974 processor cycles were expensive and few people had easy access to machines. Brooks could see the benefits but the argument didn't catch. Hopefully now CPU cycles are dirt cheap and we all have as much power in our pocket as he had in a room automated testing has more chance.
I sometimes wonder if the while "agile" movement is about correcting a wrong turning the industry took somewhere about 1980.