<-Prev Next->

1. Can software reliability engineering be used with agile software development?

ANSWER: Yes. As you may know, agile software development is software development that emphasizes rapid responsiveness to changing requirements. In reality, we do not have two kinds of software development, agile or nonagile, but rather a continuum of agility, although there is some tendency to bipolarity.
Agility becomes increasingly important when customer needs and/or technological opportunities change rapidly so that more exploration during development is required. Agility implies faster and cheaper development, with the possibility of trading off reliability to get it. This requires feature-oriented development, faster and shallower planning, and greater and faster interaction among customers and developers.
Software reliability engineering very precisely and efficiently guides you in making the time-cost-reliability tradeoff, with the result that you make a tradeoff that is much closer to customer needs. The tradeoff can be quickly modified if conditions change. The operational profile inherent in software reliability engineering supports operational development, which is a quantitatively guided (and hence greatly superior) type of feature-oriented development. Operational profiles are rapidly developed and modified with the use of spreadsheets, making software reliability engineering a very agile supporting practice. Test case creation and execution can be driven with the spreadsheets, resulting in very agile testing.

2. How does software reliability engineering relate to the Capability Maturity Model?

ANSWER: The Capability Maturity Model at its higher levels requires measurement of reliability and the use of the measurements to optimize development. Software reliability engineering is the practice that can accomplish this goal.

3. Can software reliability engineering contribute to the web services area?

ANSWER: Yes. The main challenge is the intervendor coordination in defining subsystems, operational profiles, and reliability objectives.

4. How are software safety and software reliability related?

ANSWER: Software safety is one aspect of software reliability. Reliability implies proper functioning of software, and safety is one of the requirements that must be met for proper functioning. You can categorize failures as safety-impacting or non-safety-impacting. For example, a system might have 2 safety failures per Khr. Note that an unsafe system is also unreliable.
5. What does the purchaser of software need to know about software reliability engineering? Is there anything different about the way a purchaser would apply the software reliability engineering process?
ANSWER: The purchaser participates in setting reliability objectives, developing operational profiles, identifying failures, and certifying software, and therefore needs the skills associated with these activities. The purchaser applies the software reliability engineering activities just described in the same way the software vendor does, but with the perspective of different interests.