Strategy on picking features and priorities
Being a user-centric and product driven company, we focus on delivering value to both our end users but also our enterprise administrators. We aim to be as agile as possible and given constraints in our resources, we have to be laser focused on what features to pick and prioritize.
Today, we are open sourcing what our product principles are. This fits in our culture of transparency, especially on how we select and move forward with product functionality.
Keep in mind this is ranked in priority of importance, so the higher it is on the list, the more important it is.
Reliable and Stable
Users need to be able to trust the application. If the app is experiencing issues, users should be quickly notified of the problem and when it will be fixed. Great error states mean it may be possible for users to resolve issues on their own or find workarounds.
Do. Feedback error message: Unstable Internet Connection, you may experience slowness in the application
Don’t. Feedback error message: An error occurred
Core actions of the application should take minimal time on an average network. We are internally figuring out what that means in terms of time.
Do. Starting a chat takes less than 200 ms
Don’t. Starting a chat takes 1 second
Expect your users not to have to read any FAQ or training material. Ensure features that are not in regular consumer apps to be clearly explained on what exactly it does and how to use it.
Do. Locating allows users to figure out who is on-call without manually calling switchboard. Click here to message on-call surgeon
Don’t. Have textfields not clearly named with no hints what to fill out.
Velocity of Software Development
Features are prioritized if it can help improve velocity with software development. It is vital to build features that are used by other features in a manner where it allows the dependencies to be built quickly and reliably.
Do. _Optimize for developing features that can help foster skill sets in the team to develop other functionality with similar skillsets required. For us, it was real-time events and data synchronization.
Don’t. Rush out features without thinking about the bigger picture.
Make the application look pleasing to use. Ensure colours are chosen that are complementary, with user interface clearly laid out.
Do. Everyone part of the product should be proud of the work similar to a work of art
Don’t. Think of each task as a feature, and ship it out.
Flexibility and customization for administrators
The application should make it easy for administrators to customize the software to their use case and their workflow. It should promote flexibility without introducing complexity. Allow controls for power users without overwhelming regular users.
Do. Allow important aspects of the app such as security control customizable for administrators
Don’t. Every customization requires a custom built software, and maintenance to go alongside it.