Images in this post missing? We recently lost them in a site migration. We're working to restore these as you read this. Should you need an image in an emergency, please contact us at imagehelp@codebetter.com
The Tortoise and the Hare

image We're all familiar with the Aesop's fable of the tortoise and the hare.  In the story, the hare, who is in every way is faster than the tortoise, loses a race to the tortoise.  The main principle of the story is that slow and steady wins the race.

In my development I am shooting to be a tortoise, really I am.  Read on and let me explain.

A few weeks ago I got some evil glares when I suggested at our .NET user group meeting that in enterprise systems that you don't have time not to test.  It's a common hurdle for those new to testing to say, "I don't have time to write tests."  Let's face it, we're all busy, that excuse is tired.  As an agile and lean practitioner I seek out ways to improve velocity and reduce waste, not take my already busy schedule and cram in another tool for the sake of another tool.  While writing tests does slow me down, it brings on tortoise like speed, which I would argue is a good thing.  Writing unit tests is one tool that provide me the ability to keep a more consistent velocity over the course of development.  Without tests I can surely write things faster, the problem arises as the codebase grows and each new feature or fix takes increasingly more time. Eventually, even simple requests become arduous to implement.  Slowly you see your velocity come to a crawl.

It's an insidious cycle that I've seen before and am currently in the throes of; an application is built from scratch implementing everything the business requires. The application is enhanced and bolted on to, until you realize that you could move much faster if you could start from scratch.  You make pleas to your boss and explain how much productivity would improve if you could shed the hideous code base.  One day he gives in, you rejoice and you make the leap, start from scratch, breathing a sigh of relief at how easy implementing the features are all the while reminiscing about the old framework and how poorly it was written.  And now that the application is rewritten from scratch the cycle, unless you were aware of it all the while, starts again.

You see, no one sets out to write crap code.  People do the best they can with the knowledge they have.  Code, following the second law of thermodynamics, tends towards chaos over time.  With unit tests in place I can refactor with more confidence and implement new features without the fear of breaking existing code.  If you have the ability to refactor, new code is no longer "bolted on" but rather "grafted in" becoming part of the system.  With a solid framework with tests in place you can much better stop the cycle of rewrites.  Quickly writing applications that degrade is the way of the hare.  Developing purposefully using unit tests causes me to be slow in the short run, but over the life of the application comes out far ahead.  In that way, I strive to be the tortoise.


Posted 08-11-2008 12:13 PM by Tim Barcz
Filed under: , ,

[Advertisement]

Comments

Brian Johnston wrote re: The Tortoise and the Hare
on 08-11-2008 7:17 PM
Well said. One could say the same thing about the other aspects of the software development life-cycle.
Peter wrote re: The Tortoise and the Hare
on 08-12-2008 3:50 AM

Wonderful analogy, I'm going to try that one out at a presentation for my customers and colleagues later this week.

So unless you've copyrighted the analogy, I'm going to shamelessly steal it =)

Tim Barcz wrote re: The Tortoise and the Hare
on 08-12-2008 7:07 AM

@Peter

Please, by all means use whatever bits and pieces you need.  

Tim

Peter wrote re: The Tortoise and the Hare
on 08-12-2008 10:00 AM
Tim: Thanks. However, I realized something when I drew my own diagram based on yours. Maybe the y-axis should be "Productivity" instead of "Effort"? And you could show how the bursts of productivity reach to lower and lower levels for the hare until finally hitting bottom, while the tortoise has a pretty much constant pace for a longer time. Maybe I'm confusing the words here, but isn't the effort constant and pretty much equal between unit testers and non-unit testers? Isn't it how much less productive you become when the system becomes a "big ball of mud" that should be the point?
Tim Barcz wrote re: The Tortoise and the Hare
on 08-12-2008 10:47 AM

@Peter

By "effort" I mean "difficulty".  Another, possibly better term would be "cost of change".  That in order to change something it costs a lot where cost could be developer hours which translates to time which translates to money.  You last sentence touches on that point nicely.

Does that help?

Oh...and unit testers work much harder than non-unit testers...:-)

Code Monkey Labs wrote Weekly Web Nuggets #25
on 08-15-2008 3:30 PM

General The Tortoise And The Hare : Tim Barcz has a must-read post comparing enterprise development to the fable of the tortoise and the hare. As someone who's been dealing with this sort of cycle for the last few years, I couldn't agree more. Diligent

