Track industry standards, laws and regulations for federal agency-owned systems
As a professional services firm offering IT technology solutions and government services, Artemis Consulting continually tracks industry standards; most notably the relevant laws, policies, and regulations for software systems owned by federal agencies.
Agile Software Development
These are software development methodologies centered around the idea of iterative development. Requirements and solutions evolve through collaboration between self-organizing cross-functional teams. Agile development enables teams to deliver value faster and with greater predictability. Scrum and Kanban or variants thereof are the two most widely used methodologies. Teams can leverage the benefits of both by applying the rules of Kanban to existing Scrum methodologies.
Scrum is a lightweight and iterative agile framework for developing, delivering and sustaining complex software. It is intended for small teams who break their work into stories that can be completed within time-boxed iterations, called sprints. A common type of story is the User Story, which describes a desired feature by a stakeholder in narrative form: As a <role>, I want to <goal>, So that I can <purpose>. User stories also contain Acceptance Criteria so that we know when the story is done.
- Product Owner – Represents the product’s stakeholders
- Team – Team members carry out all tasks required to build increments of value
- Scrum Master – Facilitates the Scrum process
Definition of Ready
In addition to being clear and concise, most importantly, Ready stories must be immediately actionable through clear acceptance criteria. Having a story that meets the definition of ready means the developers can determine what needs to be done and predict the amount of work required to complete the story.
Definition of Done
The team understands the done criteria and what tests, or demos will be performed to demonstrate that the story has been completed successfully.
Kanban is a lean software development methodology; a translation of lean manufacturing principles and practices to the software development domain. It’s an approach that aims to manage work by balancing demands with available capacity. Typically managed though a shared Kanban board to visualize the development workflow, work is pulled as capacity permits, rather than work being pushed into the process when requested.
Kanban has three rules:
a. Visualize the workflow
b. Limit work in process
c. Measure and improve flow
Follow the Federal Government’s Agile Assessment Guide
The Government Accountability Office (GAO) publishes an Agile Assessment Guide that presents federal auditors and others with best practices to assess the adoption and use of Agile in federal agencies and elsewhere. Artemis Consulting assisted with developing this guide for the GAO.
There are many topics and details under the umbrella of Agile that are not covered here in this playbook. Those details are explored in the guide with a level of depth appropriate for agencies planning to manage a digital transformation with Agile methodologies.
Accessibility is about developing solutions to meet the needs of all users, with and without disabilities. Universal design, a concept now widely used in the private sector, provides a path for federal agencies to shift to this broader focus.
Creating accessible experiences begins with an understanding of the needs of each disability type and building user experiences with universal access in mind from the beginning. This minimizes barriers for use and maximizes the potential audience that can engage with your website.
Section508.gov refers to this concept as Universal Design. “Federal agencies are responsible for developing accessible information and communications technology (ICT) tools, products and websites.” Because all federal websites must provide assurance that the websites built for the public are 508 compliant, consider this guideline as an accessibility starting point for all digital transformations.
For web apps and mobile app development that implement thru web technologies, rely on the WCAG standards published by the WAI. WCAG is a set of formal guidelines on how to develop accessible web-based content. WCAG standards represent a higher level of accessibility than 508 standards, although in many cases, they are identical or very similar. WCAG focuses primarily on HTML accessibility. For more detail on planning to ensure accessibility, consult the User Experience Playbook (coming soon).
Website usability is the measure of the quality of a user’s experience when they interact with your website, including if they’re able to achieve their goals and how satisfied they are with that process. Usability is a combination of factors including:
- Ease of learning
- Efficiency of use
- Error frequency and severity
- Subjective satisfaction
For more detail on planning to ensure usability, consult the User Experience Playbook (coming soon).
- Chose an agile methodology that best suits the requirements of the work
- Prioritize software written to meet the needs of all users, with and without disabilities
- Identify specific accessibility goals for your project and make them part of the solution from day one
- Use analytics to measure usability and inform your user experience design
- How is your team’s software development process currently working? …or not working?
- Is your team working efficiently?
- Are stakeholders satisfied with the amount and quality of work that is produced?
- What level of change should your team expect during the project?
- Is there a predictable level of work that can be regularly organized into two- or three-week periods?
- Does your team have operational responsibilities that are unpredictable?
- Are your systems written to meet the needs of all users, with and without disabilities?
- Can users remember how to use the system or do they have to start over again learning everything?
- How fast can users who have never seen the user interface learn it sufficiently well to accomplish basic tasks?
- Once experienced users have learned to use the system; how fast can they accomplish tasks?
- How often do users make errors, how serious are these errors, and how do they recover from these errors?
- How much do users like using the system?