diff --git a/chapters/quality.bd b/chapters/quality.bd index 30f431a..bdfb027 100644 --- a/chapters/quality.bd +++ b/chapters/quality.bd @@ -2,7 +2,7 @@ There are numerous ways a software project can fail: projects can be over budget One of the central reasons for this is that there are many distinct *software qualities* that software can have and depending on the stakeholders, each of these qualities might have more or less importance. For example, a safety critical system such as flight automation software should be reliable and defect-free, but it's okay if it's not particularly learnable--that's what training is for. A video game, however, should probably be fun and learnable, but it's fine if it ships with a few defects, as long as they don't interfere with fun -There are a surprisingly large number of software qualities. Many concern properties that are intrisinc to a software's implementation: +There are a surprisingly large number of software qualities. Many concern properties that are intrinsinc to a software's implementation: * *Correctness* is the extent to which a program behaves according to its specification. If specifications are ambiguous, correctness is ambiguous. However, even if a specification is perfectly unambiguous, it might still fail to meet other qualities (e.g., a web site may be built as intended, but still be slow, unusable, and useless.) @@ -48,4 +48,4 @@ Although the lists above are not complete, you might have already noticed some t These external notions of quality are not the only qualities that matter. For example, developers often view projects as successful if they offer intrinsically rewarding work. That may sound selfish, but if developers _aren't_ enjoying their work, they're probably not going to achieve any of the qualities very well. Moreover, there are many organizational factors that can inhibit developers' ability to obtain these rewards. Project complexity, internal and external dependencies that are out of a developers control, process barriers, budget limitations, deadlines, poor HR planning, and pressure to ship can all interfere with project success. -As I've noted before, the person most responsible for isolating developers from these organizational problems, and most responsible for prioritizing software qualities is a product manager. \ No newline at end of file +As I've noted before, the person most responsible for isolating developers from these organizational problems, and most responsible for prioritizing software qualities is a product manager.