BT

Your opinion matters! Please fill in the InfoQ Survey!

Udi Dahan on Throw Away Prototypes

| by Michael Stal Follow 0 Followers on Sep 17, 2012. Estimated reading time: 2 minutes |

In his recent blog post “Build one to throw away” Udi Dahan is addressing the chicken-and-egg problem software developers often face. On one hand, customers don’t exactly like what they want so that they need to closely interact with software engineers. On the other hand, building production-ready solutions for this interaction might lead to high costs. Or, as the author explains,

While there is value in building real functionality on top of your production infrastructure to learn more about the challenges in doing that and in that process, refining the API of your platform, baking more capabilities into it, etc, the problem is that you are slowing down the important learning of what system needs to be built.

Thus, Dahan recommends to “build one to throw away”. For such a prototype  engineers should not use TDD, DDD, CQRS, Event Sourcing, SOA, and so forth. And when creating the prototype, architects should at least know  the most important use cases that are architecturally significant and build a “just enough architecture upfront”. One of the challenges in this context are organizations that have difficulties understanding the difference between prototypes and production-ready code.

Dahan closes with

Efficiency is secondary to effectiveness. You want to make sure your headed in the right direction before putting the pedal to the metal. Rework is to be accepted and, yes, even embraced.

His posting received a couple of comments from readers.

For example, Jonathan Oliver agrees:

I totally agree-especially with efficiency being subordinated to effectiveness. In fact, Stephen Covey, author of the 7 Habits of Highly *Effective* People mentioned how we run in the name of efficiency and this causes all kinds of problems whereas being effective is what was really needed.

Jonathan Atting says:

Great post. Initially the best prototypes are often prototypes done in a mockup language. Not only that everyone sees that it’s a prototype to be thrown away, but one will get much better and more radical improvement suggestions. If the prototype looks like a real thing feedback is mostly on the GUI, like size and position on buttons. But in the end, one will not get the real validation feedback until the users start using it in their real environment.

Nightwatch thinks, prototyping also bears some risks:

This advice is quite dangerous imho – as soon as you get the client excited and ready to move forward you pull a brake instead and say: “not so fast guys, now we have to start programming from scratch – we’ll be ready in four months and we’ll continue from where we are now”. How’s that supposed to work – your client will think you’re wasting his time and destroying what’s been accomplished so far, so you not only discourage them but also give them more time to change their requirements. When you finally show up with your ‘production software’ they will want something else.

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT