Software Development Life Cycle

September 5th, 2012

CIO Council

A typical software development life cycle begins with requirements. The diagram below shows a waterfall life cycle. Requirements are part of any software development life cycle be it waterfall, rapid application development or Agile. In Agile, the requirements may have a different name such as “epics” and “user stories” but they are still requirements and include Section 508. Section 508 is the law that requires electronic and information technology (EIT) to be accessible for users with disabilities.

Diagram of a waterfall life cycle flowing from requirements through design, development, testing and implementation. There is a dotted line back to requirements from testing.

For simplicity, the term “software” is being used in this article, but keep in mind that Section 508 applies to other Electronic and Information Technology (EIT) product development including kiosks, informational websites and e-Learning, web and mobile applications.

The keys to developing Section 508 compliant software are the Section 508 requirements. By handling Section 508 requirements like other development requirements, Section 508 compliance is built into the software.

Successful software development can be measured by how well the software meets the requirements and satisfies the needs of the stakeholders. Successful Section 508 compliant software is measured in the same way. Meeting the Section 508 requirements produces software that satisfies the needs of a broad spectrum of users with disabilities whether they use assistive technology or just need a larger font.

 

Section 508 Requirements

In software development the requirements may be clearly outlined or have to be elicited separately.  Normally collecting requirements is difficult because most people do not know exactly what they want until they see what they don’t want, or a facsimile of what they thought they wanted. Determining Section 508 requirements is much simpler. The Section 508 law lists the requirements. The Section 508 standards are requirements. The standards include functional performance criteria and technical standards. It is not necessary to understand disabilities or any assistive technology. The functional performance criteria serve to ensure that software works for users with disabilities, while the technical standards define specific technical requirements to ensure that the functional performance criteria are generally met.

Determining Section 508 Requirements
Section 508 practitioners need to be knowledgeable when determining which Section 508 standards to use as Section 508 requirements for specific projects or activities.  All standards do not always apply to the product being developed. For example, 1194.22 (b): “Equivalent alternatives for any multimedia presentation shall be synchronized with the presentation” will not apply if the product does not contain multimedia.

The Department of Homeland Security (DHS) uses an applicable standards worksheet that contains all of the Section 508 standards. Each standard group is introduced by a paragraph that explains when that group applies. With guidance from a Section 508 subject matter expert, the requirements engineer can easily determine which standard groups apply to the software being developed.

The requirements engineer copies the applicable standards and pastes them into the project requirements documents as Section 508 functional and technical requirements.  The Section 508 Functional Performance Criteria (functional requirements) and the applicable Section 508 standards (technical requirements) become part of the software requirements and are worked and tracked like other software requirements throughout the software development life cycle.

 

Design and Develop to the Requirements

When design and development focus on meeting the technical requirements, generally the functional performance requirements can be met.  Additional design and development is usually not needed for specific assistive technology products.  If there is an agency requirement to support specific assistive technology, that is an additional requirement. It does not replace the need to meet the Section 508 requirements.

 

Test to the Requirements

Using Section 508 Testing Best Practices, test against the Section 508 requirements during development. Track the defects and allow time in the project schedule to remediate so that the software tests fully compliant before implementation.

At DHS, Section 508 subject matter experts are involved in software governance activities and require that developed or customized software is documented as Section 508 compliant before implementation. In addition, DHS has a cadre of “trusted testers” who have been trained to test to the requirements using the DHS Section 508 Application Test Process. All agencies under the DHS umbrella use the same testing process. This produces consistent reliable test results.

 

Summary

Taking the applicable Section 508 standards, incorporating them as product requirements, then developing, coding and testing to those requirements is the best way to build Section 508 compliance into your product.

Best Practices for Section 508 Compliant Software Development 

  • Select the Section 508 standards that apply to the Electronic & Information Technology being developed. Keep in mind that kiosks, documents and training also need to be Section 508 compliant.
  • Incorporate the applicable standards into your software requirements as Section 508 requirements.
  • Work and track the Section 508 requirements like the other requirements.
  • Develop and test to the requirements.
  • Standardize the testing methodology for consistent results.
  • Use standardized format in test results for easily identifiable project artifacts.
  • Allow time in the project schedule to remediate defects and retest to assure that the software is Section 508 compliant before implementation.

Glossary

Assistive Technology: Any item, piece of equipment, or system, whether acquired commercially, modified, or customized, that is commonly used to increase, maintain, or improve functional capabilities of individuals with disabilities. Section 508 definitions

 

Examples