Overview
Track My Progress is a suite of SaaS applications that allow teachers and school administrators to administer Computerized Adaptive Testing (CAT) following the Common Core State Standards.
As students take tests over time, an accurate view of their progress becomes apparent. Monitoring a student's progress allows teachers to adjust their focus to help children who are struggling or challenge those who already excel at their current level.
With reliability and maintainability in mind, we built the latest version of Track My Progress from the ground up.
Concept
David needed help taking his already successful EdTech SaaS product to the next level. Unfortunately, David's platform still had a clumsy code base written during the company's MVP stage. The code's original purpose was to be a proof-of-concept, not be reliable or maintainable.
Since the code was unstructured and messy, the product would be difficult to improve without breaking something. We'd need to take care of this disordered code before risking any enhancements to David's platform.
Since bugs are a liability for any established businesses, we decided to rebuild his platform with reliability in mind while simultaneously making the needed enhancements.
Here's what we needed:
- Assurance that existing functionality wouldn't break
Features were mature and the system in use for years, so we wanted to make sure they kept working in the same way once we started making changes. - Streamlined development process
David's current team was not following software development best practices. Although they could maintain the product, each change they made affected multiple parts of the system. This uncertainty meant that they couldn't release changes to production regularly without the worry of causing issues. - Improved User Experience (UX)
Some features worked well but were awkward to use and confusing for users. We would need to fix these.
Solutions
- Automated test suite
By automatically testing all of the system's functionality before and after making changes, we could have the confidence that adding new features wouldn't break existing functionality. - Continuous Integration pipeline and automated deployments
Now that we had tests in place, we had the freedom to release code to the live servers more often, knowing that it wouldn't break anything. The error-prone deployments of the past are now painless and reliable. - Reduced server costs
Upgrading to modern development techniques and software meant that we could run the system for less money. David saved tens of thousands of dollars per year in infrastructure costs. - Better UX and new features
Using modern development techniques meant it was easier to implement User Interface and User Experience changes. Streamlined methods allow us to focus extra attention on getting the functionality just right.