Sturm

Software engineering

Project launch: Find My School for Department of Education

Ben Sturmfels, 25 Apr 2019

Yesterday we successfully launched the Department of Education and Training's new Find My School service to 300,000 visitors. Here's some of the challenges we overcame along the way.

Find My School is an interactive website that allows parents to enter an address or suburb and find out which schools they are zoned for, as well as which other government schools are nearby. The site covers 1771 primary, secondary and specialist schools across Victoria. Unlike previous approaches, Find My School details the school catchment zones right down to the street and house-level.

The project is a collaboration between the Victorian Department of Education and Training and a relatively small team from SGS Economics, CrowdSpot, Steve Bennett and Sturm Software Engineering.

"For the first time, parents will be able to look up the enrolment zone of local schools online and find out quickly and easily what school zone they live within," announced Minister for Education James Merlino. "For decades parents haven't had easy access to enrolment zones, causing unnecessary stress for thousands of families. Since the start of last year alone, we've received nearly 6,000 calls, letters and emails from families wanting to know their local school zones."

Why do parents need to know their school zones?

Choosing a school is a significant and personal decision for parents. The school zones exist to prevent students missing out on their closest school. While schools may accept students outside their zone, this can have some implications for funding.

School zones are revised from time to time as the population changes and schools open and close. This is nothing new, but can affect families living in or moving into the areas that have changed. Because of this, it is essential to provide simple and clear information to parents to help with their decisions.

Key project challenges

With this general level of sensitivity from parents, a looming federal election and a state with a long memory for failed technology projects, it's not surprising that the Department team were under extreme pressure to ensure the project was well-received and that discussion focused on schools and not technology. This made mitigating risk a very high priority and emphasised the planning required to ensure the system worked flawlessly on day one.

In order to support parents with enrolments for 2020, the project also had a schedule of only two months, which is extremely short given the approvals processes and number of stakeholders at the state government-level.

As you may know, technology projects are more likely to succeed when launched progressively with a number of iterations of real-world feedback, exploration and improvement, allowing them to meet the needs of the intended audience. In this case, we had the opposite, with a high-profile launch and a short timeframe.

Our approach

Sturm Software Engineering was engaged to ensure that Find My School would:

  1. Perform well for the large number of visitors expected on launch day
  2. Be resistant to security attacks
  3. Accommodate a wide range of education and government stakeholders in the review process

We designed an automated workflow to host multiple versions of Find My School system, including the one under active development, a stable version for review and quality assurance, and a high-performance and secure version for the public launch.

Our role also involved working with external security and load testing companies to ensure the system was resilient to attack and able to handle large surges of visitors in response to high-profile announcements, news websites and social media. This is always a tricky process to navigate, not least because of the somewhat adversarial relationship between development and testing companies, but that's another story.

Security testing is a relatively brief, well-defined and predictable process, even across projects. Results are mostly pass or fail and any remediations are usually obvious. This is something we're very familiar with, so we sailed flawlessly through security testing.

Load testing is much more difficult. It requires a lot of time, communication and coordination with testers; the results are less clear-cut and there's a good chance of false test failures due to the testing methodology. We'll cover it in more detail.

Load testing is hard

Due to the high-profile nature of the launch, the Department set an extremely high bar with the test scenarios:

Scenario 1: The parents of all 2020 foundation and year 7 students visit the website during their lunch break on Wednesday (92,000 visits over 1 hour with up to 8,000 simultaneous visitors).

Scenario 2: All Victorians visit the website over the three days following release (640,000 visitors over 4 hours)

Scenario 3: All Victorians visit the website within a 1-10 minute window (100,000 visitors visiting and searching within 1 second)

Emulating high-volume use of an interactive application like Find My School is very difficult. It's expensive in terms of computing costs, it's time-consuming, and is hard to do in a way that resembles real-world conditions. If done incorrectly, it's easy to end up with test failures simply due to the artificial testing conditions.

As one example of the challenges, Find My School uses our own content distribution network as well as a metered third-party address geocoding service. These systems are designed to handle massive volumes of website traffic day in, day out. But when they see large abrupt spikes of requests from a small number of internet addresses, they treat this as an attack and apply rate-limiting. That's a very useful feature in practise, but causes havoc for testers.

Looking back, it's also clear that while third-party mapping and geocoding services allow you to move quickly early on in a project, it's rather more difficult to predict their performance characteristics at extreme scale.

While the first two scenarios were time-consuming to coordinate, the site passed relatively easily. After a great deal of back and forth with the testing company and the Department and quite a bit of sweating on our part, it was agreed that the third scenario was completely unrealistic and should be dropped. To understand why this is the case, consider that Google handles around 50,000 searches per second, worldwide!

Load testing results
Successful results during the 4 hour load test

What worked well

After all the preparation was completed, the site was successfully launched at 6am on 24 April and handled 3.1 million requests from over 300,000 visitors in the first 24 hours. No significant issues were reported.

Chart showing peak of 316,000 requests per second during launch

The project had a tight schedule, a high profile launch and as with any project, things get more complicated on the journey. We managed this risk by keeping our systems simple and avoiding over-complication at all costs. This isn't as easy as it sounds. At the beginning of a project, it's very easy to get caught up in wasteful work just "doing something". That unfortunately often translates into setting up complex continuous integration systems that no-one uses. For small teams on short green-field projects with evolving requirements though, it can be more effective to add processes and infrastructure only when actually required and instead focus on the harder problems of coordinating stakeholders and getting agreement on objectives.

The availability of the detailed school zone information did cause controversy in some places, such north of Ballarat where the Miners Rest Primary School zone is bisected by a major freeway. In this case though, the zoning had not been changed for several years and it was a good example of the existing zoning being poorly understood and communicated. That sort of discussion is an example of success for Find My School.

Except from the Ballarat Courier website, "Ballarat parents angry over school zone changes", 28 April 2019 (highlight added)