Better Software Magazine Articles

An Effective Technique for Verifying Software Design

While working at a telecommunications company, Linda Hamm had the task of developing and automating tests in a very short time with high-quality expectations. One of the projects was a rule-based expert system for switch maintenance. To help nail down the requirements, the group wrote state diagrams. This article is about what they are and how the group used them.

Linda Hamm
Walking the Fine Line between Helpful and Harmful

Jeff Johnson examines user interface problems caused by designers trying to rearrange users' data. He gives examples of software that is too helpful, and concludes that software should support users in their management of displays without managing the displays for them.

Jeff Johnson
Know Thy User

Testing, in its broadest sense, means ensuring that your visionaries and programmers are creating a helpful product that people will actually use. As the two authors of this installment of Bug Report illustrate, understanding how those users will operate your application is more than an exercise in empathy; it's a simple key to avoiding some real usability meltdowns.

Brian Marick
Software Requirements

Brian Lawrence and Johanna Rothman recommend Software Requirements by Karl Wiegers, a "readable, practical book about gathering and managing requirements, focused on best practices."

EXtreme Documentation

The kind of collaboration that Extreme Programming engenders can benefit both publications and development. Writing, like programming, is a naturally iterative, revisionary process. Dana De Witt Luther shares what she's learned about documenting an Extreme Programming project, using iterative planning meetings and story cards.

Dana De Witt Luther
I Think, Therefore I Prototype

Prototypes can help you deliver the right software. Here, Technical Editor Brian Lawrence gives examples of prototypes and some guidelines for prototyping.

Brian Lawrence
Quality Assurance and Testing

Brian Marick argues for using testers at the requirements analysis stage of a project. He says, "While QA is primarily about process, testing—my specialty—is about product. Whatever else a tester might do, she certainly eventually exercises the product with the aim of discovering problems a user might encounter. This essay is about that 'whatever else' the tester does."

Brian Marick
Book Review: Mastering the Requirements Process

Brian Lawrence points to Mastering the Requirements Process as a valuable reference book. The book presents a complete step-by-step method for gathering, modeling, and specifying requirements. Along the way the authors offer easy-to-understand and appropriate examples that nicely illustrate how to apply their techniques.

Brian Lawrence
Test Design: Developing Test Cases from Use Cases

A use case is a sequence of actions performed by a system, which combined together produce a result of value to a system user. Use cases describe the "process flows" through a system based on its actual likely use, so the test cases derived from use cases are most useful in uncovering defects in the process flows during real-world use of the system. Here is an example of how a use case is used to derive and prioritize test cases.

Ross Collard's picture Ross Collard
Lo-Fi GUI Design

This article takes you from “what happens before Lo-Fi Design” (understand the user) to storyboarding (with post-it notes), through final implementation. Other steps include window design (get out the scissors) and simulated execution. This thorough, step-by-step explanation of design method is supplemented with graphics and a usability sidebar.

Luke Hohmann

Pages

CMCrossroads is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.