Chris Donnan : Programming - Brooklyn Style
software, trading, family, fun
Posted programming on Tuesday, April 10th, 2007.
I am currently tasked with a few challenging items.
- Roll out an effective unit testing practice throughout the several-hundred-developer division of the firm.
- Roll out an effective standardized agile process throughout the same several-hundred-developer division of the firm.
I am happy to undertake these endeavors, and even happer to have the high level firm support to enable these efforts. My current belief is that with top down guidelines and bottom up organic growth, we have a shot. If we had only 1 of those two elements, then we would be in trouble.
That being said - DOING these 2 things is hard
My first order of operations was to survey many areas of the firm and see what tools, processes, technologies and issues were in the wild. From there - I have gotten a group of TDD allies that are already doing TDD to some degree at least in the firm. Next - my focus is on the ‘development team leads’. My intent is to take the team leads and week over week, instill the ‘core developer values’ that will enable us to transition to TDD. Here is my short list of initial ‘core developer values’ I am going to focus on.
- SoC - Separation of concerns
- IoC - Inversion of control
- Limit use of static and global data
- Write tests 1st so you get the design benefits of TDD not just the “tests”
- Use mocks, actual mocks or ‘fakes’ are OK too.
- Make the code testable at all costs
- Make integration tests in your test harness
- In existing code that has no tests, write tests as you modify it now
If we can instill these beliefs, and teach the team leads to really do TDD, AND get them to feel the value, I believe it will spread virally. I have done this before, bring TDD to teams. The result is usually the same, something like - 10-20% just go for it, like it, persue it and get it. Some 10-20% hate it, fight it, etc. The middle of the distribution is - in the middle, hems and haws and eventually folds to the peer pressure and leadership and does it out of habit. Eventually, best case, event the ‘haters’ come to it if the peer pressure and leadership can hold on.
In a bigger organization, I expect the same basic distribution to hold true. It WILL be harder to get more and more of the middle of the roaders and haters on board just because of the raw #s. Having a team of advocates will help to monitor this transition.
The organization I have running this transition will be run as a scrum process. We have a monthly steering process, a virtual team of ~20 people, a prioiritized backlog of work, etc. Our on demand teams are focused on bite sized goals and we will empirically manage our progress.
My next post I will talk about how I plan on rolling out scrum… fun!
-Chris
Comment on this post below
You must be logged in to post a comment.
You can leave a response, or trackback from your own site.















