The Patterns: Modelling and Prototyping
Modelling and Prototyping
Building Architecture
Modeling is a function of architectural design and prototyping is a function of engineering design. Prototypes were developed for commercial products at the Bauhaus. The "Haus am Horn" was a prototype for modern living and became an early expression of the American home of the 50s and 60s.  
Architecture Intensive Disciplines
A prototyping environment should be created in the software development domain. Templates, re-use libraries and "play-pen" or sandbox environments can help to encourage design and learning through prototyping. Prototypes can also be used for unit testing and modular development. When designing user interfaces, the focus should be on usability rather than back-end constraints, hence the advantage of a 3 tier model that separates the presentation layer, the middle layer and the data layer. An agreement regarding the interface design can be established in the early stages on the framework, design principles and type of user controls to be used.  
Case Study A: Large Corporate IT
We encouraged prototyping for one main reason - we needed to address usability to attract more users to web based applications. Users tended to use spreadsheets for their business models (where the most up-to-date data resided) and stored these on their workstations. This contributed to reporting problems and put pressure on management teams. We developed a template for "web-sheets" or web-based worksheets. These used XML and rich client-side functionality (script classes). It was easy to prototype and focus on user requirements because the inherent problems with building a data layer (object-relational mapping) did not exist. The XML could be sent to the database when ready and the back end processing would be programmed by the data architects and engineers.

On one project using a conventional approach with a database, the prototyping phase had stretched to 2 months with only 1 of 30 modules completed. The problem was that the developer was spending more time trying to resolve database related issues rather than addressing the user design problems. Using the "web-sheet" template, the prototyping was reduced to 2 days for the entire 30 modules and the user representatives quickly adopted the web-based application. As a result, the method was used to convert some of the more complex spreadsheets in the business unit. An initiative supported by the user community who saw the benefits of swapping their spreadsheets for the "web-sheets".

A "play-pen" development portal was established which could be used to develop prototypes of application modules.  
Case Study B: Small Commercial Team
A unit testing environment was created and applications were built as modules with built-in tests. When the module was completed in the unit development and test environment, programmers could pair together on the main development workstation and integrate the component. This ensured that the knowledge of the integrated unit did not reside in one person.