What the research team found was that the TDD teams produced code that was 60 to 90 percent better in terms of defect density than non-TDD teams. They also discovered that TDD teams took longer to complete their projects—15 to 35 percent longer.“Over a development cycle of 12 months, 35 percent is another four months, which is huge,” Nagappan says. “However, the tradeoff is that you reduce post-release maintenance costs significantly, since code quality is so much better. Again, these are decisions that managers have to make—where should they take the hit? But now, they actually have quantified data for making those decisions.”
yah, i like the reasoning here. you can get "done" faster without testing, if you change the value of "done".
The real question is the total time taken for the TDD approach versus non-TDD one. Will one get something to production/in-use faster by going TDD with a longer dev time but short test time as opposed to going non-TDD with a shorter dev time but longer test time? And I presume it might vary considerably considering the type & complexity of the project.
I agree. On my team we don't do TDD (at least not the way I understand it), but we do have a comprehensive testing phase in all of our project schedules. I'd be curious to see some metrics that compare TDD to QA testing.The real question is the total time taken for the TDD approach versus non-TDD one. Will one get something to production/in-use faster by going TDD with a longer dev time but short test time as opposed to going non-TDD with a shorter dev time but longer test time? And I presume it might vary considerably considering the type & complexity of the project.
-------- Original Message --------
Subject: [BSDG] Re: Exploding Software-Engineering Myths
From: Tony Rasa <tr...@meancat.com>
Date: Fri, October 09, 2009 3:58 pm
To: bs...@googlegroups.com
from the article:
http://research.microsoft.com/en-us/projects/esm/nagappan_tdd.pdf
On Fri, Oct 9, 2009 at 3:41 PM, Dave Herron <daveh...@boisetools.com> wrote:
Did I miss something here? I don't think there was enough information in the article alone to draw any conclusions. Show me the facts.-- DaveH
-------- Original Message --------
Subject: [BSDG] Exploding Software-Engineering Myths
From: Chris Brandsma <chris.b...@gmail.com>
Date: Fri, October 09, 2009 12:22 pm
To: bsdg <bs...@googlegroups.com>
Here is an interesting article that just came out of Microsoft Research.
http://research.microsoft.com/en-us/news/features/nagappan-100609.aspx
Here is my favorite part:What the research team found was that the TDD teams produced code that was 60 to 90 percent better in terms of defect density than non-TDD teams. They also discovered that TDD teams took longer to complete their projects—15 to 35 percent longer.“Over a development cycle of 12 months, 35 percent is another four months, which is huge,” Nagappan says. “However, the tradeoff is that you reduce post-release maintenance costs significantly, since code quality is so much better. Again, these are decisions that managers have to make—where should they take the hit? But now, they actually have quantified data for making those decisions.”
Saw this quote on a Reddit thread:yah, i like the reasoning here. you can get "done" faster without testing, if you change the value of "done".
On Oct 9, 2009, at 1:04 PM, Jacob Munson <yaco...@gmail.com> wrote:
> I agree. On my team we don't do TDD (at least not the way I
> understand it), but we do have a comprehensive testing phase in all
> of our project schedules. I'd be curious to see some metrics that
> compare TDD to QA testing.
We do a full QA cycle at the end of each milestone and before we
release. The QA time is much more than the supposed high end cost of
35%. Theoretically we can start on the next milestone while in the QA
cycle, but I've never seen that happen. We typically work on fixing
bugs during the entire QA cycle, and somtimes even for weeks after we
release.
I haven't had the time to read the entire article, but were the TDD
teams doing all the XP practices, or just TDD? TDD by itself is only
part of the equation. Taking it completely out of the context of XP
will skew the results. You need full XP to see all the benefits.
Agreed. Some would take it a step further and claim that TDD replaces debugging!
Not sure if I’m ready to swallow that red pill just yet.
From:
bs...@googlegroups.com [mailto:bs...@googlegroups.com] On Behalf Of Chris
Brandsma
Sent: Friday, October 09, 2009 9:37 PM
To: bs...@googlegroups.com
Subject: [BSDG] Re: Exploding Software-Engineering Myths
TDD = Test Driven Design. And I do agree with that. There is a notion in TDD that the fact that tested code falls out of the process is wonderful side benefit. One thing you will not hear me harping on is test coverage. I don't care actually.