Fault

I define a Fault as a defect in a requirement or in the requirement data. In other words, a Fault equals a Defect. First, I identify a Fault when an attribute value contradicts the requirement intent. For example, I see a stability value but no risk value. Then I mark this as a Fault. Second, I treat Faults as issues that affect requirement quality. Therefore, I track them like other defects.

Generally, Faults appear when I change the attribute schema. For instance, when I add a rule that populates “Risk” whenever “Stability” has a value, I must check existing requirements. Otherwise, some requirements will have “Stability” but no “Risk”. As a result, those records contain a Fault. Moreover, when I delete a relationship between attributes, more combinations become possible. Thus, a previously forbidden combination might now be acceptable. However, I still review the changed requirements. In contrast, changing a mandatory field to optional usually causes no further effort. But switching from optional to mandatory often creates Faults. Therefore, I ensure every documented requirement has an appropriate value for the newly mandatory attribute. Otherwise, I create Defects.

I assign one person to own each attribute. Specifically, the attribute owner records values and checks plausibility. I find that recording attributes is time-consuming. Consequently, I rely on tools to reduce Faults. For example, I set default values for new requirements. Also, I use automatic population of dependent attributes. Thus, I reduce manual errors. However, I remain careful because defaults may hide real attribute differences. Therefore, I analyze existing requirements that used the old default values. Then I update them if necessary.

I follow these steps when I detect a Fault. First, I run reports or scripts to find inconsistent attribute combinations. Second, I inspect the affected requirements. Third, I decide whether to update values, add notes, or escalate. Also, I update views, reports, and interfaces that depend on the changed attributes. Because scripts may use a particular attribute, I test them after schema changes. If needed, I modify the scripts to avoid new Faults. Finally, I document the change and inform stakeholders.

I also manage Faults in status transitions. For example, I prevent skipping approval steps in the lifecycle. Therefore, I allow only predefined transitions. If a change forces an unexpected transition, I mark it as a Fault. Then I correct the lifecycle rules or the requirement status. Moreover, I apply parent-child propagation to avoid Faults. When I set a value in a parent requirement, I often copy it to child nodes. Otherwise, children may contain Faults due to missing or inconsistent values.

I record author and change date automatically. Thus, I create incontestable evidence of changes. Because of that, I reduce disputes about who introduced a Fault. In addition, I use combined attributes or grouped input functions to simplify data entry. As a result, I lower the chance of user mistakes and hence reduce Defects.

In short, I treat a Fault as any Defect in requirements or their attributes. Therefore, I prevent Faults by defining clear rules, assigning attribute owners, using sensible defaults, automating dependent values, and checking impacts after changes. Consequently, I keep the requirements dataset consistent and reliable.

Scroll to Top
WordPress Cookie Plugin by Real Cookie Banner