As developers at Isos, my colleagues and I build tools that end up helping a wide variety of customers on the Atlassian Marketplace, but we also build applications for our internal teams that allow them to increase their overall productivity. In the past months, we have been working on a large application that will immensely increase the productivity of our ITSM team. However, to do this successfully, the development team had to think like a Managed Services (MS) staff member and make decisions based on what's best for them, and ultimately, the client. There were many ways we did this. Through the front and back ends of our app, we needed to be sure that every piece was optimized for what they would need, not what we, as developers, need.
We first needed to think about the elements of our app that would make it actually useful, not just add bloatware to our team's workflow. We needed to be sure that the app would be something our people would want to use. We did this by first asking our MS leads what they thought they would need. We then took this information and figured out how we would get it to them. This gave us a strong starting point to base our architecture on. The next part was actually laying out that architecture and doing the research to make sure that we could deliver on our team's needs.
This next piece involved laying out the architecture and getting to work. We needed to define what our minimum viable product (MVP) was and how we could get there, which was obviously the bulk of the work. Every day, we needed to think about what parts were important to include in the MVP and which pieces we could hold off on (more on MVPs here). We constantly had days in the process where we had conversations about what features we would want if we were in the shoes of an ITSM staff member, and how we could provide those features.
The most significant element that mattered was the front end of the app. We needed to be sure that it could display all of the technical information that a staff member might need, while also having a simple and elegant UI. This app would be useless if the information was hard to find or not displayed in an organized manner. I won't be getting into the app's specifics here, but this process was by far the most time-consuming. We probably went through five or six versions of our front end. We spent time asking members of the MS team what they thought, and what they would like.
While seeking feedback is essential, I quickly learned that when a customer for a software project makes one simple request, that same request can mean hours and hours of work for the development team. This, again, speaks to the importance of having a strong MVP.
Our app is currently in the last stages of development, and it looks great according to my biased opinion. But I know we are definitely not done, as our ITSM team will be thinking of new features they want, and we will do what we need to deliver on them. The project was a great example of putting on the shoes of the end user (as a developer), and making sure all decisions are made based on what they want.