No smilies, no avatars, no flashing gifs. Just discuss the issues of the day, from last night's telly via football to science or philosophy.
Started by GyratingTrampoline on Dec 23, 2021 10:02:14 AM
Branching vs Switching between versions at runtime

See post 1

Previous
|
Next
|
Top
|
Bottom
machiavelli - 23 Dec 2021 10:58:28 (#4 of 11)

Then they started asking for numerous changes to phase 1, which we did by branching the repository, doing each change in phase 1 branch and merging it into phase 2 branch. But the things they're asking for in their production version are becoming increasingly complicated and therefore difficult to merge.

I have no useful suggestions to offer. I'm just popping by to say that this sounds very much like my ex's experience in the NHS IT programme. Implementations were often held up by constantly changing requirements from the client. This, and meetings with no conclusion beyond the next meeting, ate up huge amounts of time.

GyratingTrampoline - 23 Dec 2021 11:28:13 (#5 of 11)

Is there any chance you can tell them to wait for v2 for the more complicated stuff?



Unfortunately not, well we could but we prefer to give people what they want, which right now is new features in the version that is in production.

I have no problem with evolving requirements, its a smallish project in which we can get stuff done fast and generally its fun to work on.

I'm just not used to working concurrently on multiple versions. Just since starting the thread I've managed to make it so that I can flip between versions by setting a flag so I'm hopeful that this is the right way forward

dmlc133 - 23 Dec 2021 11:40:03 (#6 of 11)

Feature flags was the standard approach at our place to this kind of issue when we did have multiple teams (several dozen) working a single monolithic codebase, to allow teams to add and test complexity while maintaining a single live branch. It's all about micro services now as we try to get away from that architecture, but for a small team on a relatively small project I think you are on the right lines.

FrankieTeardrop - 23 Dec 2021 11:46:14 (#7 of 11)

I have no useful suggestions to offer


Make a bad Carry On style joke, then, ffs!

GyratingTrampoline - 23 Dec 2021 11:59:01 (#8 of 11)

Feature flags. That's a good name for what I'm doing.

So far its mostly just taking buttons off the ribbon and making certain things non-editable in phase 1.

If we start needing more than one of such flag or finding it's value being checked in more complicated places that's when I will start to worry

dmlc133 - 23 Dec 2021 12:28:04 (#9 of 11)

It's a fairly standard technique and there's plenty of best-practice literature out there. As you say, it should be used to avoid complexity, as soon as it becomes a source of complexity itself you may need to re-think.

Policywatcher - 23 Dec 2021 23:05:00 (#10 of 11)

Main thing is to encapsulate all the feature flags into a clean feature flags API so it's clear to find all the places each one has been used

It's not uncommon for such flags to become redundant, and it's easy for them to go zombie.

Dead, but still lurking in the landscape and killing things.

Where is for actual version separation though, that almost feels more like a case for a set of global constants and conditional compilation rather than runtime decisions.

machiavelli - 23 Dec 2021 23:19:43 (#11 of 11)

Make a bad Carry On style joke, then, ffs!

Oooh Matron - the TFT screens!

Previous
|
Next
|
Top
|
Bottom
Check Subscriptions
|
Home » IT & Computers