A Crown corporation in British Columbia, working in partnership with a federal agency based in Ontario, to supply funding to groups developing initiatives that invest in a key British Columbia industry. The two organizations were administering grants using an old legacy website application whose design was heavily structured on a paper-based system and associated processes. As a result, the Funding Management System (FMS) had several workflow inefficiencies with updates and changes to the system requiring significant downtime.
The decision was taken to completely redevelop the application and leverage modern technologies. A comprehensive assessment was initiated to determine the key client drivers; identifying security, flexibility and operating budget. The assessment also focused on how the new technology and functionality could integrate with business processes. Once these requirements were identified and baselined, the project team worked on determining an option that was best for the client. Consideration was given to efficiencies in cost, flexibility to cope with fluctuating user numbers, and future-proofing the system to keep up with technology innovations. Several challenges were also identified, which included ensuring consistent communication despite time differences and geography, having a stable platform for collaboration, and being able to effectively adopt an Agile approach.
After the assessment, it was determined that a cloud-native architecture was the best fit for the FMS solution. By using a cloud-native solution, benefits such as scalability and availability can be better leveraged. It allows the ability to practice Agile and DevOps Continuous Integration (CI) and Continuous Delivery (CD) Infrastructure automation. Also environment creation can be scripted, which brings in benefits of increased productivity, greater consistency, and reduced costs.
IMPLEMENTATION CHALLENGES AND SOLUTIONS
Fixed Completion Date
The grants are allocated at set intervals throughout the year. The upgraded system needed to be in place by a set date to accommodate the start of their grant submission process.
Requirements were grouped into different areas to start demonstrations and continue these throughout the design phase. These included configuration screens, proponent screens, and funder screens. This allowed the development team to build out certain parts of the system as the timelines progressed.
Transparency & Communication
The project involved multiple stakeholders in different locations, time zones, and shifting project teams, all of which could potentially slow the project's progress.
Microsoft Teams was used to tackle communication and transparency concerns. It provides a single platform for communication that can be accessed by all key project stakeholders in BC and Quebec. It also retains historical conversations between the group, which meant staffing changes did not stall the project.
Pre-Existing Grant Allocations
The grant allocation process spans multiple periods over the course of a single year. The cutover from the existing system to the new one needed to be seamless.
We were able to launch the new system at the start of the new grant allocation period meaning that there was no need to migrate data to the new system. The project plan was carefully created to achieve this.
The Importance of an Agile Approach
The primary achievement was taking a long-standing application and rewriting it to reflect modern web application standards, update to the latest business requirements, and successfully deliver these in time for the fixed launch date of the 2020/2021 call for funding applications. Our Agile development approach also identified some ‘value-added’ opportunities for improvements, such as the dynamic ‘track changes’ feature for client reporting.
Collaboration is key
Collaboration was important to the success of this project. Every opportunity was taken to leverage the team tools that are part of the Azure DevOps environment. Status Meeting notes, Design documents, and anything that required discussion was placed on the site wiki for all members to review. Heavy use was made of the Kanban-style board with all work clearly identified as tickets on a board. Multiple boards were set up to match team functions so that boards, and the information presented, could stay clean and focused.
The use of the DevOps platform introduces interesting dynamics. Generally, it could be said that the platform's full use helped all teams, disciplines, and stakeholders involved in the project. However, the benefits are not even. One of the key learning points was the importance of developing methods, tracking feedback, and managing resources (both internal and external) so that the project could move forward smoothly for all team members.
The new system is more intuitive with deploying changes with only 3 minutes of downtime versus the 30 minutes needed with the old system. The feedback from test users was positive, indicating that the system was more intuitive, cleaner, and more modern interface. The Azure cloud technology is constantly advancing with new developments daily. We were able to leverage them and make them part of the build and ensure the client would maintain the most up to date technology into the future.