Better Software Magazine Articles

Is ''Agile'' Distracting You?

If a process tool or service claims to be agile it must be good, right? Not necessarily. The term "agile" has become abused and, since we don't have a standard dictionary definition, it is open to interpretation. So, let's look beyond the label to what really matters—value.

Jonathan Kohl's picture Jonathan Kohl
From Here to Acceptance Test-Driven Development

Acceptance test-driven development (ATDD) means different things to different people based on their experiences—from "It's all about testing" to "It has nothing to do with testing,” and from "TDD, ATDD—it's all the same" to "TDD and ATDD are nothing alike." These nine landmarks will help you navigate ATDD no matter where you are coming from.

Antony Marcano's picture Antony Marcano
So, You've Got a Problem: Crafting Remarks and Abstracts for Defect Reports

Software defect reports are among the most important deliverables to come out of software testing. They are as important as the test plan and will have more impact on the quality of the product than most other deliverables from the software test team. It's worth the effort to learn how to write an effective defect report that conveys the proper message and simplifies the process for everyone.

Kelly Whitmill's picture Kelly Whitmill
Idioms and Idiosyncrasies

As programmers, we are not merely engineering drones; we are also artisans. The act of programming involves as much artistry as it does technicality. When we craft great software, we naturally use language idioms help to show the elegance, beauty, and artistry of a piece of code. But sometimes the desire for beautiful idiomatic code can trip us up.

Pete Goodliffe's picture Pete Goodliffe
Programming with GUTs

Because tests are commonly viewed in terms of offering quantitative feedback on the presence or absence of defects in specific situations, Good Unit Tests need to both illustrate and define the behavioral contract of the unit in question. Do you have GUTs?

Kevlin Henney's picture Kevlin Henney
Encourage Pair Programming

Pair programming is one of the most controversial agile practices. Managers are concerned about the costs and developers are concerned about personal agony. But there also are many benefits. If you are thinking about trying pair programming, here are several reasons why you should.

Rob Myers's picture Rob Myers
Software: Use at Your Own Risk

Is it really so hard to produce software that works? When was the last time you read a software license agreement? Most are one-sided statements that limit the product developer's liability. It's time to move away from "Use at your own risk" software and be upfront with customers about the true cost of quality.

Chuck Allison's picture Chuck Allison
A Galaxy of Patterns

The Gang of Four's design patterns have a special place in many programmers' hearts. But it's time to look beyond the GoF twenty-three and realize they aren't the only patterns in the universe.

Neil Harrison's picture Neil Harrison
How to Fail with Agile

A switch to agile often conflicts with personal career goals such as maintaining the status quo and working no harder than necessary. These twenty guidelines will help you sabotage your agile project, helping you fail quickly and spectacularly.

Stop The Insanity! Using Root Cause Analysis to Avoid Repeating Your Mistakes

We've all heard Einstein's definition of insanity, and it definitely holds true in software development. We "are" going to make mistakes in product development, but root-cause analysis can help us understand those mistakes and be proactive in not repeating them.

Ed Weller's picture Ed Weller


AgileConnection is a TechWell community.

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