6 Functional essentials for Product Managers to get right when developing a product

When building or maintaining a product, as a Product Manager you’re constantly struggling with what to prioritize. Based on things I have profited from and things I’ve missed, I tried to make a list of what I consider essentials to get right when developing a new product. Working on these things will help your product to be prepared for whatever comes: be it growth, maintenance, or new features.

This list consists of 6 technical essentials and these functional essentials.

What I won’t be talking about:

  • Which of these items should come first. This list is not prioritized - that’s up to you.
  • Whether you should build an MVP first, or what features to you should prioritize. This list does not contain features, but rather boilerplate functionalities and processes that I feel should improve your product development process.
  • Developing methodologies like Waterfall, or Agile with Scrum or Kanban. Your development methodology is totally up to you and your team. Pick whatever suits your product, team and delivery requirements.

Ok, enough managing expectations. These are the technical essentials for Product Managers to get right when developing a product:

1. Telemetry

As a Product Manager, you want to steer the direction of your product based on what users are doing in your product. Telemetry is, according to Wikipedia an automated communications process by which measurements and other data are collected for monitoring. So basically, you’re monitoring how your users actually use your product: how do they navigate, where do they click, what features do they use, and what parts of your product are less used than expected. As a Product Manager, you can make informed product decisions because you know what your users actually use your product for.

2. Audit logging

According to welivesecurity, audit logging records (attempted) actions. An audit log includes when, where and by whom the action was taken. This provides insight into what happens in your product. Audit logs can be used to track and identify security violations and performance problems by allowing you to reconstruct events. Also: GDPR regulations might require you to be able to provide users with an audit log of their data on request.

Nobody has the time to monitor audit logs manually, and as a Product Manager you certainly don’t. Make sure to set alerts: when a certain action takes place, or when an action happens way more than expected. The audit log will then help you to see exactly what happened.

3. Error logging

Of all the actions and events that take place in your system, you’re most interested in those that go wrong. Errors might mean your system did not prevent the user from entering incorrect data, or it might mean somewhere your system is not tested well enough. In all cases, as a Product Manager, you want to know. You might not have found these errors while developing and testing your product, but identifying common errors quickly helps improve the stability of your product.

Ideally, set up a system to receive alerts when certain conditions are met: when the amount of errors in a certain time frame exceeds a threshold, or when a certain error happens at all - you don’t have the time to sit and monitor the error log, so automate it! Knowing what goes wrong in your product helps you to make your product better.

4. Design system

The latest and greatest in development land is implementing a design system in your products. A design system is “a series of components that can be reused in different combinations” according to forumone. This brings huge benefits to developers, but also to Product Managers. Essentially, developers build a component only once, and reuse that same component in the rest of the application. A submit button could be a component, or a date picker or a select list. This has three big benefits:

  1. The look and feel of the component will be the same everywhere in your application. No more slight variants of the same element. No more X types of submit button - unless you design it that way.
  2. You only have to test the components once. For simpler components like buttons this won’t have much impact, but not having to test a custom select list again because it works exactly as when you tested it saves a lot of time!
  3. With every finished component, development speed of new features improves. There are more components to be reused, so developers won’t have to focus on building (or copying) them, and can instead work on screen composition and data flow.

A design system is a pretty expensive investment in the short term, but it reaps rewards in terms of quality assurance and development speed very quickly.

5. User feedback system

While measuring what users do in your product is valuable, gathering their feedback is equally important. If you provide users with a place to ask for help or file a complaint, you will find out a lot about what users really want. Users might not be able to find or use a specific feature, or expect a certain feature to be in your product while it’s not. With a feedback system, they have the chance to let you know! As a Product Manager, contact with your user base is top priority. A user feedback system helps with that.

6. Feature flags

You probably don’t want to expose all your users to a new feature in your product immediately. Especially with larger features, you probably want to test new features with a couple of users, gather feedback, improve, and then gradually make the feature available for the rest of your users. This is what a feature flag system is for. A feature flag is a boolean value that signals if a user has access to a specific feature. This flag allows developers to display certain UI elements or allow functionality only if the feature flag is active. Whether the flag is active can be based on if the feature is available at all, if the feature is available for the user’s account type, and if the feature is available for this specific user. A structure like this allows a Product Manager fine-grained control over which users have access to a certain feature.

Pro tip: include a SystemInMaintenance flag, to allow switching the whole product to maintenance mode with one update statement. This might mean different things depending on your product: while the flag is active, users might no longer be able to edit or submit forms, log in, or maybe get redirected to a dedicated page with more details. It’s definitely a flag you want to have, and it’s also something that is hard to add later on!

In conclusion

Making sure you know what’s going on in your product is pretty much Product Management 101. In my opinion, these 6 essentials will make sure you’re ready to go on a functional level. Want to be prepared even better? Check out my list of 6 technical essentials for Product Managers to get right when developing a product too!