YOUR FEEDBACK
johnpetersen wrote: Great post. You hit some good points, and hopefully me sending this post. It wil...
Cloud Computing Conference
November 19-21 San Jose, CA
Register Today and SAVE !..


2008 East
DIAMOND SPONSOR:
Data Direct
Frontiers in Data Access: The Coming Wave in Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
Intel
Virtualization – Path to Predictive Enterprise
Green Hills
IT Security in a Hostile World
JBoss / freedom oss
Practical SOA Approach
GOLD SPONSORS:
Software AG
The Art & Science of SOA: How Governance Enables Adoption
PlateSpin
Effective Planning for Virtual Infrastructure Growth
Fujitsu
Automated Business Process Discovery & Virtualization Service
Ceedo
Workspace Virtualization
Click For 2007 West
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
SYS-CON.TV
TOP LINKS YOU MUST CLICK ON


JavaOne - TDD Controversy
TDD is a big topic with plenty of reference material available on the web, and people interpret parts of it differently

Nigel Cheshire's Blog

Reading Joseph Ottinger’s blog; “Scary thought: maybe those who say they can’t do TDD are right” I would think that any development manager or newbie looking to implement TDD would be pretty concerned about some of the comments made, particularly this one:

“Most developers do *no* TDD at all. It's about time we started listening to these people instead of trying to lecture them.”

Obviously this is a controversial issue. It can quickly degenerate into a tirade of arguments about why TDD would or would not work in certain organizations and types of projects.

The obvious thing I see here is an education issue. TDD is a big topic with plenty of reference material available on the web, and people interpret different parts of it in different ways. Sure, some people may have had bad experiences with TDD depending on the culture of the organization, especially if they are not fully committed to a TDD approach, which can quickly result in them slipping back into more traditional development methodologies. Or, from a technical standpoint, some organizations find it difficult to implement a TDD approach in, say, an embedded environment.

However, the organizations I have seen that have successfully implemented a TDD methodology are the ones willing not only to invest the budget to train people in TDD and its culture, but to have the patience to work through the first months of hurdles and issues due to the different way of thinking that TDD requires.

The whole ‘agile revolution’ is not a silver bullet, but there are an increasing number of reports and case studies (for example: Success Rate of Agile Software Development in Agile Magazine - Spring ed. or http://www.objectmentor.com/omSolutions/agile_customers.html ) on many projects that show an increase in the number of projects being delivered on time and at a higher quality level. TDD is a big part of this revolution.

There are various ways to implement TDD, and a number of different keys to success. A simple favorite of mine is this: if a bug is reported, write a unit test to prove the bug exists. Once the unit test passes, the bug will be eliminated and should never re-occur [assuming you run all unit tests as part of your integration build].

A reference work I see on the desks of nearly all customers I visit is Michael C. Feathers’ Working With Legacy Code”, which has many examples of applying TDD to legacy projects, rather than only new projects, something that was missing from a lot of last year’s conference topics when discussing TDD, in my opinion.

About Nigel Cheshire
Nigel Cheshire is CEO of Enerjy Software, a division of Teamstudio Inc. He oversees product strategy and has been driving the company's growth since he founded it in 1996. Prior to founding Teamstudio, Inc., Nigel was co-founder and principal of Ives & Company, a CRM solutions consultancy. He holds a Bachelor of Science degree in computer science from the University of Teesside, England.

YOUR FEEDBACK
Dave Wilson wrote: TDD can work even with $DD. In my experience, you will actually get your code working faster by writing unit tests before, or immediately after, your write a section of the code. By testing each component as you go along, you are less likely to build a house of cards - i.e., you have a solid code base to build upon.
Don Babcock wrote: I see from the feedback that TDD="Test Driven Development." Nice concept. Reality intrudes however. In every shop with which I've had the pleasure of exchanging $ (salary) for skill, all development was ultimately DDD or $DD (Dollar Driven Development.) Those two break down into CDD (customer driven development) and PDD (politically driven development) mixtures. Consulting gigs tend to have more of the former. Corporate gigs typically major in the latter. In 35 years in this biz in numerous organizations spanning fields from Aviation to Utilities I've yet to encounter one that does TDD. I think that is largely because of the "T." Testing implies a standard, a requirement, if you will. Tests logically (therein lies the rub) descend from requirements (R.) Frankly, most organizations don't really know what they want "but they'll know it when they see it." Doing the "T" is easy if you know t...
Don Babcock wrote: In vain did I search your article for the definition/expansion of "TDD." That oversight rendered the article worthless to me for information. To get an idea of how such an article reads, just read it substituting "blah" for every instance of TDD. I couldn't even infer it from the context. Friendly tip, never assume your audience is up to speed on all the current jargon. We read such articles to keep up with it. My practice in writing on technical subjects is to ALWAYS fully qualify acronyms on their first use in an article.
Dave Wilson wrote: TDD = Test Driven Development. Write the tests before you write the code. If you write a test for each requirement, this makes it more likely that you actually implement the requirements.
Dave Wilson wrote: If you can't implement TDD on an existing project, that may indicate a fundmental defect in the design - i.e., the code isn't testable. Focusing on TDD from the beginning of a project leads to testable code - this likely pushes you toward a more well-factored design.
Gerry Matte, IT Manager wrote: Perhaps I don't spend enough time reading blogs and keeping up on issues ..... exactly what is a TDD ? The acronym is used frequently in the article and in the headline with nary a clue why I should care .....
Java News wrote: The obvious thing I see here is an education issue. TDD is a big topic with plenty of reference material available on the web, and people interpret different parts of it in different ways. Sure, some people may have had bad experiences with TDD depending on the culture of the organization, especially if they are not fully committed to a TDD approach, which can quickly result in them slipping back into more traditional development methodologies. Or, from a technical standpoint, some organizations find it difficult to implement a TDD approach in, say, an embedded environment.
LATEST ECLIPSE STORIES . . .
ILOG has announced ILOG JViews 8.5, the latest version of ILOG’s Java-based visualization suite, with new features that enhance the creation of Rich Internet Applications as well as desktop applications. ILOG JViews 8.5 adds support for the Eclipse platform including the new ILOG JVi...
"More than a half dozen conferences and events targeting Virtualization and Cloud Computing canceled in the past two months," said Fuat Kircaali, CEO of SYS-CON Media. "We predicted that this would be the outcome for many competing shows due to the current economic conditions," he adds...
The new LISA Eclipse Edition offers deep integration with many aspects of the platform, including the IDE, Source Control, Lifecycle Management, SWT interface elements, and other tools that operate inside of Eclipse. LISA test case documents can be stored and executed within the workfl...
There is much debate raging over whether cloud computing and grid computing are one and the same. In fact, there are many similarities and one key difference separating these burgeoning fields. Both cloud and grid propose an architecture that masks the complexity of managing thousands ...
XAware has announced its upgraded support for Eclipse 3.4. This enhancement gives developers and architects the ability to use the latest version of the Eclipse development environment as they create composite data services for service-oriented architecture (SOA), rich Internet applica...
On Monday October 20 in San Jose, California, the top Rich Internet Applications event of the Fall opens its doors: the 6th International AJAX World RIA Conference & Expo, with top industry keynotes from Microsoft's Silverlight supremo Scott Guthrie and Adobe's Chief Technology Officer...
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON FEATURED WHITEPAPERS

MOST READ THIS WEEK
ADS BY GOOGLE