Even though the Covid-19 pandemic will be the topic that everybody remembers when thinking back to 2020, this year will also go down in Sablono history as the year of major releases.
Back in April, we had shipped a full revamp of our technical infrastructure – You may have read about it in my previous article. As you can imagine (and as already discussed in that previous article) our development pipeline was jam-packed after working on technical tasks for more than six months. We were exited to get going and were looking forward to a year full of releases. The first epic that we wanted to tackle was the implementation of an Offline Mode for our mobile application. We had been hearing that request for years and finally decided to go for it. Our developers estimated the work to be done in about 4 sprints – 2 months while also calling it a “high-risk item”.
Turns out you should always carefully listen to your developers when planning and managing your releases…
Full six months after starting, we finally released the 3.0 update of our mobile application including the long-awaited offline support. Looking back at the initial estimate I sometimes wonder how we thought this complex topic could be solved within the initially targeted few weeks. In order to understand this better, here is what we had to fight with over the last months:
- The data that our application displays is NOT immutable. If you think about the Offline Mode of widely-used snagging applications, floorplans and schematics do not change on a regular basis. For us, the information displayed in the mobile app is related to the process that multiple companies report against. Hence, it changes constantly.
- Because of that, we need to make sure that whenever you open the application while being offline the data you see represents the latest status on the platform as accurate as it can possibly be. We need to avoid issues like double-reporting or reporting on outdated processes since there is nothing more frustrating than working on something for maybe even hours (while being offline) and afterwards realizing that your work was not needed since it was based on outdated data.
- Looking back at our first mobile application Sablono Inspect (which already had an Offline Mode), we wanted to make sure that previous issues with that implementation would not repeat. Inspects Offline Mode had been completely manual: Users needed to decide when to download data from the server and needed to upload their changes manually to the server as well – Unfortunately, users regularly forgot either one or the other. Related issues could in best case scenario be solved by personal reminders from our Customer Success team (upon request of the effected user) to push the upload button at the end of their inspection. In worst case, data input could not be used out of the box (since it was based on an outdated offline data set) and our engineers needed to get involved so that clients would not lose their data and valuable time.
Having all that in mind, we designed our new Offline Mode to synchronize automatically as much as possible. Activities, their states, notes, photos, QA checklists, access rights, dependencies, deliverables – everything is being synchronized on the start of the application while online to make sure you always have the latest state of the project available once you switch offline. And information that you capture while being offline is likewise uploaded to the server automatically as soon as your application reconnects to the internet.
Making sure that all this works as seamless as we wanted it to, supporting even our biggest projects with up to 250.000 activities, was much more complex than we initially thought.
One of our developers said the other day that he feels like an electrician when thinking about the Offline Mode:
Even though he put a huge amount of work into it, everything the user will get to see is a little switch to decide which parts of the project he wants to be able to access while being offline. Much like all the work of an electrician vanishes behind a wall and all we ever see of it are sockets and switches.
Let me pick up that analogy and say that even though it took a long time to get here, I strongly believe our new Offline Mode will be just as vital to the overall Sablono platform as power is for any building we live in.