Recently we were checking in my team at work ways to accelerate the pace of delivery, we found that most of the issues that makes us slower in burning all points in a sprint was because our definition of done are not met completely.
Problem
Definition of done differs from a team to another, for us going live with a feature on production is the final step that makes a story done, and mostly it is the same for more teams in different product companies
A feature could be 3 or 4 stories to be complete some of them are FE work and others are BE and maybe some test stories as well, that could be an Epic but we need to make progress and keep merging to the main branch without showing incomplete feature to the end-user.
That could be in different ways, but one of my colleagues suggested using a great tool that will enable us to toggle features, so we can still merge to the main branch and keep releasing to production without showing the incomplete features. This will enable us to burn separate stories safely without having to wait for the whole Epic to be done as before.
Solution
The tool that we choose is an open source tool called Unleash 🔗, using this one you can build a server using your favorite technology, for us we decided to build a nodejs server, and host it some where, hence that they are providing hosting but this is a paid service.
You need as well to make another node server for the client side, we built that to use these features that we created on the hosted server as follow:
What is super cool here is that there are some options for features like limiting some for a userId or a sessionId or even run it in an A/B testing way with a percentage like 50%, easily you can enable/disable features to show/hide them from one place.
I applied the Frontend in a way more or less according to this very nice article I found “Implementing feature flags in React with Unleash 🔗”, I’m not going to re-write it again here, I implemented that in our application in a bit different way but still it was very helpful.
Conclusion
I wrote this article initially to mention that feature-toggle idea and how it was so helpful for us and could be useful for you as well, if you have any idea I’ll be happy if you share it with me on twitter 🔗
Tot ziens 👋
Resources
- Picture is from Unsplash by Nick Sanchez 🔗
- Unleash server 🔗
- Implementing feature flags in React with Unleash 🔗