This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2005/04/the-prototype-pitfall.html
I’m in this very position at the moment - I have built a prototype to design the UI and how the application hangs together. Strictly, I should now through this all away and start again - laudable - but I simply don’t have the time to do this.
I need to deliver the website to the testers in six weeks. I needed to prototype to show the users what to expect and to flesh out some UI concepts, but now cannot bring myself to dump it all because if I do, I doubt I’ll hit the dealine.
I think that’s the crucial point: developers (in my experience) end up basing production applications on prototypes because they don’t have the time to do anything else.
I’m with Andy on this one. I run into the same issues of hitting deadlines. Many organizations don’t do projects according to textbook SDLC. Now with .NET, RAD development seems to take a whole new spin here at work with prototypes becoming full-fledged applications that are supported on a 24/7 basis. Our group’s motto usually is…if you write the code, be ready to support it…so take the time the first time to do it right…regardless if it’s a prototype. Don’t be sloppy.
I agree with the above comments… The ideal solution is indeed to build a prototype which allows you to form a more rounded UI/UX and then based on what you have learnt in the prototyping stage, start building the true application with a blank canvas only using the prototype for reference.
Unfortunately the vast majority of developers do not have this luxury and because of time constraints will have to use the prototype as a starting point!
As a head of development I am trying to foster a more clinical approach to our development efforts where we prototype correctly, develop the application in insolation to the prototype and then have appropriate testing strategies but unfortunately as we are a small company we often find ourselves having to cut corners due to resources issues and time!
All we need is a perfect world!!!
If you’re running into deadline problems and need to use your prototype you are spending too much time on your prototype or developing a prototype that is too feature rich/polished for a prototype.
A prototype shouldn’t take you more than a day (if that), precisely because you should be throwing them away. If you go into it thinking, “I can just reuse my prototype code and save time later!” You will automatically spend more time on the prototype that you could/should be using to just develop the final product.
It’s kind of funny that the majority of the article deals with what to do if you can’t throw away your prototype and the first comment says something along the lines of, “… but I can’t throw away my prototype! What should I do?”