101 Uses for Prototypes in IT Projects
It may just be that I have had a unique experience in my development career or that I have just been lucky in regards to the companies I have worked for, but when I am asked the question “What kinds of IT projects specifically lend themselves to the use of prototyping?”, my answer is every single one I can think of.
Let me explain why this is my answer. In the book we are lead to believe, at least this my interpretation, that prototyping is only used when we need to show something to the customer in order to get feedback on requirements, confusing or not (Kendall, K.E. 2011). But in reality prototyping is used by developers in so many more ways than just show and tell.
Yes we use it to clarify and verify that what we intend to build meets the customer’s expectations as referred to in the text. But we also use prototyping in the following ways which make it extremely valuable in pretty much any IT project I can think of.
Effectiveness of a New Technology
Technology moves at such a breakneck pace that pretty much every time I have begun a new project, we have been forced to reevaluate the technologies we used in the last project against the latest and greatest just released technologies by powerhouses like Microsoft.
In order to evaluate these technologies to see if they will be a correct fit for the new project, prototyping is always involved. Being that technology selection has, in my experience, been the duty of the Software Architect she usually spends a bit of time at the beginning of the design phase prototyping out key features of the system, utilizing the new technologies in order to prove them as viable replacements.
An example of this was when I was the architect on a large redesign of an existing archaic system. The plan was to replace the system, keep its functionality intact as is, but update to the latest and greatest technologies for the sake of future proofing the system and increasing maintainability. The archaic system was developed in .Net 1.1 using old ASP.net web forms. The current version was .Net 3.5 and Microsoft had just released their version of an MVC framework. Before we simply dove right in and took off with Microsoft’s MVC we prototyped some of the current system’s key functions in MVC and proved that it was a superior technology and a suitable replacement platform.
Even if we are sticking to technologies we are already familiar with when it comes to system integrations, there is always a proof of concept done in order to prove that the integration is not only possible but that the technologies used on either side and as connectors have what it takes to get the job done.
I had experience with this when I integrated a health profiling platform, which we had created, into an employee health benefit platform. Our system was built on .Net 3.5 ASP.net and their platform was built on a Java web framework. The integration was to be done utilizing what is called SAML (Security Assertion Markup Language).
Despite the fact that our technologies were proven and both ends of the integration had experience with all the technologies involved, a prototype of the integration was created in order to prove the integration concept and architecture before expensive resources, effort, and time were dumped into a full blown development initiative.
I left out a few other examples for the sake of brevity but from those I presented I hope it is clear that although prototyping systems for the sake of requirements clarification and verification of UIs can be extremely effective in obtaining a customer’s true requirements, they can also be extremely useful behind the scenes. It is due to this behind the scenes use of prototyping that its use is not limited to only specific types of IT projects, but to any and all types.
1. Kendall, K.E. (2011). Systems Analysis and Design.
Pearson Education, Inc., publishing as Prentice Hall