Software Acquisition

AAF  >  Software Acquisition  >  Active User Engagement  >  User Agreement

User Agreement (UA)

How to use this site

Each page in this pathway presents a wealth of curated knowledge from acquisition policies, guides, templates, training, reports, websites, case studies, and other resources. It also provides a framework for functional experts and practitioners across DoD to contribute to the collective knowledge base. This site aggregates official DoD policies, guides, references, and more.

DoD and Service policy is indicated by a BLUE vertical line.

Directly quoted material is preceeded with a link to the Reference Source.

 

 

Reference Source: DODI 5000.87 Glossary

 

User Agreement: A commitment between the sponsor and PM for continuous user involvement and assigned decision making authority in the development and delivery of software capability releases.

 

Reference Source: DODI 5000.87 Section 3.2

 

Frequent user engagements are critical to the success of modern software development to ensure delivered software capabilities address their priority needs.

  • The sponsor and PM will develop a UA before the execution phase to gain commitment to continuous user involvement and assign decision-making authority for the development and delivery of software capability releases. Decisions include defining and prioritizing required capabilities, tradeoffs of software features and cadence, user acceptances, and readiness for operational deployment.
  • The UA will commit proper resourcing of operational user involvement to provide acquirers, developers, and testers insights into the operational environment, provide feedback on interim and fielded software, support test and evaluation, and shape future requirement details (e.g., user stories and features).

User Agreement Guidance

Reference Source: USD(A&S) Guidance

A User Agreement is a written and signed agreement developed by the Program Manager and the user community that ensures the user is properly represented and engaged throughout the software development and delivery process. The User Agreement is intended to set expectations in terms of developer/user interaction and cadence; prioritization of features set against an overarching CNS, Minimum Viable Product (MVP) and Minimum Viable Capability Release (MVCR); user training; and user acceptance testing and decisions regarding software release and deployment. It must be signed by all relevant stakeholders before a software program enters the execution phase. As Agile software methodologies require extensive and continuous user engagement, users must make a greater commitment to software programs than to traditional programs. This level of engagement may require separate funding resources to secure the commitment needed.

Establishing Roles and Responsibilities in the User Agreement

The User Agreement captures the roles and responsibilities of the program office and user community. The intent is to establish a clear understanding of who is empowered to make decisions regarding feature identification, prioritization, and timing and scope of software iterations and releases. Although each program will have a unique set of specific functional roles, the list below identifies some of the typical user roles involved in cooperative software development programs.

  • Operational sponsor: the sponsor represents operational needs at the highest level.
  • Capability sponsor: owner of the CNS and responsible for prioritization of features in the overall product roadmap.
  • Program manager: responsible for contracting for, acquiring, delivering, and deploying the software capability.
  • Requirements manager: responsible for development and maintenance of user requirements, both in the initial CNS and as the program evolves.
  • Operational users: the intended end users of the software system. They work directly with the software development team during the software development cycle.

The software acquisition pathway is designed to be tailorable, and the list above is meant to present only a broad set of roles. For smaller software efforts, all user-related roles (operational sponsor, capability sponsor, requirements manager, and operational users) could be combined into a single role. At the most basic level, the key roles are the Program Manager, the software development team, and users.

It is critical that programs have the right balance of users that represent the entire user population. If a program is overly focused on a specific user pool (e.g., from a single Military Occupational Skill (MoS) or a single military unit), the software may be optimized for that specific user pool and suboptimal for the rest of the user population. There are established best practices that designate ‘user representatives’ who have a deep understanding of the mission and are familiar with modern software methods. Another technique to engage the end user is the use of test detachments that are specially designated to work with software programs to prioritize features and evaluate early versions of software. Test detachments are populated with operational users who return from deployment and spend a rotation in the test detachment. Other techniques include using beta test sites or embedding end users within the software development team. The Sponsor and PM should consider collocating users and developers to facilitate exchange of information. The User Agreement should identify the technique(s) that the program will use to engage end users.

Activities Covered Under a User Agreement

The User Agreement identifies the types of activities that require user engagement and sets clear expectation of decision-making authorities.

  • Feature identification and prioritization – The designated users will work with the Program Manager to identify software features and determine prioritization, as well as the expectations surrounding MVP, MVCR, and the product roadmap (capability over time). Additionally, the users will provide input to the product roadmap as it evolves over time.
  • CNS development and refinement – User engagement will be required to develop, refine, and maintain the CNS. The initial CNS will be refined during the planning phase.
  • End user testing – The User Agreement will identify how user testing will be accomplished (test plan, test environment) prior to deployment and rollout of the software.
  • Deployment and rollout decisions – The User Agreement should specify what sites will receive new features/capabilities and the sequencing of rollout locations. It should also document the decision-making authorities for ‘go/no-go’ decisions.
  • Human System Interface Assessment (HSI) Assessment – The HSI Assessment is the formal reporting mechanism to ensure usability and operational suitability issues are managed and/or mitigated as software matures. It also codifies how user testing was accomplished, how the program ensured optimum user experiences, and reports out on any outstanding user performance risks that should/could be mitigated in future software releases/upgrades/etc.