NurseGrid is a local start-up whose main ambition is to ease the lives of nurses. Early this year, they approached us wanting to build an app that centralized their schedules and all work-related communication. NurseGrid’s main problem is common within the mobile space: they had an immaculate iOS app already on the store utilizing plenty of wonderful features native to iOS, but their Android app was in need of some TLC (tender loving code).
The outset task seemed simple enough: build an Android app based on its iOS version. Then ensure this app works with SaaS products so healthcare personnel managers can communicate easily with their staff, and staff can access and adjust their shifts. Their android app was little more than a web-wrapper redirecting users to various areas of their web client. This approach deters users because of its messy navigation, slow loading times, and an experience that doesn’t use a mobile device to its full potential.
More than just porting to Android
For Android developers, the request “make it like iOS” is not uncommon. Often for burgeoning companies, it makes most sense to put plenty of development time into the API, for stability, and the iOS app, for visibility. But this project was more complex than porting the app to Android. We built it from the ground up under a tight timeline with quite a bit of prioritization to get to a certain feature launched in the scope of 10 weeks. Although it’s based off the existing iOS app, all the code is original and native for Android. To make this project more interesting, our internal team consisted of two developers, a part-time QA engineer, and a part-time project manager.
As aniticpated, the biggest time commitment was the beastly calendar. Making a calendar that infinitely scrolls, has custom-colored cells, complex symbology, and a smooth scroll unhindered by color parsing was a large order. Along with the appearance of the calendar, issues surrounding data refreshing and caching were inevitable in an app with the explicit purpose of keeping an up-to-date schedule. Adding to the equation that we aimed to have this app be functional for older Android devices, we had initially planned for the calendar to be the only feature we would complete. However, because of our team dynamics and the hands-on helpfulness of the team at NurseGrid, we were able to complete the calendar feature and also the rest of the major features.
Teamwork, trust, and transparency
A huge part of our success on this project was due to the diligence and helpfulness of our Product Owner and API designer at NurseGrid. Our internal team only had two developers, a part-time QA engineer, and a part-time project manager. Given that myself and my co-developer had recently received our Scrum certification, our project functioned as a self-managed (and self-correcting) experiment in having a skeleton crew. Yet, in the lack of a robust team, NurseGrid stepped up to the plate to be the ideal clients, which ensured our timely delivery.
As we took advantage of multi-faceted team members, NurseGrid embraced this idea as well–not only was their product owner saddled with the responsibilities of that role, but he made it a point to act as a QA engineer and ScrumMaster as well. A big (and continually-asked) question through the process was how to utilize our proactive client to the best of our ability. As one might expect, overarching, intangible generalizations such as communication, timeliness, and of course patience came into play, but what does that mean within the scope of a project?
Here are some things that the NurseGrid did that proved to be invaluable through this whole process:
- Being okay without knowing an immediate answer–and relaying that to us so we can move on to other things in the meantime
- Having casual interactions on Slack which led to more transparency and openness among the whole team (not afraid to toss in an emoji or two)
- Being available outside of meetings to answer questions
- Willing to use the OS to its full advantage, even if that means differing functionality between platforms
- Understanding and accepting that bugs are a reality of development
- Embracing Agile, but knowing when to adapt the process
A myriad of factors contributed to our success, both in dev-related resources and a client that made it their goal to help us as much as possible in this process. Inevitably, we encountered problems. But, as is the case with new experiences, we adapted, learned, and grew because of our mistakes. In conjunction with our own team dynamics, having the NurseGrid team be equally small proved to be a huge advantage. Without superfluous team members, time budgeting became a necessity that proved to bolster efficiency for everyone. In short we thrived by embracing flexibility, encouraging role-juggling, and emphasizing communication.
“It was a tight timeline … The project manager was proactive at coming up with solutions often.” Thomas Iwasaki, NurseGrid