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. |
||
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. |
||
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?
|
||
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. |
||
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. |
||
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. |
||
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. |
||
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. |
||
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
February 16, 2010 |
|
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. |
Pages
Upcoming Events
Apr 27 |
STAREAST Software Testing Conference in Orlando & Online |
Jun 08 |
AI Con USA An Intelligence-Driven Future |
Sep 21 |
STARWEST Software Testing Conference in Anaheim & Online |