Showing posts with label Agile. Show all posts
Showing posts with label Agile. Show all posts

Tuesday, 26 March 2013

TDD ? why ?

I have met some developpers that are still relectant to work within a TDD approach. So my guess is that they don't see exactly what are the clear benefits from using this approach. So here are the most powerful to my mind:
When using a TDD approach (by the way TDD means Test First and refactoring)

1.You have a clear and formal specification of what you have designed and implemented. Not only a piece of comments, that by the way will pe deprecated after a while. This is really useful for maintenance (bug fixes, regression, evolution)
2.You have a MAXIMUM code coverage and NO DEAD CODE
3. You have methods in your test that express your test intentions and not a test method per method in the class under test.

The process:
    0. Create a todo list from a specification
    1. Create a test case automatically with the IDE
    2. Add 1 new test from the todo list
    3. This test shouldn't compile. Add the minimum code to compile.
    4. execute and get the red bar (Junit Eclipse plugin)
    5. Add minimal code to pass the test (the green bar)
    6. Refactor
    7. goto2

Some resources on how TDD helps in reducing the software development costs:
- http://codebetter.com/darrellnorton/2003/12/03/what-is-the-zero-defects-mindset/

Tuesday, 12 March 2013

No rush, clean code !

I read this post and personally it's what I have experienced during the first versions of IFx-Workbench ().
We were implementing an infrastructure API .... but with this rushy approach we end up with a spagetti API that is hardly usable by clients that aren't experts. In short all the developpers that are not in our team !
http://programmer.97things.oreilly.com/wiki/index.php/Speed_Kills

Friday, 8 March 2013

Lean IT

A great CIGREF publication on the Lean and Agile:
http://images.cigref.fr/Publication/2012-Quel-SI-pour-la-firme-lean-CIGREF.pdf