Methodology
Agile methodology
The development of the software will be guided by the Scrum framework and Agile methodology.
This approach will enable iterative software delivery, ensuring a continuous and flexible process of requirements validation. It will provide both Customer and Contractor with ongoing, actionable insights while allowing the flexibility to shift priorities as needed during the project's progression.
The project will kick off with an initial planning phase, termed "Sprint 0." During this phase, the team will collaborate closely to establish a release schedule. This schedule will outline the timeline for rolling out specific functionalities. The planning will take into account both business priorities and the structural dependencies critical for efficient code development. More details in section Schedule
Once the release schedule is established, the process of requirements validation and elaboration will commence, guided by Contractor’s business analyst function and Customer’s service manager or analogous professional.
This process will start with the highest-priority requirements. It involves an ongoing cycle of detailing and refining requirements to enable the commencement of building MVP for first run. This cycle will continue throughout the project, addressing each block of requirements in turn until all are fully validated and elaborated.
Joint Application Design Sessions
The requirements validation and elaboration process will be visualized through a series of meetings known as Joint Application Design (JAD) sessions. These sessions are critical for ensuring that all project requirements are thoroughly understood and agreed upon by all stakeholders.
Discovery JAD Session
In the initial JAD sessions, known as discovery sessions, the technology implementation lead will collaborate with Client’s business users and stakeholders to examine existing workflows. The goal is to map these workflows to system requirements, identifying any gaps and potential areas for automation.
During this phase, all business, functional, and technical requirements will be integrated into Jira. Jira, serving as our product backlog, sprint planning, and defect tracking tool, offers functionalities for:
Reviewing and approving requirements, epics, and user stories;
Tracking development and testing activities;
Managing defects;
Providing detailed traceability by linking these elements together.
Functional JAD Sessions
After validating the business, functional, and technical requirements for a specific functionality block, the process progresses to functional JAD sessions. In these sessions, the team collaborates with business users to further break down the requirements into epics and user stories. For instance:
Business Requirement Example: The system shall enable user management of client data.
Epic: As a user with the necessary permissions, I need a user interface to manage client data efficiently.
User Story 1: As a privileged user, I need to create client records to initiate the application process for new clients.
User Story 2: As a privileged user, I need to edit client records to update or correct client information.
User Story 3: As a privileged user, I need to delete irrelevant or erroneous client records not linked to active transactions.
See updated requirements list here
Additional user stories might include functionalities like deactivating and merging client records.
Upon completion of this session, Contractor will develop screen mockups to visualize the functional design, allowing users to provide feedback. These mockups, continually refined based on feedback, will be linked with the relevant user stories to give developers a clear understanding of the required functionality.
Technical JAD Sessions
As the project progresses, the focus shifts to Technical JAD sessions. These sessions are critical for defining detailed field specifications and setting clear acceptance criteria for each functionality. The acceptance criteria are structured using a "Given-When-Then" format:
Given: This part specifies the conditions necessary to test the functionality.
When: This section describes the specific actions that the user will perform.
Then: This outlines the expected results following the user's actions.
This structured approach to acceptance criteria ensures that the development team has all the necessary details to build the functionality accurately. It also forms the foundation for testing plans, contributing to the production of high-quality code with minimal defects.