Our client is one of the largest not-for-profit EdTech companies in the world whose mission is to expand access to higher education. One of the programs they offer is a Math and English Language Arts instructional curriculum designed for students from middle school through twelfth grade. For client confidentiality, we’ll refer to this program as Flourish. Flourish prepares students for college and careers by providing electronic eBook content and related educational materials in a cohesive online experience. Individual school districts purchase access to Flourish’s products, providing their suite of online educational tools and materials to their teachers and students.
In 2012, Flourish decided to bring their print-first experience online, moving content to the web to expand their content offering. Their existing platform faced many issues, leading the non-profit to engage with JBS in Spring 2017 to rearchitect the existing platform from print-first to a web-centric, digital experience. JBS implemented a new agile development process, updated its software development technologies, and modernized its application infrastructure. One of the most important factors in this modernization effort was the decision to go with a “cloud native first” mentality, using AWS as the cloud provider. JBS leveraged all the scaling, performance, fault-tolerance, and cost benefits of the cloud and architected the right AWS services into the delivered solution. This stabilized their infrastructure, updating the application to meet industry best practices and security standards while allowing for more rapid development.
Flourish faced issues with system stability due to an overly complex hosting and application architecture. Development was hindered by a slow process and the platform was difficult to use, with a fragile deployment pipeline. There were too many manual processes that wasted time and introduced additional errors. Furthermore, the developed software solution did not follow best practices or comply with industry security and accessibility standards.
Their existing software solution was incapable of changing and growing with Flourish’s needs. The platform was not easily extensible, had many manual processes, and was not structured for rapid software development. It did not adhere to best practices for accessibility and security, adding to technical debt and not providing users with the best possible experience. The non-profit needed a technology partner that could execute on their vision of having a cohesive, integrated application with the best possible experience for all customers.
How JBS Helped
JBS established a new set of processes, technologies, and infrastructure initiatives to ensure project success. JBS instituted their flexible and agile development process – a high-quality, nimble process that delivers a fast speed of development while fostering shorter feedback loops. JBS encouraged a culture of transparency, improving communication between teams and throughout the organization. JBS’s unique lightweight application lifecycle management approach, which is highly adaptable to change, allowed for the organic discovery of solutions through an iterative process. JBS based the technical architecture on a Python/Django web development platform. This allowed for more rapid application development and deployment than the existing Java solution. JBS also replaced aging infrastructure with a modern approach – container-based hosting that reduced complexity and provided more stability, scalability, and security.
One of the key services utilized was AWS Lambda, which provides serverless computing capacity. Using Lambda near exclusively for hosting the new application, Flourish can now scale effortlessly. As traffic spikes occur, only the required computing power is allocated by Lambda – making sure that infrastructure costs are minimized. Another technology used was Amazon RDS, a managed database service that provided improved automation, resiliency, security, and operational overhead compared with the existing administered solution. Maintenance procedures were streamlined using Lambda, RDS, and API Gateway. Application monitoring is also more effective thanks to CloudWatch and ElasticSearch Service for logging and CloudTrail for auditing.
JBS’s processes utilized for Flourish shortened the software development lifecycle from five weeks to two, providing better responsiveness to changes in business priorities. The new platform leverages opensource software, reducing wasted development cycles. JBS architects followed best practices and developed the new application to be stable, well tested, and maintainable. Application delivery is now automated, with continuous integration and delivery pipelines. The new solution delivers an architecture that is future-proofed, providing Flourish with a foundation on which they can expand, continuing to provide the best customer experience.
As a result of partnering with JBS, Flourish now has a platform that follows best practices and adheres to industry security and accessibility standards. Fully utilizing AWS’s cloud platform and services, the new cloud-first approach is more stable, scalable, and automated - also providing significant savings in operating expenditures. With Continuous Integration & Continuous Deployment pipelines in place, maintenance processes are highly automated - engineers can spend less time on maintenance and more time on feature development. JBS’s agile process shortened development lifecycles and feedback loops, allowing for more iterative evaluation and adjustment.
The JBS solution enhanced the end-user experience for both students and teachers that use Flourish products. Leveraging AWS services and the Django web framework, JBS delivered a system with a cohesive and responsive user interface for end-users and system administrators. Leveraging existing content management and administration systems reduced overall development effort while still providing high-quality, easy-to-use interfaces and experiences. The resulting system not only meets the current needs of Flourish, it also provides a platform that is easily extensible for the future. This new architecture allows Flourish to focus on expanding its educational platform to meet the changing needs of its consumers.