Norman Chapter 6 Krug Chapter 7 A: Evolutionary Design Jeff Offutt http://www.cs.gmu.edu/~offutt/ SWE 205 Software Usability and Design
Losing Evolutionary Design Pre-1850 : Hand-crafted objects Design evolved over time, each new object better than the last Very high production cost 1850s-2000s : Large-scale manufacturing The same (flawed) design is quickly put into thousands of products Very low production cost 1960s-2010 Making software perfect “out of the box” Zero production cost Manufacturing defeated evolutionary design! 27-Feb-19 © Jeff Offutt
Evolutionary Software Design Pre-Web software design & production Strive for a perfect design, expensive development Deploy a new version ever 4 to 6 years Evolution was very slow Post-Web software production Initial “pretty good” design and development Faster evolution Automatic updates of desktop applications Software upgrades pushed out to mobile devices Replacing chips in cars during oil changes Internet of Things We have resuscitated evolutionary design ! 27-Feb-19 © Jeff Offutt
Example: Designing Public Faucets Problem : People forget to turn off the water Solutions : Must hold the faucet on One-handed washing, cannot use hot and cold simultaneously Automatically turn off after X seconds More expensive, less reliable, and what is X? Foot pedal Complicated plumbing, control is invisible, temperature and volume cannot be controlled Sensor Expensive, controls are invisible, temperature and volume cannot be controlled 27-Feb-19 © Jeff Offutt
Creeping Featurism Designers love to add more features But how many do users really want ? How many do users know how to use ? On my old mobile phone, I used 16 of 31 top-level menu items Roughly half of PPT (and I’m a heavy user!) Excessive features make UIs harder to learn, slower to use, and more error-prone Usability testing can reveal which features are used 27-Feb-19 © Jeff Offutt
In-class Discussion With your near neighbors, discuss: How are TDD and evolutionary design related? 27-Feb-19 © Jeff Offutt