Question

Our team develops with TDD and when implementing new features sometimes at the end of the story when all cards turn green comes "the integration card", which means putting together the implemented components to play nice with each other. I feel bad about this card, because this means, noone tried the code in real life only in tests and integration card means trying it out and make it working.

Is it a good agile practice to put an integration card at the end of every story that results in a new feature? Or should it be the part of every task card when it is possible to integrate it together with the existing code?

Was it helpful?

Solution

Here just my 2 cents:

TDD on itself has nothing to do with your way of working described in your question. Agile / Scrum / Lean / Kanban would in my opinion.

Writing unit tests before you actually write your code is a good practice, which you guys are doing if I understand you correctly.

I agree with you that's a bit of weird to postpone the actual integration of code to the end of the sprint. If hell breaks loose, you got nothing at the end of the sprint. In other words, your potential shippable product will not exist until the last risky card is done.

If you want to break through this way of working, I'd consider googling for continuous integration. There you strive to integrate code as often as possible, in order to find integration bugs as soon as possible.

So long story short:

  • No it's not a good Agile practice, and
  • Yes it would be better to integrate every done, done, done task

Hope this helps you to make a step towards a true agile/lean team! Trust your instincts, you do get it :).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top