Better Software Magazine Articles

Are Your Requirements Complete?

Every system contains at least one (and probably more) set of requirements that fits into one of these categories: the functional who, what, where, when, why, how, and the nonfunctional design and project constraints. No one method or technique captures all requirements, but this approach can assist quality engineers in identifying missing requirements. Our objective is to spot the gaps in the requirements sets—just as a Tetris player spots gaps in those moving blocks—as soon as possible.

Patricia L. Ferdinandi
Learning from Pathfinder's Bumpy Start

Steve March discusses problems experienced by the Mars Pathfinder. He imparts the following lessons: 1) design defensively in the face of complexity; 2) design defensively for post-shipment problems; and 3) beware of best cases.

Steve March
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
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
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
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

Pages

AgileConnection is a TechWell community.

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