Better Software Articles

Please enter an article title, author, or keyword
Make Reuse a Reality with STL Algorithms

Good code is a beautiful thing--especially when you don't have to write it. While most of us are quick to use prepackaged containers such as vectors, lists, and maps in everyday programming, we often overlook algorithms as a reuse tool. Find out how standard template library algorithms, specifically, can put you on the road to reuse.

Chuck Allison's picture Chuck Allison
Why Compilers Miscalculate Floating Point Numbers: Piles of Sand, Redux

In this continuation of his June 2007 article on floating-point numbers, Chuck Allison explains why certain compilers miscalculate sin(x) for large arguments and why some get it right. He also divulges that floating-point spacing is the key to getting the most from numeric computations.

Chuck Allison's picture Chuck Allison
Extreme Programming Is People

Agile agents of change, listen up. Do you remember the Agile Manifesto? How about the part about valuing people over process? J.B. Rainsberger fears that as Extreme Programming becomes more widespread, teachers, consultants, and mentors are losing sight of one of agile’s most important components—teamwork.

J.B. Rainsberger
Kicking Off the Slow Software Movement

Do your team members jump into a project with both feet before they fully understand what problem they are trying to solve? We’ve all been convinced that for our customers faster is better. But is that really what they want? Jeff Patton thinks it’s time for us to slow down and focus on the quality of our products.

Jeff Patton's picture Jeff Patton
Games Stakeholders Play

Activity theory explores what is happening inside a person while he is acting. Find out how you can use it to make better decisions about what to build, create a motivation map, and ask what your stakeholders are thinking about besides using your system.

Alistair Cockburn's picture Alistair Cockburn
Small Releases Big Returns

Many teams work on several projects simultaneously, which is a mistake. By working on one project at a time and releasing early and often, you can achieve startling improvements in value for your stakeholders.

James Shore
Your Mom Doesn't Work Here: Cleaning up with Java Memory Management

For large-scale Java applications, understanding memory-related options might mean the difference between a wonderful user experience and recurring system slow downs. This article offers insight into the workings of Java memory management and shows how it cleans up after programmers, recovering memory associated with objects that are no longer being used.

Alan Berg
Getting Your Hands Dirty

One way to build quality in is to prevent defects from ever happening. Discover how you can avoid defects by figuring out how to test each feature or requirement before you begin to write the code. Clarke Ching offers up an easy, hands-on example you can put to use today.

Clarke Ching's picture Clarke Ching
Go with the Flow

Simplicity in testing is a worthy goal, but in reality it's a messy, complex world. Find out how to defocus your test strategy and use flow testing to follow a specific path through a system's functions, investigating circumstances in which it might fail.

Michael Bolton's picture Michael Bolton
Enough Is Enough: What Does Agile Software Development Mean?

Agile software delivery is about doing sufficient up-front analysis, design, and planning—and then deferring decisions to the appropriate time. But what does “enough” really mean? And why has the term "agile" become a cliché in development circles? Terms like "post-agile" or "pragmatic agile" have emerged as a response to this, but this is only a short-term fix.

Dan North's picture Dan North

Pages

Upcoming Events

Apr 27
Jun 08
Sep 21