Hi all,
This topic of Trunk (with feature flags) vs Branch development is always hot.
Either way you do it, it always requires Governance! You can have feature flags that live forever, the same way you can have branches that seem to live forever, and neither is good.
The point here is that, practically and effectively, the OutSystems platform, because the way it was implemented from the start and the way it has evolved, it only supports/allows one -- Trunk development with feature flags -- so you cannot choose, you are stuck with it. (*1)
Because now OutSystems platform is (finally?):
1/2) Truly Enterprise level in a wide landscape of big customers with big applications;
2/2) Getting a lot of attention from developers coming from more classic ways of developing with other programming languages (and so, not only developers that have only known the OutSystems way),
the OutSystems platform is feeling the pressure of "demands" such as this as "Branching". Developers are use to it, so they "demand" that OutSystems platform supports it. (*2)
And we all say that one is not better than the other, but you should be able to choose for yourself.
So, I think OutSystems as a decision to make:
1) Either says: "This (Trunk development) is the way we have always done it, and we are not going to change." -- and risks loosing a lot developers/projects/clients;
2) Or clearly states that this is an important topic and it will address it somehow in the near (?) coming future. (I see the "On our radar" tag on top, but that does not mean clearly anything).
I personally really miss "Branch development". The additional problem here is that merging in OutSystems is also not easy because the smallest elements that you can merge are entire screens/web-blocks and complete actions, so I will be very curious on how the R&D team from OutSystems will solve this, if they go through with implementing this.
(*1) - You can do a kind of branching by cloning espaces but this is tricky and not that straight forward.
(*2) - Another "demand" from classic development is "Check-in comments" (Idea)... Also miss it! Now I recur to workarounds, like filling in the description of espaces, to be able to get a small understanding on what was changed in a specific version of an espace.
--Tiago Bernardo