Better Software Magazine Archive: April 2009

IN THIS ISSUE

Do You Know Why You Are Doing That?
By Jonathan Kohl

It's easy to get caught up in the inertia of a project and forget to ask exactly what we are developing, who our customers are, and what their goals with our software might be. Few software projects have the time and budget to figure out what their project is through trial and error. Getting clarity on project focus not only helps productivity, working to create software that people actually need increases our chances for success.

The Trouble with Derivation
By Allen I. Holub

This article discusses the dark underbelly of derivation: the fragile base class. It's possible to modify a base class in such a way that, even though you've improved its implementation and all your tests work just fine, you've nonetheless damaged the derived classes, perhaps fatally.

Three Pounds of Manure in a Two-Pound Sack
By Payson Hall

Multitasking is not a magical cure for getting too much work done by too few resources. Listen in as Payson Hall eavesdrops on a coaching session between two managers about how to assign and prioritize work.

Learning from Experience: Software Testers Need More than Book Learning
By Michael Bolton

People often point to requirements documents and process manuals as ways to guide a new tester. Research into knowledge transfer, as described in The Social Life of Information, suggests that there is much more to the process of learning. Michael Bolton describes his own experiences on a new project, noting how the documentation helped ... and didn't.

Resistance Is Futile
By Lee Copeland

Why do so many people resist change, even when that change will be for the better? It's simple, really. Every change ends something, and endings mean loss. People don't like loss. Even the best changes mean something familiar will end.

What's It Mean? ...Reducing Imprecision to Improve Verification
By David Gelperin

Imprecise language makes understanding and, therefore, software verification more difficult. This article describes techniques for detecting and repairing vague and ambiguous software requirements.

Navigating Conflict
By Lyssa Adkins

On good agile teams, conflict is frequent and viewed as normal. On great agile teams, conflict is constant and welcome as a catapult to high performance. What can we do to help teams chart their course through conflict so that it turns into a constructive force for greatness?

Understanding Software Performance Testing Part 1
By Dale Perry

Most people don't fully understand the complexities and scope of a software performance test. Too often performance testing is assessed in the same manner as functional testing and, as a result, fails miserably. In this four-part series we will examine what it takes to properly plan, analyze, design, and implement a basic performance test. This is not a discussion of advanced performance techniques or analytical methods; these are the basic problems that must be addressed in software performance testing.

CMCrossroads is a TechWell community.

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