Done
Pinned fields
Click on the next to a field label to start pinning.
Details
Details
Assignee
Mateusz Kwiatkowski
Mateusz KwiatkowskiReporter
Josh Zamor
Josh Zamor(Deactivated)Labels
Story Points
8
Original estimate
1w
Time tracking
3d 7h 30m logged1d 30m remaining
Sprint
None
Fix versions
Priority
Time Assistant
Time Assistant
Created May 24, 2018 at 2:07 AM
Updated June 28, 2018 at 9:51 PM
Resolved June 20, 2018 at 12:05 PM
As a developer I want to be able to keep my branches short lived so that I may achieve continuous integration and be ready to deliver a working system even when my feature work is still in-progress and un-complete.
To that end we'd like to utilize feature flags:
Martin Fowler: https://martinfowler.com/articles/feature-toggles.html
For trunk based development: https://trunkbaseddevelopment.com/feature-flags/
AC:
Become familiar with trunk based development and the use of feature flags
Hold a call with to hold a brainstorming and Q&A discussion and prepare for the technical forum discussion
Spike on a code-sample of setting and using a feature flag, ideas:
Improve performance of SoH calc (part of ). Specifically do + and - calculations in db and avoid network IO by using Postgres SUM() and moving the reason + or - into table.
Fix a small bug or tech-debt - ideally one that involves the Database, the API. Extra points for the UI.
Start a discussion on the technical forum and cover:
Does a feature flag to just be inside a service? Cross-service? Cross-project (e.g. reporting stack)?
Do we consider a feature flag to be tech-debt? How long should a feature flag exist?
How do feature flags work with long term storage (i.e. databases)?
How do the use-cases we discuss and the decisions above support better code quality and continuous delivery?
Write up:
Guidelines for using feature flags
In conventions
In contribution guide (http://docs.openlmis.org/en/latest/contribute/contributionGuide.html#git-branching-pull-requests)
In how to deploy
Present to technical committee how a developer uses these.