Kit Kai's Tech Blog

Blog about SharePoint

This Blog

Syndication

Search

Tags

News



  • Want to be notified when new posts are available? Click the icon below for more information on how to subscribe.

    Blog Flux MapStats: Stats and Counter for Kit Kai's Tech Blog Subscribe to Kit Kai's Tech Blog

    Locations of visitors to this page Add to Technorati Favorites

Community

Email Notifications

Archives

Sharepoint / CMS Blogs

MVPs', Leads' & RDs' Blogs

Singapore Usergroups

Overseas Usergroups

About Me

Looking for anyone who has project that is based in this region, and is using TDD

Recently, I've been involved in a project, that has its phase 1 dragged for several weeks. There are many factors at work for the delay, which I won't discuss. But one of the factors can probably be addressed technically, by automated testing.

 

I’ve been reading up Agile methodology, more towards Test Driven Development. Agile, or rather, extreme programming (XP), is something I first hear about from Dr Neil Roodyn who talked about extreme programming in a SgDotNet meeting in Jan 2005. He shared how XP helped his team complete an impossible job within the impossible timeframe, which another team before him has failed to deliver without XP, and different ways his team has done to indicated if the build process has passed or failed, by hooking a green and red lava lamps to the build server. The green or red lamp will light up when the build process is successful or failed.

 

Recently, I’ve picked up a book titled “scaling software agility” by Dean Leffingwell from the library. In the book, it quote Forrester Research [2005] in the following statistics

Agile software development processes are in use at 14% of North American and European enterprises, and another 19% of enterprises are either interested in adopting agile or already planning to do so.

In a survey of 21 companies using or considering using an agile process, Forrester notes their reasons:

-          Productivity and time to market (66%)

-          Reducing cost (48%)

-          Improving quality (43%)

Shine Technologies, and Australian group surveyed 131 respondents from teams and companies that applied agility in 2003.

-          93% stated that productivity was better or significantly better

-          49% stated costs were reduced or significantly reduced, 46% stated that costs were unchanged

-          88% stated that quality was better or significantly better

-          83% stated that business satisfaction was better or significantly better.

 

While benefits are high statistically, I’m sceptical if it will work in this region, since there are lots of factors that are different, than in region that are adopting agile practices. If you are one of those who are using agile in your project, I would really love to invite you to share your experiences in our next usergroup meeting.

Published Monday, June 23, 2008 2:23 AM by kitkai
Filed under:

Comments

# Looking for anyone who has project that is based in this region, and is using TDD@ Monday, June 23, 2008 3:40 AM

Recently, I've been involved in a project, that has its phase 1 dragged for several weeks. There

# re: Looking for anyone who has project that is based in this region, and is using TDD@ Monday, June 23, 2008 9:49 AM

i personally practise TDD, and to me it's a very effective way of designing code that's "malleable."

it took some time for me to "get" it though. it is quite a challenge to get a whole team to adopt TDD from scratch. there will definitely be some in the team that will "regress" to their old ways because of this.

TDD is just one of the aspects of XP. is XP for you? it depends...it's a radical shift in project management thinking. you have to identify what practices you can implement and if your clients will agree to adopt them as well (if you do XP but your clients prefer waterfall, that's a recipe for disaster). then from there you can decide if XP is for you.

anyhow, i think the biggest benefit would be to adopt TDD (assuming you have senior guys in your team who are experienced in TDD, to help the junior guys) and an iterative process of development, instead of a big design upfront/big bang output that's typical of waterfall.

my 2 cents...

by cruizer

# re: Looking for anyone who has project that is based in this region, and is using TDD@ Monday, June 23, 2008 9:50 AM

oh, and you don't need to rig a green or red lava lamp for your team. you just have to make use of cruisecontrol.NET and the CCTray utility, which will show a green or red circle in your system tray depending on the build status. :)

by cruizer

# re: Looking for anyone who has project that is based in this region, and is using TDD@ Monday, June 23, 2008 3:58 PM

Ha ha... obviously visual indicator is not my focus... just that it made its mark in my memory...

by kitkai

# re: Looking for anyone who has project that is based in this region, and is using TDD@ Tuesday, July 01, 2008 3:25 PM

Hi kitkai, I can't say that i'm already a TDD practitioner my self, but for the last couple of months, i'm trying to learn and apply it to my current work. Here are my 2 cents ;) 1. it's hard to "get" TDD concept (agree with cruizer), I find that it depends on the our own mindset, the more comfortable we are in our current non-TDD way of thinking, it gets tougher to change into TDD, because it really seems like an extra effort to create the tests initially. 2. all the companies that i have worked for, they are used to the Microsoft project style planning (waterfall) where usually all the work items with the schedule need to be defined upfront before we kick start the project. I'm really curious actually how many companies in Singapore have applied non-waterfall methodology such as agile, scrum, etc. 3. design first or test first? for example, I like the design specification to be clear and in detail before we start the development, but with TDD, we create tests then the code and do lots of refactoring. how much deep in details should we put in the design specification with TDD now? 4. the test boundaries, what kind of things should we test? i found that the book below is a good reference to start with : Pragmatic Unit Testing in C# with NUnit, 2nd Ed., 2nd Edition by Andy Hunt and Dave Thomas with Matt Hargett 5. TDD is a broad topic, it involves lot of things such as mocking, automated testing, automated build, continous integration. how i feel about TDD, i'm a believer and a follower ;) but I would think that TDD is just a good way to follow, but it's not the silver bullet for all cases, it's the good communication that really helps in a project.

# re: Looking for anyone who has project that is based in this region, and is using TDD@ Thursday, July 03, 2008 3:35 PM

best way to start TDD is to ignore the "T" == tests. it's about design, not testing. perhaps the BDD (behaviour driven development) captures the idea better, since the tests are not about testing for correctness (though that is a side effect or artifact of the process) but for specifying the correct/intended behaviour of the code being created.

by cruizer

# re: Looking for anyone who has project that is based in this region, and is using TDD@ Friday, July 04, 2008 5:14 PM

would both of you like to give a practical presentation on tdd?

by kitkai

# re: Looking for anyone who has project that is based in this region, and is using TDD@ Friday, July 04, 2008 11:12 PM

sure just let me know when :) i've presented multiple times on TDD back in the Philippines, for both the .NET user group and the PHP user group...

by cruizer