People-Centered Software Development: An Overview of Agile Methodologies <s> Agile Quality Assurance <s> A six-step, iterative, empirical human factors design methodology was used to develop CAL, a natural language computer application to help computer-naive business professionals manage their personal calenders. Input language is processed by a simple, nonparsing algorithm with limited storage requirements and a quick response time. CAL allows unconstrained English inputs from users with no training (except for a five minute introduction to the keyboard and display) and no manual (except for a two-page overview of the system). In a controlled test of performance, CAL correctly responded to between 86 percent and 97 percent of the storage and retrieval requests it received, according to various criteria. This level of performance could never have been achieved with such a simple processing model were it not for the empirical approach used in the development of the program and its dictionaries. The tools of the engineering psychologist are clearly invaluable in the development of user-friendly software, if that software is to accommodate the unruly language of computer-naive, first-time users. The key is elicit the cooperation of such users as partners in an iterative, empirical development process. 15 references. <s> BIB001 </s> People-Centered Software Development: An Overview of Agile Methodologies <s> Agile Quality Assurance <s> Bill Buxton and I share a common belief that design leadership together with technical leadership drives innovation. Sketching, prototyping, and design are essential parts of the process we use to create new products. Bill Buxton brings design leadership and creativity to Microsoft. Through his thought-provoking personal examples he is inspiring others to better understand the role of design in their own companies--Bill Gates, Chairman, Microsoft"Informed design is essential." While it might seem that Bill Buxton is exaggerating or kidding with this bold assertion, neither is the case. In an impeccably argued and sumptuously illustrated book, design star Buxton convinces us that design simply must be integrated into the heart of business--Roger Martin, Dean, Rotman School of Management, University of TorontoDesign is explained, with the means and manner for successes and failures illuminated by engaging stories, true examples and personal anecdotes. In Sketching User Experiences, Bill Buxton clarifies the processes and skills of design from sketching to experience modeling, in a lively and informative style that is rich with stories and full of his own heart and enthusiasm. At the start we are lost in mountain snows and northern seas, but by the end we are equipped with a deep understanding of the tools of creative design.--Bill Moggridge, Cofounder of IDEO and author of Designing Interactions"Like any secret society, the design community has its strange rituals and initiation procedures. Bill opens up the mysteries of the magical process of design, taking us through a land in which story-telling, orange squeezers, the Wizard of Oz, I-pods, avalanche avoidance, bicycle suspension sketching, and faking it are all points on the design pilgrim's journey. There are lots of ideas and techniques in this book to feed good design and transform the way we think about creating useful stuff". -Peter GabrielI love this book. There are very few resources available that see across and through all of the disciplines involved in developing great experiences. This is complex stuff and Buxton's work is both informed and insightful. He shares the work in an intimate manner that engages the reader and you will find yourself nodding with agreement, and smiling at the poignant relevance of his examples.--Alistair Hamilton, Symbol Technologies, NYBooks that have proposed bringing design into HCI are aplenty, though books that propose bringing software in to Design less common. Nevertheless, Bill manages to skilfully steer a course between the excesses of the two approaches and offers something truly in-between. It could be a real boon to the innovation business by bringing the best of both worlds: design and HCI. --Richard Harper, Microsoft Research, CambridgeThere is almost a fervor in the way that new products, with their rich and dynamic interfaces, are being released to the public-typically promising to make lives easier, solve the most difficult of problems, and maybe even make the world a better place. The reality is that few survive, much less deliver on their promise. The folly? An absence of design, and an over-reliance on technology alone as the solution.We need design. But design as described here depends on different skillsets-each essential, but on their own, none sufficient. In this rich ecology, designers are faced with new challenges-challenges that build on, rather than replace, existing skills and practice. Sketching User Experiences approaches design and design thinking as something distinct that needs to be better understood-by both designers and the people with whom they need to work- in order to achieve success with new products and systems. So while the focus is on design, the approach is holistic. Hence, the book speaks to designers, usability specialists, the HCI community, product managers, and business executives. There is an emphasis on balancing the back-end concern with usability and engineering excellence (getting the design right) with an up-front investment in sketching and ideation (getting the right design). Overall, the objective is to build the notion of informed design: molding emerging technology into a form that serves our society and reflects its values. Grounded in both practice and scientific research, Bill Buxton's engaging work aims to spark the imagination while encouraging the use of new techniques, breathing new life into user experience design.. Covers sketching and early prototyping design methods suitable for dynamic product capabilities: cell phones that communicate with each other and other embedded systems, "smart" appliances, and things you only imagine in your dreams;. Thorough coverage of the design sketching method which helps easily build experience prototypes-without the effort of engineering prototypes which are difficult to abandon;. Reaches out to a range of designers, including user interface designers, industrial designers, software engineers, usability engineers, product managers, and others;. Full of case studies, examples, exercises, and projects, and access to video clips (www.mkp.com/sketching) that demonstrate the principles and methods.About the AuthorTrained as a musician, Bill Buxton began using computers over thirty years ago in his art. This early experience, both in the studio an on stage, helped develop a deep appreciation of both the positive and negative aspects of technology and its impact. This increasingly drew him into both design and research, with a very strong emphasis on interaction and the human aspects of technology. He first came to prominence for his work at the University of Toronto on digital musical instruments and the novel interfaces that they employed. This work in the late 70s gained the attention of Xerox PARC, where Buxton participated in pioneering work in collaborative work, interaction techniques and ubiquitous computing. He then went on to become Chief Scientist of SGI and Alias|Wavefront, where he had the opportunity to work with some of the top film makers and industrial designers in the world. He is now a principal researcher at Microsoft Corp., where he splits his time between research and helping make design a fundamental pillar of the corporate culture. * Covers sketching and early prototyping design methods suitable for dynamic product capabilities: cell phones that communicate with each other and other embedded systems, "smart" appliances, and things you only imagine in your dreams;* Thorough coverage of the design sketching method which helps easily build experience prototypes-without the effort of engineering prototypes which are difficult to abandon;* Reaches out to a range of designers, including user interface designers, industrial designers, software engineers, usability engineers, product managers, and others;* Full of case studies, examples, exercises, and projects, and access to video clips that demonstrate the principles and methods. <s> BIB002
Have you ever worried that the feature you've been developing doesn't match the expectations of your customer? Have you ever been reluctant to change code because you might break something? Have you ever been unsure about whether or not you've finished a feature? Have you ever been terrified that one of the other developers might go on vacation, and that no one else will be able to understand what his code does? Agile quality assurance is a set of testing methodologies that have evolved over time to minimize these risks on software development projects. The overall goal of these methodologies is to increase understanding of and communication about the system that's being developed. These practices can be divided into two classes: developer-facing and customer-facing tests. Tests written by developers ultimately help them design and understand the system, while tests written under the auspices of customers help developers understand what customers want and help customers understand what developers can offer. Developer-facing tests require in-depth knowledge of the way in which the system works, and require technical proficiency in a testing language to understand. These tests are usually glass-box (or white-box) tests in which parts of the source code of the system are tested. This name derives from the fact that the system under development is being treated as something we can look into and inspect the intermediate results of our actions. For example, in glass-box testing, we can set or inspect the state of specific objects or call only specific methods within the application rather -as opposed to triggering high-level functionality, which would result in changes to the states of many objects and many method calls. This allows much more fine-grained understanding of the way in which a system works, and will help developers ensure that the feature they are coding matches their goals for its behavior -in other words, that developers are building the system right. Developer-facing tests are almost always automated through a testing framework like JUnit BIB002 or the Visual Studio Unit Testing Framework BIB001 . Examples of developer-facing tests include unit tests, integration tests, and system tests. Customer-facing tests, on the other hand, are intended to be understandable by domain experts without requiring programming knowledge. These tests tend to be blackbox tests in which the internals of the system are not considered. An input is provided, and the expectations of the business experts are compared against the output the system produces. This sort of test ensures that the code created by developers fulfills customer expectations -in other words, that developers are building the right system. Customer-facing tests can be automated (through a system like FitNesse  or GreenPepper  ) or manual (through live demos on the actual system). Customer-and developer-facing tests can be envisioned as two partiallyoverlapping squares, as shown in Fig. 10 . Developer-facing tests can show that individual parts of an application are working in detail on a programmatic level, but not that defined features are missing. Customer-facing tests, on the other hand, can show that features are present, but not that they are working in detail on a programmatic level.