Articles

Please enter an article title, author, or keyword
Use Uncertainty As a Driver

Confronted with two options, most people think that the most important thing to do is to make a choice between them. In design (software or otherwise), it is not. The presence of two options is an indicator that you need to consider uncertainty in the design. Use the uncertainty as a driver to determine where you can defer commitment to details and where you can partition and abstract to reduce the significance of design decisions.

Kevlin Henney's picture Kevlin Henney
The Checklist Manifesto as Agile Primer

Agile software development methods often have very few explicit processes. However, these processes are essential and require discipline to execute well. We're often tempted to skip steps, either because we think that the step doesn't apply in a particular situation or we forget to do it.

Steve Berczuk's picture Steve Berczuk
Quality Management - Testing in the World of Scrum and Agile Product Development

Does Quality Management have a place in agile product (system-software) development and delivery?

 

TechWell Contributor's picture TechWell Contributor
An Unusual Question about Managing Change

Change is disruptive. Even when a particular change leads to a positive outcome, the transition from the old way to the new way can be a time of turbulence. Might there be circumstances in which it's appropriate, or even helpful, to prolong that period of turbulence? That's the question Naomi Karten wrestles with in this column.

Naomi Karten's picture Naomi Karten
The "One Right Way"

For those who believe there has to be one right way to do something, especially in software development - there can be. But that one way isn't likely to come from a single individual. Through collaboration and teamwork, some of the greatest single ideas have evolved.

Lisa Crispin's picture Lisa Crispin
Estimation Poker

Planning aoker, an estimating method popular with tgile teams can address some of these issues. Briefly, planning poker involves getting the developers on a team together to estimate stories using a deck of cards that have numbers that represent units of work.

Steve Berczuk's picture Steve Berczuk
Simplicity Before Generality, Use Before Reuse

A common problem in component frameworks, class libraries, foundation services, and other infrastructure code is that many are designed to be general purpose without reference to concrete applications. This leads to a dizzying array of options and possibilities that are often unused, misused, or just not useful. Most developers work on specific systems: the quest for unbounded generality rarely serves them well (if at all). The best route to generality is through understanding known, specific examples and focusing on their essence to find an essential common solution.

Kevlin Henney's picture Kevlin Henney
The Indivisible Task

One of the things that makes agile work well is a daily sense of progress that can be reflected in, for example,  a burn-down chart.  For burn-down charts to be meaningful, the estimate of amount of work remaining in a sprint need to be accurate. Re-estimating work remaining in a task is helpful,  but the best measure of progress is the binary "done/not done" state of the items in your backlog.

Steve Berczuk's picture Steve Berczuk
Quantifying Risk: The Purpose of Testing

Testing is such an integral part of our software projects that we often don't stop to think about why we do it. We must do it. What else is there to know? It is obvious that software that has not been tested is unready for deployment. As painful experience has taught us, testing does not guarantee that the software is fit to deploy. Even rigorously tested software may still have hidden fatal flaws.

Alan S. Koch
The Tools, Processes, and Infrastructure of ALM

Enterprise CM is not a simple feature, process, or edict. It is the establishment of tools, processes, and infrastructure so that management can confidently reap the benefits of CM and ALM across the enterprise.

Joe Farah's picture Joe Farah

Pages

Upcoming Events

Apr 27
Jun 08
Sep 21