Published Writing

I’ve published little bits of writing in various sources over the past several years. You’ll find much of it listed below along with summaries and links to download or view full text.

Below you’ll find:

All Articles

Columns on, the website associated with Better Software magazine is a useful, practitioner-centric portal for those working in software development.

How I Stopped Worrying and Learned to Love Prioritization

August 2008

Managing an agile project based on uncensored “Very High,” “High,” and “Low Priority” user stories or backlog items used to induce stress on Jeff Patton. So he learned to implement a combination of prioritization techniques to get these lists-and the job-under control. In this week’s column, find out how Jeff utilizes MoSCoW and business goals to make sense of prioritization.

Secrets to Automated Acceptance Tests

June 2008

Has your team been on the search for a fully automated acceptance test? Before you set out on that adventure, check out some of the accomplishments and perils behind the quest for complete automation, as explained by Jeff Patton in this week’s column. Fully automated acceptance tests may seem like the solution to many problems, but you should know that it comes with a few problems of its own.

An Uncomfortable Truth about Agile Testing

March 2008

For the past eight years, Jeff Patton has been practicing agile software development. One characteristic of agile development is continuous involvement from testers throughout the process. Testers have a hard and busy job. And in the last year, Jeff has finally starting to understand why testing in agile development is fundamentally different.

The Neglected Practice of Iteration

December 2007

In this week’s column, Jeff Patton sends a reminder that software developers who neglect the practice of iteration will get caught either delivering poor quality software or delaying schedules in order to make time to iterate. We kick ourselves, or others, for not “getting [software] right up front” when we all know that the hardest part of software development is figuring out what to build. But there’s hope, and it comes in the form of prototypes and frequent iterations.

The Forgotten Side of Quality

September 2007

Our perception of quality includes objective and subjective factors. In this column, Jeff Patton explains the difference between the two and proposes we forget those differences so we can start viewing the two as equals.

Get Back on Track

March 2007

Jeff Patton will admit that he’s easily sidetracked. In a meeting or simply working on a problem with a small group, a cool idea or puzzling problem can send Jeff sideways. His head spins off track, and his mouth goes with it. He’s not alone in this behavior; Jeff suspects everyone reading this week’s column has been confined in a meeting called to resolve an important problem while someone—and it may have been you—burned up critical time to take the meeting off on a tangent. While not a completely curable condition, there are a few useful techniques Jeff explains in his column that will help keep a collaborating group on track.

Collaborative Card Play

March 2007

Ever find yourself spinning in a conversation where the discussion of ideas gets stuck in a circuitous route? In the world of software development, where the need to effectively communicate elaborate and complex ideas is most important, such conversations end up being counter-productive. In this week’s column, Jeff Patton shares a technique that keeps such conversations on a straight and productive path. Find out how he channels different ideas and categorizes them—all within one very fun and productive meeting.

The Whole Product

November 2006

It’s easy to split user-experience experts and software architects into different categories and still grant them equal importance; the former deals with the facade of the software while the latter deals with the workings beneath the surface. This separate, but equal attitude changed for Jeff Patton after attending a workshop in which his eyes opened to an epiphany of holism in software development. From this enlightened moment, Jeff realized a way software development could change for the better.

Test Software Before You Code

August 2006

Testing doesn’t have to begin after the code has been written. In this week’s column, Jeff Patton resurrects the oldest and most overlooked development technique, which can be used to test a product before any piece of it materializes.

Write a Blockbuster Using User Scenarios

May 2006

Big projects require many little user stories. But if these scenarios don’t add up to one good story, then you’re probably missing out on the big picture. In this week’s column, Jeff Patton describes how his team weaves many small tales into a single strong report by identifying key characters and themes.

Finish On Time By Managing Scale

Feb 2006

When deciding how a user’s task is to be supported in our software, we often look at possible design solutions and select one that’s best for the product and the user. As the project deadline approaches, however, we might choose to dismiss some features outright. In this column, Jeff Patton suggests we try keeping more features by adjusting their scale.

Web 2.0—The Next Generation

Oct 2005

The new Web 2.0 has quietly emerged; well, maybe not so quietly for those who were paying attention. But it is already changing the way we design, develop, test, and release Web applications. This change came about from users’ new expectations of the Web. Web developers’ and programmers’ willingness to adopt these new expectations will not only change the way we see the Web, but will also change the way in which we work every day.

Show Me the Money pdf

Apr 2005

How does your software earn money for your organization? Sometimes the most neglected users of our system are the people who asked for it in the first place—our stakeholders. What happens when we forget that? In this week’s column, Jeff Patton admonishes software experts not to ignore the reasons they built the software in the first place, as it’s busy earning them money!

Test Driven Development Isn’t Testing

Jan 2005

There’s a common misconception that test-driven development is a testing technique when in fact it’s a design technique. In this week’s column, Jeff Patton explains this and how you might use your unit tests to explicitly guide and describe the design of your software.

Articles in Better Software Magazine

Better Software Magazine

Better Software Magazine is a useful, practitioner-centric magazine filled with tactical advice paired with emergent thinking on software development.

