In an ever-changing landscape, organizations are constantly working to stay one step ahead of their competition. Focusing efforts on enhancing all facets of your company can be an efficient way to do this. At RYAN, we know what it takes to keep our clients running at an effective pace. Our software development helps us create lasting impressions that continuously increase the success of business operations.
Team RYAN’s proposed Agile Development Methodology Process (ADMP) for the current SOW was developed by tailoring RYAN’s CMMI® Maturity Level 3 prescribed organizational procedure for Agile projects. It also includes lesson learned from our experience implementing projects of variable scope, size, and complexity.
Our ADMP is an overarching document that provides a common understanding of how the project will function. It outlines the Agile processes that will be used to manage the project and associated products while describing the activities that will be performed during the project life cycle. This living document will be provided to all project team members, through a centralized project repository.
In accordance with principles found in Scrum, Kanban, XP, SAFe®, and Lean methodologies, we implement an Agile solution built on the following principles: built in quality, relentless improvement, innovation, consistent collaboration, and transparency. The Agile solution will be tightly coupled with the Program Management Office (PMO) guaranteeing project schedules, milestones, resource allocations, and risks are shared with all key stakeholders and decision makers.
For all modernization effort, Ryan uses a hybrid methodology, Water-Scrum-Fall shown in Figure 1, that integrates Agile development methodologies with traditional upstream enterprise-level planning (Water-Scrum) and downstream requirements, development, testing and deployment processes (Scrum-Fall). This hybrid methodology supports the upfront requirements and design process of Waterfall with the iterative development approach from our Scrum methodology by providing the following phases:
Planning – during this phase we will develop a road map with feature-based releases per the strategic goals outlined by decision makers.
Development – during this phase we will use Scrum, which provides for frequent, high- quality releases in a time bound iterative manner that ensures all relevant stakeholders are informed and engaged throughout the development cycle. This phase will include story development using a prioritized product backlog, feature development and testing.
Deployment – this phase will include the Change Control Board (CCB) approvals for production releases from Staging, performing the releases, user training and creation of other required documentation.
Team RYAN recommends discovery sessions to better understand the project scope and vision. In Sprint 0, our Agile Project Manager and Scrum Master will facilitate focus groups, onboarding, technology spikes and user story mapping sessions. Utilizing lessons learned forged from past experiences, our team will lead a series of planning sessions to align organizational goals with high level road maps and define the Minimum Viable Product (MVP). Team RYAN will conduct project planning during this phase to flush out high-level requirements, epics user stories and releases. Upon completion of project planning, the initial backlog grooming session will commence with the decomposition of epics into user stories cumulating with a prioritized product backlog.
Upon completion of project planning, our Agile teams will commence with the decomposition of epics into detailed user stories cumulating with a prioritized product backlog. Team RYAN’s core principles is to not “over promise and under deliver”. Our team will achieve this goal by conducting Planning Poker Sessions. These sessions allow the team to assess the level of effort (LOE) for user stories. The Product Owner/Business Analyst presents user stories, the team briefly discusses each story, and the Product Owner answers questions to provide clarification on specific user stories. Team members will score the user stories based on the complexity and LOE using a modified Fibonacci series. Scoring is done anonymously to remove influence from the other team members. If there is a large variance in story points among the team, then outliers elaborate the rationale behind their estimates. Using this new information, the team estimates again, and this process iterates until sufficient consensus has been reached.
During the Scrum phase of the Water-Scrum-Fall, each Sprint will begin with the Sprint Planning. During Sprint Planning, the Product Owner, with input from the Scrum Master and development team, will build the Sprint backlog with high priority user stories, that collective form a feature, until the team’s capacity is reached. As part of our Scrum process, Agile teams will participate in daily stand-ups. During the daily stand-ups, each team member will share the previous day’s accomplishments, discuss upcoming activities and report blockers for the Scrum Master to resolve. Developers will pull user stories from the Sprint backlog and once user stories are code complete, unit tests and peer reviews will be executed before code can be submitted into the baseline. As part of the continuous integration, checked in code will initiate a built and be subjected to automated regression, integrated and compliance tests. This provides developers instant feedback and supports lean principles for “Fail Fast” and “Build Quality In”. In addition to the development activities for the Sprint, the Scrum team and Product Owner will conduct at least one backlog grooming session each Sprint to maintain a prioritized backlog. The prioritized backlog will have at least two Sprints worth of stories ready for development. The benefits of this practice will have enabled the Sprint planning meetings to operate more efficiently and workable stories if the Scrum team has additional capacity during the Sprint. At the end of the Sprint, the Scrum Master will lead a Sprint Review in which the Product Owner will provide user acceptance or rejection for each user story in the Sprint. Team RYAN uses the Sprint Retrospective to continuously reflect on how to become more effective, and it then fine-tunes and adjusts its actions by quickly incorporating improvements into subsequent Sprints.