Tim Barcz wrote Irreducible Complexity and Evolutionary Design
on 09-02-2008 10:48 AM

In church last week we were talking about evolution when the term "Irreducible Complexity"

Community Blogs wrote Irreducible Complexity and Evolutionary Design
on 09-02-2008 11:02 AM

In church last week we were talking about evolution when the term "Irreducible Complexity"

Code Monkey Labs wrote Weekly Web Nuggets #25
on 02-22-2009 10:46 PM

General The Tortoise And The Hare : Tim Barcz has a must-read post comparing enterprise development to the fable of the tortoise and the hare. As someone who's been dealing with this sort of cycle for the last few years, I couldn't agree more. Diligent

devlicio.us wrote re: The Tortoise and the Hare
on 05-12-2011 1:40 AM

The tortoise and the hare.. Huh, really? :)

devlicio.us wrote re: The Tortoise and the Hare
on 06-03-2011 4:23 AM

The tortoise and the hare.. Tiptop :)

devlicio.us wrote re: The Tortoise and the Hare
on 06-05-2011 4:41 AM

The tortoise and the hare.. Outstanding :)

devlicio.us wrote re: The Tortoise and the Hare
on 06-26-2011 3:12 AM

The tortoise and the hare.. Tiptop :)

ussi xxx hro8 wrote re: The Tortoise and the Hare
on 07-02-2011 10:30 AM

The tortoise and the hare.. Corking :)

p35j porn video 5qqy wrote re: The Tortoise and the Hare
on 07-02-2011 11:24 PM

The tortoise and the hare.. Great! :)

buy stendra wrote re: The Tortoise and the Hare
on 02-15-2013 6:05 PM

GEJAVO Thanks-a-mundo for the blog post.Really looking forward to read more. Cool.

Social bookmarks wrote re: The Tortoise and the Hare
on 03-24-2013 8:02 AM

EbkitM A big thank you for your article post. Really Cool.

bears wrote re: The Tortoise and the Hare
on 04-06-2013 5:42 PM

Very informative blog post.Thanks Again. Cool.

digital slr lenses wrote re: The Tortoise and the Hare
on 05-14-2013 11:44 AM

jZH1M7 I really like and appreciate your article.Really looking forward to read more. Really Cool.

news news news news wrote re: The Tortoise and the Hare
on 08-04-2013 8:40 PM

XF1yWs I truly appreciate this blog article.Thanks Again. Fantastic.

awesome linkbuilding site wrote re: The Tortoise and the Hare
on 09-30-2013 11:19 PM

JonTlW I value the post.Really looking forward to read more. Cool.

check out these guys! wrote re: The Tortoise and the Hare
on 10-15-2013 3:15 PM

h57FIC wow, awesome blog.Really thank you! Want more.

great link building wrote re: The Tortoise and the Hare
on 11-20-2013 5:05 PM

kuMKH6 Im grateful for the article post.Thanks Again. Great.

nice seo guys wrote re: The Tortoise and the Hare
on 01-16-2014 10:12 AM

ZoufgR A big thank you for your blog article. Awesome.

awesome things! wrote re: The Tortoise and the Hare
on 02-08-2014 4:02 AM

RsLLRw I really like and appreciate your post.Much thanks again.

Add a Comment

(required)  
(optional)
(required)  
Remember Me?

About The CodeBetter.Com Blog Network
CodeBetter.Com FAQ

Our Mission

Advertisers should contact Brendan

Subscribe
Google Reader or Homepage

del.icio.us CodeBetter.com Latest Items
Add to My Yahoo!
Subscribe with Bloglines
Subscribe in NewsGator Online
Subscribe with myFeedster
Add to My AOL
Furl CodeBetter.com Latest Items
Subscribe in Rojo

Member Projects
DimeCasts.Net - Derik Whittaker

Friends of Devlicio.us
Red-Gate Tools For SQL and .NET

NDepend

SlickEdit
 
SmartInspect .NET Logging
NGEDIT: ViEmu and Codekana
LiteAccounting.Com
DevExpress
Fixx
NHibernate Profiler
Unfuddle
Balsamiq Mockups
Scrumy
JetBrains - ReSharper
Umbraco
NServiceBus
RavenDb
Web Sequence Diagrams
Ducksboard<-- NEW Friend!

 



Site Copyright © 2007 CodeBetter.Com
Content Copyright Individual Bloggers

 

Community Server (Commercial Edition)