for the local municipal government of Canada
Azati designed and developed a set of applications interconnected into one robust platform. Themain goal of this solution was to collect information about equipment depreciation, and thesecondary goal was to create interactive real-time reports according to the collected data.
From the very beginning, we did not work with the customer. All communications were made thru ourpartner – a company focused on business automation and digital transformation. Our partner is aboutique software development agency in Toronto, so it was easy for them to communicate with thecustomer on-site. A customer wanted us to solve one day-to-day issue.
Every city relies on complex sewage treatment. These systems are cleaning out blackwater to avoidecosystem pollution. Maintaining the whole process is a complicated, but essential task: ifsomething goes wrong, it will end with complete disaster both for the government and forcitizens.
Since industrial water treatment contains several steps, there is a considerable number ofdifferent equipment used during the process. So, it is challenging to maintain this equipment:one time per day, a group of engineers inspects every device to ensure that everything worksfine.
And, well, the inspecting process requires reporting. The customer wanted us to automate theexisting reporting process and make it in line with current highly technological reality.
Engineer writes a report for every water pump he checked. As there are hundreds of pumps involvedin the whole treatment process, engineers are wasting almost half of their time by doingexcessive paperwork. It is easy to calculate how much a single report costs.
After initial analysis, we figured out the best way to solve the problem – develop a customquestionnaire application. Engineers are familiar with the questions extracted from their dailyreports. So, it does not require any additional personnel training.
In This Way, We Started Developing Several Applications:
Let’s call it “Backend”. The main idea of this app was to collect information from mobile clientsand store it in the database (CRUD functionality). Also, this app generates reports later usedby a customer to understand the actual state of the equipment.
iOS and Android clients
Two client-side applications, which engineers use to complete polls. As these applications havethe same functionality, our engineers decided to build it with a cross-platform framework–ReactNative. This approach helped us to cut down development and overall costs.
Yeah, this plan looks straightforward and easy to implement, but there were several tech-relatedchallenges we faced. Let’s have a closer look.
Our business analysts figured out that the list of requirements gathered for tender preparationwas incomplete. This prevented our team from developing a complete technical specification inthe shortest terms.
Another issue was the lack of direct communications with the customer. Sometimes it was tricky tounderstand what the customer wants.
There was no way to avoid these issues, so our team preferred an effective agile methodology –SCRUM, instead of a traditional Waterfall. It helped us to avoid any delays on start and movefaster, delivering MVPs once per week.
SCRUM led to some inconsistency in data and poll templates. It was a typical situation when acustomer decided to change the look of a specific report or poll or even change one or twoquestions in the process. There was no strict standardization, as well as sometimes reportscontained unstructured data like photos and images.
So, it became a typical situation when we already deployed an application, but some polls stillrequire minor fixes and the whole app is not 100% usable.
Sometimes equipment was placed underground, where mobile network is not accessible – it makes thetypical application unusable. Our engineers decided to develop an “offline mode”. The team neverfaced a similar functionality before, as it was a unique and important experience.
It is easy to trigger data synchronization when the application goes live, but this approachuncovers several unobvious issues. One day, it was a kind of crucial moment when the polltemplate changed in the process and cannot be synchronized with all the devices.
The development process contained four steps called milestones.
Presales: Our business analysts initialed research and analyzed themain requirements. As you already know, the list was incomplete from the very beginning. Thisway, our partner helped us to speed up requirements gathering.
The team proposed agile development to our partner and a customer. We wanted to develop asolution step by step rolling out a working prototype every week.
Our team often faces a situation when a customer does not know what he wants and how it shouldlook like – it leads to misunderstanding and extra works. To avoid negative circumstances, wewireframe and mockup everything.
Wireframing: As we did not know what kind of application the customerwants to develop – our business analysts and a UX designer created user flow first. User flow isa way users interact with an application – what they see, what buttons can they click, whathappens if they click on a specific button. Wireframes are widely used for such kinds of work.
But wireframes are outdated today, so we presented interactive wireframes made with AdobeExperience Design. Interactive wireframes help a customer understand how the application willlook like and how it feels.
Agile Development: When we determined the design of an application,our team started the development process. From the very beginning, we’ve created a stagingserver – a test web server that contains the actual state of an application.
We are trying to avoid staging servers – someone can access the application and try to use ituntil it is ready. Here, our team did so to achieve maximum transparency and build relationsbased on trust.
So, the customer can check the project status and how the work is done.
The solution includes two applications connected to one robust ecosystem. There is an Android/iOSmobile app for auditors and web interface for admins.
Auditor mobile application
(iOS, Android) main features:
- Form template selection
- Filling the form functionality (with the possibility to navigate betweensections)
- Filled form preview functionality
- Drafts, sent forms and in-process forms (finished and sent, but not delivered yetbecause of the lack of the Internet connection) functionality
- CRUD users functionality
- CRUD forms template functionality (using the form-builder)
- CRUD reports templates functionality
- Automated email sending after the form receiving
We built custom reporting software that collects data from many mobile clients. Some mobileclients do not send information immediately, but from time to time synchronize withcustomer-hosted backend. One per day, application downloads the latest poll templates andenriches the existing answers with default values, if these answers miss some crucial fields.
A FEW NUMBERS:
freed from doing routine and monotonous paperwork
per day are processed by our solution
it took for our team to build this set of applications
Our team successfully launched the solution in mid-summer 2019. Azati signed up an on-premisemaintenance contract with the customer. This project helped us understand how local governmentworks and what problems it faces.