Kicking Off the Slow Software Movement pdf

August 2007

In August 2007 I was lucky enough to be able to edit an issue of Better Software Magazine. I was able to choose my authors: Alistair Cockburn, Jim Highsmith, and Jim Shore. I did this because I was lazy – I wanted great articles without a lot of effort. Choosing these authors guaranteed it.

This “Technically Speaking” column from the editor allowed me a page to rant about what was important to me – namely the tendency for software development to dig too quickly into building software before being clear about the context their software will be used in, the goals it should reach, and the problems it should solve.

What Goes Up Must Come Down pdf

Oct 2005

A balanced approach to writing requirements takes a top down and bottom up approach.

It’s All in How You Slice It pdf

January 2005

Design your project in working layers to avoid half-baked incremental releases.

An Elephant In The Room pdf

January 2004

The whole reason we make software is so someone can use it. Yet just who these users are, their needs – skills and goals – is so hard to determine that they are often simply ignored INTERACTION DESIGN helps you stop treating your customers like AN ELEPHANT IN THE ROOM

User-Centric Column in IEEE Software Magazine

ieee software

IEEE Software Magazine is a valuable software practitioner-centric magazine available by subscription.

Consider Multiple Solutions pdf

September/October 2008

In software development we sometimes settle too quickly on the first solution we agree on. In this column I explore quick collaborative ways to ideate – to generate multiple ideas quickly and collaboratively.

Getting Software RITE pdf

May/June 2008

In this column Catherine Courage and Craig Villamor of explain how using the RITE method improves helps them quickly and iteratively test user interface design before sending it to development.

Ambiguous Business Value Harms Software Products pdf

January/February 2008

Sometimes the first step to adopting user-centricity is being clear how the software you’re building will earn money for your organization. Given a clear understanding of business value, it becomes a bit easier to understand how supporting particular users well increases that value. This article gives more detail on this concept and explains a simple approach to building a business goal model.

Understanding User-Centricity pdf

November/December 2007

Software developers often mistake involving users or simply expressing concern about them as "user-centricity." This column explains why being user-centric takes a bit more and explains a simple technique for creating user models.

Miscellaneous Writing & PodCasts

Finding the Forest in the Trees pdf

OOPSLA 2005 Practitioner Report

October 2005

While the iterative development approaches found in Agile Software Development fulfill the promise of working software each iteration, that task of choosing which software to build first can be daunting.

User Centerd Design Round Table mp3

Agile Toolkit Podcast hosted by Bob Payne

August 8, 2005

This Round table addresses the integration of User Centered Design into an agile project. Hosted by Bob Payne. Guests: Rebecca Wirfs-Brock, Lynn Mller, and Jeff Patton.

Hierarchically Managed Attributes pdf

PLoP 2004

Assigning and maintaining values for attributes of large numbers of business objects can be cumbersome. Hierarchically Managed Attributes offers a simple solution by arranging business objects into categorized hierarchies, then assigning and maintaining those attributes at a category level.

Improving On Agility: Adding Usage-Centered Design to a Typical Agile Software Development pdf

ForUse 2003

This paper describes, at a high level, the incremental development cycle typical of an agile software development environment, and how adding Usage-Centered Design will help this process run smoother. Specific points of applicability during the incremental development cycle are pointed out, along with the specific U-CD technique to apply there. The paper assumes a basic knowledge of agile software development and Usage-Centered Design.

Unfixing the Fixed Scope Project: Using Agile Methodologies to Create Flexibility in Project Scope pdf

ADC 2004

Although it seems to be common knowledge that it’s impossible to succeed in a project with fixed time, quality and scope, we often continue to try anyway. This experience report discusses our successful failure at running fixed time and scope projects. I say successful failure because we actually failed to fix scope but arrived at an acceptable way to vary scope and deliver on time in an environment not normally amenable to variable scope. This paper discusses the methods used and makes recommendations on how you might unfix scope in your development environment.

Hitting the Target: Adding Interaction Design Agile Software Development pdf


Extreme Programming appears to be a solution for discovering and meeting requirements faster (through close customer collaboration) as well as creating quality software. In practice we found XP did deliver high quality software quickly, but the resulting product still failed to delight the customer. Although the finished product should have been an exact fit, the actual end-user still ended up slogging through the system to accomplish necessary day-to-day work. This paper describes using interaction design in an agile development process to resolve this issue. Using interaction design as a day-to-day practice throughout an iterative development process helps our team at Tomax Technologies deliver high quality software, while feeling confident the resulting software will more likely meet end-user expectations. The method of Interaction Design followed here is based on Constantine and Lockwood’s Usage- Centered Design. Recommendations are provided on how to practice an agile form of U-CD and how to incorporate bits of Interaction Design thinking into every day development and product planning decisions.

Search This Site

Blog RSS Feed Link

Public Classes

Conferences & Events

Site Resources


Contact Information email

Jeff Patton

Salt Lake City, Utah

please feel free to contanct me at:

  • jpatton at acm dot org