Healthcare is one of the most exciting industries for digital transformation. In recent years, our consultants have helped several healthcare organizations shift their focus to preventive care and patient outcomes. Companion apps have helped users in self-diagnosis, allowing them to seek proactive treatment. Many healthcare organizations also use companion apps to help their users fight addiction.
So, when our experts at Modus Labs were looking for their next challenge, they decided to create a healthcare proof of concept app that provides self-diagnosis. The project would allow our bench team to hone their skills in an industry that’s rapidly embracing digital initiatives and working towards better patient outcomes.
Additionally, the team decided to do it all in just six weeks.
Why such an aggressive deadline? Mobile development, just like any other craft, requires practice. What do you do when you’re operating under a tight deadline? Which tech stack do you choose and when? How do you successfully collaborate remotely and asynchronously? You’re much more likely to nail these scenarios if you’ve practiced them before. By simulating a tight deadline, the bench team would be better prepared to navigate such projects with future clients.
Tight deadlines also present opportunities to get creative and try new ideas. It’s the developer equivalent of practicing match-day scenarios before the season begins.
So, the team kickstarted the project to develop a mobile application from scratch — from product strategy and CX to end-to-end development and release, all in six weeks. This post shares how we did it and the lessons we learned along the way.
Why the Ishihara Test?
Colorblindness affects over 300 million people around the world. The Ishihara Test, created by Japanese ophthalmology researcher Shinobu Ishihara in 1917, remains the most popular way to test for colorblindness. The test shows several images of circles formed by small dots painted using different color patterns and attempts to hide a number or letter in the middle. This helps diagnose several different types of colorblindness.
We felt that the century-old test could use a 21st-century makeover — a mobile app. It would be an interesting challenge to generate thousands of plates for the current state of the application and test for both Red/Green and Blue/Yellow colorblindness.
So, our team of three developers, with support from the product, QA, and engineering departments, kicked off the project.
Product Strategy and Design
Even when you have a tight deadline, you can’t ignore creating a strategy. Everyone needs to understand what the product aims to accomplish and what’s reasonable to expect in a given timeframe. Here are a few ideas that served us well.
1. Set a Goal
Our goal was clear — Develop a Proof of Concept in Six Weeks. Nothing more, nothing else. Our application should be able to run Ishihara tests successfully and share results with the users. A clear goal helps align all stakeholders on the definition of done at the end of the project.
2. Set Expectations
Six weeks isn’t enough time to incorporate every feature you can fathom into your app. So, we decided to build smaller scopes for each project phase and create a workflow based on short feedback loops. The focus was on an MVP that creates value for our users and the technologies that can support us in delivering the required outcomes.
Additionally, since healthcare is a sensitive industry, it’s critical to understand and adhere to the regulations. For example, we knew we couldn’t claim that our app provides a final diagnosis to users. It’s a proof of concept.
3. Be Prepared to Iterate, Quickly
Iteration is the name of the game. Short feedback cycles would provide a continuous stream of feedback. Therefore our team needed to be agile enough to iterate quickly and make incremental improvements to the product.
4. Maintain Brand Consistency
Finally, the application design had to reflect the Modus Create brand. Therefore, the team understood that all UI decisions of the application needed to adhere to the company brand guidelines. The application should feel like it’s a Modus Create app, not a random online test.
Modus Create’s Brand Manual
Front End Development with Ionic and StencilJS
Building an Android and iOS app using native technologies would entail twice the work, time, and team. Therefore it was clear that a hybrid app is the best course of action.
That’s where Ionic comes in.
Open-Source and Hybrid Framework
Ionic is an entirely open-source development platform that builds cross-platform mobile, web, and desktop apps, all with one shared code base and open-web standards. Since we had an aggressive deadline and wanted our app to be available on both iOS and Android devices, a hybrid framework like Ionic was ideal for us.
Preventing Technical Debt with StencilJS
While our app’s functionality wasn’t too complex, we couldn’t jeopardize the biggest challenge in building the backend that generates the Ishihara plates — losing valuable time to technical debt.
Backend Development with AWS Serverless
Thinking, planning, building, and releasing the app in just six weeks was an enormous challenge. While using Ionic and StencilJS would allow us to simplify front-end development across multiple platforms, one big problem still remained.
How do we generate the Ishihara Plates?
Ishihara Plates might seem simple on the surface, but their dots and colors aren’t randomly generated. There is a scientific process behind each display. And that requires a complex algorithm.
The algorithm needed a place to run, and the resulting images needed a place to reside. However, we simply didn’t have time to invest in an in-house hardware setup or complex AWS configuration.
Backend Development with AWS Serverless
Then, we exposed an API Gateway where our mobile app can authenticate and consume the Ishihara plates, and show them to the users.
Project Management with Jira and GitHub
Modus Create is a distributed organization with a global team. The project members were spread across Europe, the Americas, Asia, and Africa. Therefore, it was critical not just to have the right tooling for remote work but also the right processes.
For example, we didn’t want to overcompensate for physical distance by having too many meetings. So the team decided to meet only once a week on Tuesday mornings (US ET) and rely solely on asynchronous collaboration to drive the project home.
Project Management with Jira
Jira, Confluence, and GitHub were essential in allowing us to work asynchronously. Documentation on Confluence provided team members access to all the project details, reducing the need for back and forth communication. Similarly, we used Jira to track the progress of the work, which reduced the need for the dreaded “status-update” meetings. These measures helped create deep work time for developers, allowing them to code in peace.
Our code was stored and versioned by GitHub, and we used Slack for occasional real-time communication.
GitHub played a critical role in managing different ongoing versions of our codebases and deploying the right code to the production environment. We built workflows with Github Actions that allowed us to deploy the different backend environments, for development and production, and the apps on their respective app stores.
The workflows are triggered in different situations. For example, when merging the code to the main branch, our backend was deployed to its development environment, while the app was deployed to the store’s test environment. When publishing a GitHub release, the backend code was deployed to the production environment and the apps to the actual stores.
Release Management with MS App Center
By using Ionic’s hybrid framework, AWS serverless, and collaborating asynchronously, we made significant progress in five weeks. The application was now ready to be deployed.
Our final challenge was launching the app on the two app stores.
Microsoft’s App Center allowed us to manage both publishing strategies, including deploying beta versions for testing purposes. It also allowed us to manage the deployment of the latest versions and provided statistics on the app usage. This helped us get real user insights and incorporate them in future iterations.
This project was an attempt to align our bench team, industry focus, and technology expertise to hit an ambitious goal. We chose to work on a healthcare application due to widespread digital transformation in the industry and a shift towards preventive care. In the end, the team succeeded by using the right blend of agile practices and technologies.
The key to delivering a product fast is to keep it simple and iterate with a continuous feedback loop. A short timeline can tempt teams to dive straight to execution. However, you’ll increase your odds of success by investing time in a data-driven product strategy. Additionally, it’s also vital to pick modern tooling and the right technology stack to avoid double the work.
Above all, the most important factor behind the success of any technology-related project is to trust your team’s ability to do their best work. Focus on clearing blockers and giving them room for deep, focused work. Engineers can make extraordinary progress if they feel empowered and have clear requirements at the start of the project.
- Getting Started with Modus Ionic-Vue
Looking for a way to build web and mobile applications with seamless UI? Bridge together…
- Upload Files to AWS S3 Using a Serverless Framework
Today, we will discuss uploading files to AWS S3 using a serverless architecture. We will…