Defining Acceptance Criteria for Agile Requirements

Acceptance criteria can be helpful in expanding on user stories in order to capture requirements for agile projects. However, acceptance criteria should not be a route back to long, detailed documents, and they are not a substitute for a conversation. This article tells you how and when acceptance criteria should be written and employed.

Allan Kelly's picture Allan Kelly
The Benefits of Pair Programming

This article details a team’s experience in implementing pair programming as a way to get work done as part of its agile transformation. It delves into the many positive results from the pairing experiment, as well as some of the negatives that were encountered, and weighs whether developers think pair programming is a worthwhile endeavor.

Tim Groven's picture Tim Groven
BSC West 2015 Keynote: Better Thinking for Better Software: Thinking Critically about Software Development

Software developer Laurent Bossavit delivered the second keynote presentation, about why we need to think more critically about software development. He began his presentation by saying his intention was to make you question what you know—or what you think you know.

Beth Romanik's picture Beth Romanik
Always Read the Label: Getting the Most from Your Tools

It is possible to find a new, innovative use for a tool, but it’s much more likely that you’ll do better using the tool in the way its creators intended. And whenever you reach for a tool, check that it’s actually going to help solve the challenge you’re facing. This article explains why first and foremost, conversation is more important than a shiny new tool.

Seb Rose's picture Seb Rose

Better Software Magazine Articles

When Software Smells Bad

Most software needs to be "maintainable" and have high "internal quality." But what does that mean in practical terms? Code smells form a vocabulary for discussing code quality and how well suited code might be to change. The smells also provide good indications as to what to refactor and how.

Leveraging A Learning Culture

Mistakes happen. It's how you respond to them that matters. Teams might react to a bug with panic and blame, leading to a quickly hacked fix and possibly more issues. Taking time to investigate and learn leverages problems into process and practice improvement and a higher quality product.

Lisa Crispin's picture Lisa Crispin
The Ghost of a Codebase Past

Revisiting your old code can be an enlightening experience. Pete Goodliffe encourages us to look back at our old code to see how our technique has improved, how our programming skills have progressed, and what we can learn from it.

Pete Goodliffe's picture Pete Goodliffe
A Gram of Prevention

Following an "I-click-therefore-I-Program" methodology does not lead to quality software. Good code can and should evolve from clear, up-front descriptions of the solution to the problem at hand.

Chuck Allison's picture Chuck Allison


Mobile Development and Aggressive Testing: An Interview with Josh Michaels

Josh Michaels is an independent software developer who makes apps for the iPad, iPhone, and Mac under the company name Jetson Creative. In this interview, Josh discusses mobile development, testing aggressively, and keeping users happy. 

Jonathan Vanian's picture Jonathan Vanian
For Maximum Awesome: An Interview with Joe Justice

Joe Justice is a consultant at Scrum Inc. and inventor of the Extreme Manufacturing project management method. He also is the founder of Team WIKISPEED, an all-Scrum volunteer-based, "green” automotive prototyping company.

Cameron Philipp-Edmonds's picture Cameron Philipp-Edmonds
Maintaining the Programming Mob: An Interview with Woody Zuill

"Fun" and "kindness" aren't the first things that come to mind when thinking of the mob, but in software development—they're mandatory. Woody Zuill discusses how mob programming takes a very agile and collaborative effort at delivering great software on time, and with the respect of everyone on board.

Noel Wurst's picture Noel Wurst

Conference Presentations

Program Management: Collaborating across the Organization

To be most effective when managing a large program, the component projects should limit their batch size, create networks of people, and report status in a way that works for the entire program. For those of you who are not quite ready for agile, Johanna Rothman explains how to use staged...

Johanna Rothman, Rothman Consulting Group Inc.
When Code Cries: Listening to Code

What is the best way to learn a new programming language or improve coding skills with the language you already use? Cory Foy has developed a new method for learning—and teaching—new programming languages and improving programmer expertise on their current languages. 

Cory Foy, Cory Foy, LLC
Reducing the Cost of Software Testing

The demand to deliver more software in less time is increasing. Give in to the pressure without thinking, and you end up facing burnout, stress, business risk, and, most likely, even more demands. Refuse, fight the good fight, and it is likely the business will replace you with someone else.

Matthew Heusser, Excelon Development
Key Strategies to Survive the Mega Test Program

Sometime in your career as a test manager, you’ll be assigned to lead the effort for a program so large that the CEO and board of directors monitor it. These are programs that bet the organization’s future and come with a high degree of risk, visibility, pressure, and fixed deadlines. 

Robert Goetz, Kaiser Permanente

AgileConnection is a TechWell community.

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