Visible product creation

Photo by Suzanne D. Williams on Unsplash

A sunny summer day. You’ve just released a somewhat big refactoring to production. Part of it involves making a feature that was available to everybody, be available only to some users and controlled via a feature flag. The people who have the most info about the users didn’t really understand the change upfront. Suddenly, users whose work exclusively relies on that feature, loose access to it. A jam in several hundred people’s work lives happens.

What was the cause of that problem? Why didn’t you see it coming? Everything has been planned to the slightest detail. The code change was reviewed by several people, several times and tested on the staging environment. Someone should’ve caught the bug, right?

Well, no. The impact of a feature change can only be assessed properly by the people who understand the context of usage of the feature. If these people don’t see the complete aspect of the change, they won’t be able to understand it in full. Therefore, a bug in logic can occur.

That was partly a problem of visibility. The developers knew that this refactoring would stop access to the feature for some users. But, given their limited knowledge for the business, they thought that’s okay. If the business part of the team had more visibility about the feature flags of the system, however, they may have spotted the problem earlier and prevented it from going to production.

This is a real story that happened to one of the teams at Camplight a couple of weeks ago. We try to keep our product development processes visible by being entirely transparent in our communication and our tasks at hand. That’s why we keep all of our efforts inside Trello and try to avoid meetings. Being transparent, however, is worthless if you don’t share information in a manner that makes it easily understandable.

We do feature-flag-based development in one of our projects. All of the currently used feature flags in the platform are being listed in the app in the form of a table.

From a developer standpoint, this table is pretty easy to work with and gives us an overview of the current active feature flags in the system and their responsibilities. From a business standpoint, however, this table is hideous and doesn’t provide crucial info like “which UI element of the functionality does this feature flag control”. So, by looking at it, business people can’t understand what impact each feature flag has. Therefore, if we decide to make a change to the feature flags, the business people won’t be able to tell us whether that change is okay for the users. Our current solution to that problem is to provide a business-friendly interface, so people with user-knowledge can make better-educated decisions.

Our product development process aims at being visible to each team member. First of all, when someone works on a given task, they make sure it’s being marked as “in progress” so everyone knows who does what. Also, by constantly moving a task in and out of “in progress” we have a visual indicator when someone is stuck.

The other thing we do is to track each task and time spent on it, so we can see if some stuff is taking too much time and can be optimized. For example, in one of our projects, we suspect that we do too many meetings. That can be easily seen on the project’s board (the pink “discussion” label indicates our meetings).

Lastly, we can easily know what are the main initiatives in a given project by keeping each active initiative in an “In Execution” column. That helps the team to easily see what’s in our priorities and who tries to do too many things. This is invaluable in a team of 10 where we try to properly distribute ourselves each week on important tasks.

These are just some aspects of our visibility habits. They help us, again and again, to catch problems earlier and prevent them. Of course, this is not a panacea. Problems do occur, but striving to keep them at minimum is what matters.

This is the second post in our series for efficient and effective teamwork. The previous was about the value of written communication. Wanna share your visibility tricks? Don’t hesitate to drop us your comments below. Anything else — reach us at team@camplight.net :)

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store