Archive of Process Improvement Articles

Just Plain BadLameAverageGoodGreat (2 votes, average: 2.5 out of 5)
Loading ... Loading ...
April 18th, 2006

Two big benefits of incremental delivery

Tarun Upadhyay wrote a fair criticism of our previous post on why incremental delivery is good on his blog today. It is great that he is extending the conversation, and he makes some valid points. We definitely missed a big benefit of incremental delivery, and will cover it in this post.

Just Plain BadLameAverageGoodGreat (10 votes, average: 4.4 out of 5)
Loading ... Loading ...
April 13th, 2006

Foundation Series: Basic PERT Estimate Tutorial

PERT is a technique for providing definitive estimates of how long it will take to complete tasks. We often estimate, or scope, the amount of time it will take us to complete a task or tasks. PERT allows us to provide not only an estimate, but a measure of how good the estimate is. Good estimates are a critical element in any software planning strategy. In this post, we will present an introduction to using PERT, explain how it works and how to interpret PERT estimates.

Just Plain BadLameAverageGoodGreat (4 votes, average: 5 out of 5)
Loading ... Loading ...
April 12th, 2006

How To Use Timeboxes for Scheduling Software Delivery

Roger had a great suggestion in the comments to our previous two-part post on scheduling requirements changes based on complexity. Roger pointed out that we had not explained what timeboxing is, but implicitly used the principles of timeboxing in our proposed process. In this post, we explain timeboxes and how they are used.

Just Plain BadLameAverageGoodGreat (2 votes, average: 4.5 out of 5)
Loading ... Loading ...
April 11th, 2006

Scheduling requirements changes - part 2

This process goes against agile principles on paper, but makes teams more agile in practice. Scheduling delivery of a project is an exercise in managing complexity. Scheduling changes to the requirements on the fly is really only marginally more difficult. The key to managing changes is to set expectations with our stakeholders. By defining rational deadlines for change requests, we assure ourselves that we can manage the changes. We also demonstrate responsiveness to our stakeholders. Rational deadlines are not arbitrary deadlines nor are they unreasonable deadlines. Deadlines that vary with the complexity of the changes are rational, easy to communicate, and easy to manage.

Just Plain BadLameAverageGoodGreat (1 votes, average: 5 out of 5)
Loading ... Loading ...
April 10th, 2006

Scheduling requirements changes - part 1

Software product success requires timely delivery. There are many factors that influence our ability to properly scope, schedule, and deliver software. When we propose changes in requirements we introduce risk to the schedule. We can set reasonable expectations for our stakeholders while maintaining a realistic work environment and schedule. In part 1 of this post we detail a requirements triage process that organizes requirements by complexity and allows us to set and meet expectations of delivery.

Just Plain BadLameAverageGoodGreat (1 votes, average: 4 out of 5)
Loading ... Loading ...
April 4th, 2006

Learn to Fly with Software Process Automation

We can reach the next step in our software process evolution by automating much of our process. Flying squirrels evolved a technique* to quickly move from one tree to another without all the tedious climbing and dangerous running. Software teams that automate their processes achieve similar benefits. Automation allows us to increase efficiency while improving quality. And we spend less time on tedious and mundane tasks.

Just Plain BadLameAverageGoodGreat (2 votes, average: 4 out of 5)
Loading ... Loading ...
March 30th, 2006

Passing the Wrong Whitebox Tests

We’ve talked about the value of using whitebox testing in our Software testing series post on whitebox testing. What we haven’t explored is how to make sure we are creating the right tests. We have to validate our tests against the requirements. This post shows where the flaw is in the typical whitebox testing process, and how to fix it.

A reader emailed us with the comment, “It’s been my experience that developers can’t test their own code.” Their problem was that they were missing a link in the software development chain (missing a step in the process).

Just Plain BadLameAverageGoodGreat (5 votes, average: 4.4 out of 5)
Loading ... Loading ...
March 12th, 2006

What CMMI level should we use?

The CMMI (Capability Maturity Model Integration) of a software development process is the measure of that process’s capability. The goal of the measurement is to provide an assessment of the capability of a process with respect to creating software. Our foundation series post on CMMI provides background information, while this post focuses on the danger of misusing CMMI ratings.

Just Plain BadLameAverageGoodGreat (4 votes, average: 4.5 out of 5)
Loading ... Loading ...
March 10th, 2006

Foundation Series: CMMI Levels Explained

CMM is a numeric scale used to “rate” the maturity of a software development process or team. In this context, maturity can be thought of like enlightenment. An immature process is not much different from the old “infinite monkeys” yarn - maybe we get it right, but probably not. A fully matured or enlightened process not only does it right, but improves itself over time. The Software Engineering Institute (SEI) at Carnegie Mellon, my alma mater, created the CMM model in the late 80’s and early 90’s. In this post, we will understand what each level represents.

Just Plain BadLameAverageGoodGreat (1 votes, average: 4 out of 5)
Loading ... Loading ...
March 8th, 2006

Prioritizing software requirements across releases

When prioritizing requirements for the first release of our software, we’ve stressed the importance of including 100% of the ‘must have’ requirements in the first release of the software. We’ve also used Kano analysis to categorize requirements as ‘must be’, ’surprise and delight’, and ‘more is better’ requirements. In this post we’ll talk about an approach to allocating these requirements across releases.