Post Mortem Discussion
Check out photos of this project
What was the problem to be solved?
The process for nurses to order durable medical equipment can be combersome and error prone.
Additionally, it requires many manual steps and nurses are often on the go or in their vehicles when they need to order equipment for their patients.
What was the proposed solution?
Nurses need a guided way to order equipment using only their voice.
Additionally, the bot needs to assist the nurse by proactively protecting the nurse from order errors.
Finally, the platform should be available for the nurses on their mobile phone so they can access it on the go.
What challenges arose during the project?
Despite the many advances in voice-to-text and text-to-voice technology, it still has many challenges.
For example, if an application says "What time would you like the item delivered?" voice translation technology can easily convert "12 PM" or "9 AM" to a time.
However, if the user says "Noon" or "morning", the technology needs a bit of training.
Even more complicated is if the user adds pregnant pauses such as "uhhhhhhh 12 pm" or "how about noon."
If the bot replies "I'm sorry. I didn't understand that" too often, the technology loses its purpose as the users get frustrated with it.
What was the technical approach to the project?
The requirements of mobile and voice made React Native an ideal choice for this project.
"In order to leverage the built-in voice-to-text translation systems of iOS and Android, this needed to be a native application," Gunner founder and CEO, Cody Swann, said. "And because the app would be virtually identical whether on an Android or iOS device, React Native was the obvious winner."
Additionally, the team leveraged an Open Source library that acted as a wrapper around both of the platforms' voice to text tech, which eliminated a lot of the heaches that go into exacting words and meaning.
In order for the bot to read the steps and ask for confirmations, the team relied on Expo for that and a number of other common functions.
This API sources its data from a legacy Ruby on Rails application.
What was the project management approach to the project?
In this case, the team knew it had approximately four months to complete this platform.
With that in mind, the management team worked with stakeholders to list user stories for all the features the platform would need.
After that, the management team worked with the product team to estimate Effort Points for each user story on a 1, 2, 4, 8, 16 point scale.
The team added all the points to arrive at a total Effort Point level for the entire project.
Knowing they had two months to tackle that total level, the management team was able to look at the available development resources and their Velocity score (how many Effort Points they can complete in a single iteration), and put together a team that could complete the project in less than four months.
Each iteration is a week, and the management team will know immediately if the team is ahead or behind schedule and can adjust resources as necessary.
What platform was built for this project?
As with most projects, the team used CloudFormation and the Serverless Framework to manage the backend, which included:
For the frontend, the team leveraged the AWS Amplify framework, which helped create the AWS AppSync backend with a GraphQL API that the React and React Native clients used to communicate with the backend.
What did you learn from working on this project?
As this was Gunner's first voice-only app, the team learned a lot about the idiocracies of heavily integrating voice.
For example, the developers had to figure out how to detect silence and then implement an ideal time of silence to determine that the user had stopped speaking as this was a completely hands-free app.
Why was Gunner selected for this project?
Qualis has been a Gunner Technology client for nearly a decade.
When they need something built, they know Gunner will deliver the highest quality, on time and on budget.
Who worked on this project?
What tools, techniques and methodologies were used on this project?