Requirements Engineering

When aiming for requirements quality improvement, a crucial aspect lies in the initial stage of customer requirements, as they form the foundation for the entire quality chain. Here's a breakdown of the key steps involved in enhancing requirements quality:

  1. Customer requirements serve as the starting point, influencing system requirements, which, in turn, shape software requirements and system architecture.

  2. Software quality hinges on the output quality at each development phase, including software requirements, architecture, high-level design, detailed design, adherence to coding standards, peer-code reviews, and test coverage.

  3. The requirements development process requires a well-defined, cross-functional review team to ensure quality and alignment. This team should comprise members from both upstream and downstream teams.

    • The review and approval team for software requirements should involve various stakeholders like Software Requirements Engineers, System Requirements Engineers, System Architects, Software Designers, Software Developers, and software testers across different phases.

    • Extended review-only groups may include non-engineering teams like customer service and field services.

  4. Testability of requirements is crucial and starts with a shared understanding of the requirement, including verification criteria encompassing conditions for use, limits, measurement units, usage scenarios, and interdependencies between requirements.

  5. Creating a preliminary test plan and sample test cases during the early stages can help uncover inconsistencies and enhance requirements, ensuring a more robust set of clear, consistent, and easily testable and measurable requirements.

By following these steps meticulously and involving a diverse team in the review process, you can establish a solid foundation of comprehensive, well-understood requirements that are ready for thorough testing.

Please reach out if you want to discuss templates for requirements or requirements review.

Dave Tavares

Initially, I was a software developer for the Department of Defense (DoD) through defense contractors. I understood that the software could not fail because lives depended on it (extreme safety concerns). I quickly took steps to ensure that my software was highly reliable and easy to maintain.

Due to the quality of my software deliveries, I was promoted to software engineering leadership.

By request, I was responsible for leading a Quality Engineering (QE) team where the team was not meeting client expectations for a highly critical solution requiring the removal of as many bugs as possible before going live with accuracy and extreme stability (i.e., air traffic control). I had a leadership and hands-on role. Safety was paramount. We succeeded due to Cyclomatic Complexity path test coverage > 85%. I tracked the first ten years of this solution required for range control, and the software never failed and always worked as expected.

I then moved into high-tech industry testing (broadcast, health care, smart grid, IoT, semiconductor software design/software test tools, and autonomous driving, to mention a few).

During my QA/QE phase, my software quality engineering responsibilities at the contributor level included manual, automated, and comprehensive testing. I brought innovative practices to match the SDLC, CMM, and ISO 9001 target goals at the Quality Engineering Lead and Director levels, satisfying their customer base. I was responsible for setting processes, procedures, templates, and checklists for all phases and types of testing. Quality was improved, resulting in a maximum of 90% reduction in customer bugs. I was also a lead assessor for CMM and ISO 9001 during this time.

In my most recent role as the Staff Technical Program Manager, I moved into engineering hands-on training, driving engineering standards compliance and assisting engineers with compliant artifacts. I translated standards into system/software/firmware engineering processes, practices, and templates. Standards included ASPICE, ASIL, and applicable portions of ISO 26262

Finally, I have worked with agile, highly iterative, and waterfall models and assisted teams in migrating between different models.

Previous
Previous

Risk Management

Next
Next

Testing Software Complexity