by Brian Ensink
27. January 2010 21:42
Prototyping the architecture for a large new project can be a valuable step. It can help solidify high level software architecture, measure performance, simulate different scenarios, drive further discussion, and more. But a prototype is a poor way to convey a proposed architecture and is no substitution for a real discussion about a specific project's architecture. Implementing a prototype is time consuming and expensive and its easy to get caught up in technical details and lose sight of the purpose. Consider prototyping a complex client-server application, for example a MMORPG. Seems like multiple prototypes would be involved during the project but is there any doubt that the development team would start with pencil and paper or at a whiteboard and toss around out ideas?
The question is really simple: What architecture is being prototyped? The "what" question can't be answered by the code of the prototype itself. Rather the "what" is the architecture concept resulting from a real discussion before any prototype is implemented. Without that discussion even the developer doing the prototype has a hard time answering the simple question: "What is being prototyped?". And if that is the case it is time to take a step back and just talk about the architecture.