Prototyping: alternative systems development methodology by J M Carey Presented by Cynthia Johnson February 7, 2007 EEL 6883 1 What is Prototyping? “’Prototyping’ is the process of quickly building a model of the final software system, which is used primarily as a communication tool to assess and meet the information needs of the user?” – J M Carey 2 What is prototyping? “Prototyping is the use of approximately 30% of the ultimate staff to build one or two working versions of various aspects of a system. It is not production code but it may eventually become pre-production code or it may be completely discarded. In the prototyping effort, we are not concerned with the maintainability of the code nor are we concerned with formally documenting it.” – Larry Bernstein 3 Why use prototyping? Helps user clarify their needs Less ambiguous than traditional narrative function specification Improves team communication. “A picture is worth a 1000 words” Less emphasis on time consuming documentation Generally faster than traditional development 4 Why prototype? The prototype provides a vehicle for systems engineers to better understand the environment and the requirements problem being addressed. A prototype is a demonstration of what's actually feasible with existing technology, and where the technical weak spots still exist. A prototype lets the developer meet earlier schedules for the production version. A prototype allows for early customer interaction. 5 Prototyping Environments Two major types of prototyping environments mentioned. Automated development environments Prototyping toolkits – a collection of unintegrated tools. 6 Fourth and Fifth Generation Software Languages Often abbreviated 4GL, fourthgeneration languages are programming languages which are closer to human language than previous languages. Most of today’s 4GLs are database languages. One example is FIND ALL RECORDS WHERE NAME IS "SMITH" 7 The generations of computer languages 1st Generation Machine Language 2nd Generation Assembly Language 3rd Generation C, C++, FORTRAN, Java, Pascal, Ada 4th Generation SQL, RPG-II 5th Generation Used for artificial intelligence and neural networks – primarily researchers 8 Successful 4GL Languages Database Query SQL, Progress 4GL, Informix Report Generators BuildProfessional, PostScript Data Manipulation and Reporting Clarion, GraphTalk Screen Painters, GUI Developers FourGen, Visual Basic 9 Types of Prototyping Type I – Iterative Type II - Throwaway 10 Type I - Iterative Uses the Prototype as the final system after a series of iterative upgrades Generally uses a 4GL tool for development 11 Type II - Throwaway Prototype is developed in 4GL or toolkit Final product based on prototype built in 3GL language. 12 Advantages of prototyping Faster development time Easier for end-users to learn to use More end-user involvement Enhances user/analysts communication Requirements are easier to determine. 13 Disadvantages of prototyping Undue user expectations Inconsistencies between prototype and final product Final system inefficiencies Lack of attention to good human factors practice. Inattention to proper design and analysis. 14 When to prototype A good prototyping candidate is Dynamic Transaction processing based Contains extensive user dialogs Is small Is well defined Is online ‘is’ the business 15 When not to prototype A system with the following attributes is not a good candidate Is stable Is decision-support based Is ill-defined Makes little use of user dialogs Is real-time Has lots of number crunching 16 Methodology Following good methodology is key to successful prototyping Four phases of prototype development Determine what to prototype Build the prototype Test the prototype Use the prototype as a model 17 Incorporating Human Factors Prototyping does nothing to ensure use of good human factors practices. The issue of “user friendly” or usability has become a huge determinant of system success. A system that works perfectly may be rejected if difficult to use Note that this is not an issue that applies just to prototypes. 18 Some good guidelines Know your user Use selection not entry Make the system behave predictably Make the system unobtrusive Change displays as little as possible Minimize keystrokes and mouse use Use meaningful error messages Allow for “undo” 19 Case Study- NJ DMV Price Waterhouse contracted to build New Jersey’s DMV primary information system. They chose a new (at the time)4GL called Ideal from Applied Data Research to develop the system When delivered, the response time was so slow that the backlog required thousands of hours of overtime 20 What went wrong? Ideal was new and untested. Little time was spent training staff in its use The contract imposed bigger penalties for late system than a non performing one They ignored consultants warnings that Ideal was not the right tool. 21 How did they fix it? By converting 58 of 800 modules to COBOL, system performance was made acceptable. Those 58 modules performed 85% of the systems work. 22 Case Study: Town and Country Credit Line Banking card system improvement Hired consultants to help them choose IEF (Information Engineering Facility) from Texas Instruments Used Iterative prototyping and delivered a successful system 23 What went right? Tool was 5 years more advanced than Ideal They did a more extensive study of available tools before choosing Learned from others’ mistakes 24 Summary Prototyping is made possible by the availability of 4GLs and soon 5GL Not all systems are good candidates for prototyping For those that are, prototyping can reduce development time and cost Prototyping does not ensure good human factors 25 My opinion I’m not a big fan of type II prototyping. Anything that gets thrown away seems wasteful and end product may not match prototype. Iterative prototyping is good for working out incompletely defined user interfaces Customer is usually happier when they have up front involvement in final product. 26 Additional References http://www.webopedia.com/TERM/F/f ourth_generation_language.html http://en.wikipedia.org/wiki/4GL “Importance of Software Prototyping” by Larry Bernstein Have Laptop - Will Travel, http://www.dacs.dtic.mil/awareness /newsletters/technews21/prototyping.html 27