December 13, 2007
@ 06:08 PM

Has this ever happened to you?  You been asked to put together something quickly to demonstrate some functionality and it somehow has ended up in production?  I have, and for that reason, I believe there is no such thing as a prototype.

When I'm asked to see if something is possible, I, being a good pragmatic programmer, run off to implement a quick prototype.  Author David Thomas explains the idea of a prototype:

Prototypes by their nature are not designed to be long lasting code. Prototypes are designed to be thrown away. They're one-offs. It is inappropriate to over-engineer a prototype. A prototype is like a town in a western movie. It's all facade. There's nothing behind it. You cannot move in and raise a family in one of those houses.

If you've been around for any period of time in development, you've probably written something yourself, or at the very least seen something that has weaseled it's way to production that was never meant for production.

Believe it or not, the site below is in production. 

proto2

Currently the site performs limited, but somewhat crucial, functionality.  The administrative home page clearly leaves something to be desired.  However, I happen to know the developer who worked on this site and he explains that it was never intended to go live in it's current state.  Business rules/needs trump gold-plating, it's a concept that the business-brain part of me understand, but the developer/craftman.

Talking with another developer today, he recalled a system he put together as a consultant to demonstrate some piece of functionality.  Some time later another developer was putting a pretty UI on it, since it had made it's way to production.

I think somewhere deep inside of developers, we know that when asked to prototype something it may someday end up in production, whether we build it for production or not.  Developers are prideful, artistic creatures.  Our code is our craft!  We're also learnable.  I now tend to make prototype code something I would be proud of if I were to show it someone else.

Ultimately I think prototypes are a great tool, but there's a danger in the prototype going live, which from the definition above isn't sustainable.  Ultimately that's why I'm jaded a bit and say that a prototype is an imaginary thing, only production and soon to be production.


 
Comments are closed.