By: Jayati
December 23 2019

What and How to Prototype in Software Development

Let’s assume you are working on your next project which requires you to build a site from scratch. Now, such a hefty piece of work requires inputs from all corners: designers, UX teams, developers and the marketing team. And often there are clashes among different teams or team members about the priority and flow of work that needs to be adopted. For a smooth flow that can be executed to address the project requirements, the project managers create a prototype for each stage that will eventually lead to the final product. 

As a working model of software, prototyping allows limited functionality and users can evaluate the proposed plans for its feasibility. As a basic characteristic, prototyping helps you understand the requirements of the project and eliminate barriers by reviewing and sharing feedback on the flow and design of the project. 

Let’s understand it in detail. 

Post it notes on a wall

What is Prototyping in software development?

A prototype is nothing but a mock test of your ideas in an early stage of production. It lets you gain valuable feedback from the users before the final product is delivered to the clients. While you run your prototypes, there are a lot of inputs that can be undertaken which improves the overall workflow of the process, too.  

In terms of software like Drupal, an open source CMS, here’s a stepwise approach that can be executed to design a software prototype:

Step 1: Requirement Identification

As a starting point, gather the basic requirements from the technology to the user interface preferences. This basic knowledge is the pillar of your prototype which will eventually determine the internal and intricate design. It will also affect performance and security while representing your business.  

Step 2: Initial Prototype

With the initial requirements in place, the features will work in a certain way that will not correspond to the actual software. The whole concept of the prototype is just to have an idea of its working, look and feel to the users.  

Step 3: Test and Feedback 

Once the initial prototype is presented to the users, stakeholders and to the target audience, all kinds of inputs are then collected. This organized and valuable feedback is analyzed and put to use for further improvements in the product. 

Step 4: Revise and Repeat

With the accumulated feedback, the review committee discusses the stages where suggested changes can be incorporated based on various factors. Those changes are then implemented and again tested for the prototype cycle to run as a feedback loop. 

Who Should Prototype?

Though the means of prototyping seems exciting and significant, is it for everyone? 

Yes! From designers to developers, prototyping can be adopted by everyone to fight the complexities and learn new possibilities of the project. As it doesn’t require any coding skills, the methods of prototyping help you test your limitations and inculcate processes that are feasible and beneficial. 

When to use Prototyping?

If everyone can prototype, can they do it anywhere? No!

On a case-to-case basis, organizations need to decipher if prototyping will be helpful to a particular project or not. These are a few considerations and situations where prototyping is the best decision:

  • When the requirements of the product are not clear to the team. 
  • When the demands of the product are unstable and change quickly
  • When there are software-intensive and complex systems that need experimentation and minimum risk
  • Big projects with tight timelines and deliverables

Types of Software Prototyping

For different projects under various categories, the software prototypes are major of the following types: 

Rapid Prototyping

Also known as throwaway, rapid prototyping uses very little effort with minimum requirement analysis. As the name suggests, it is discarded as soon as the actual system is developed based on the understandings from the prototype.

Evolutionary Prototyping

This begins with involving minimum functionality on which the future prototypes can be built for the entire system. It is a step-by-step process of gathering requirements in an evolutionary manner.    

Incremental Prototyping

Similar to evolutionary, incremental prototyping is when you build multiple prototypes for different sub-systems and integrate them at the end to form a complete system. 

Extreme Prototyping

Recommended for the web development projects, the Extreme prototyping is divided into three phases. The basic prototype consists of all existing pages where the data processing is simulated in the next phase. Finally, the services are integrated in the prototype.

Software Prototyping - Application

If you have a high user interaction requirements, then software prototyping is the one for you. 

Your online systems with fill out the form and various other needs can use this prototyping to get a near approximate idea of the actual software. 

A downtime with Software Prototyping

Building a prototype is a tiresome job and involves a lot of effort from the teams. Therefore, before making the decision, consider these cons and decipher its value for your software development:

  • Confusing prototypes might add on the time and cost of the project
  • Prototyping may increase functional complexity as the original product differs from the prototype
  • Developers may miscalculate the technical feasibility of the prototype
  • The cost and efforts invested in prototyping get wasted eventually
  • Number of variations in the prototype can vary during the evaluation 
  • Not always it will be possible to accommodate all changes suggested by the users
  • Quick prototypes might lead to sub-standard deliverables

Best practices of Prototyping

With these downsides in mind, let’s also look at some of the best practices that can be adopted in order to avoid falling into the abyss of cons. 

  • Definitely use the prototype for complex and confusing requirements
  • Plan your prototype well and document them for the team to follow
  • Hold meetings with the team to make sure the project is on time and is not delayed
  • There should be a sync between the users and the designer’s approach with an awareness of possible issues and pitfalls
  • Choosing the right type of prototype is the first step of getting it accurately
  • Prioritize the features when implementing in the prototype 
  • Do not fear new ideas and changes during the process or while deploying

Prototyping with Drupal 

When developing with Drupal, an open source CMS, prototyping is one of the most obvious methodologies adopted. Drupal developers utilize this pro-tip to minimize the amount of work and lowers the risk and cost of maintenance. With an already present skeleton, developers just focus on the simplification and enhancement of the site with various themes and functionalities. The additional features like social sharing and theming on the Drupal site become a novice job with the introduction of prototypes. 

For newbies in the Drupal world, the prototypes become their claim to fame with already covered parts in Drupal 8 core and the contrib modules that are at your disposal. 

Further, Drupal aids your prototyping exercises with modules like Webform and Entityform which can build a ready-to-use contact form for the clients to get an idea. 

Similarly, the workflow tool can be created with Workbench, Views, VBO and other unrestricted modules. 

Being a generic methodology, prototyping can be put into many molds and employed for businesses, too.

A plethora of such modules are readily available at Drupal.org. 

Use Case

This is an example where a design-first approach to building modern Drupal websites is being explained while using prototypes to the Drupal site. 

Conclusion 

The act of creating prototypes for the project in question involves a wholesome process. Especially for software development projects, the complexity of prototyping can land you in a fix. Be wary of the type of prototype you choose and how you administer the methodology to your advantage. 

We at OpenSense Labs put into use our expertise in prototyping when designing and building Drupal websites. Hit us up at [email protected] to know more.