I'm aware that this question has already been asked more than once but none of the responses I found seem to be a good fit for our particular (?) situation as far as I can tell:
- we are on SAP_BASIS 740/SP11 with EHP 7 (but haven't activated (m)any of them)
- (almost) all of the custom-code for SAPMV45A is in one big enhancement
- special logic has been added over the years for various org-units, countries or other groupings of which we have a lot (>50)
- many changes are surrounded by an additional check to see if the code-snippet is currently active or not (done via a select on a Z-table which contains relevant entries)
- the code and comments in the enhancement totals >30,000 lines
- most of the code is kept right within the enhancement includes (MV45FZ*) with some special cases also having their own country-specific include (e.g.
- the enhancement needs to be changed often as new requirements come in, be it for longer term projects or quick fixes due to other requests (we sometimes have 2 to 3 changes per week)
- several developers routinely work on these changes at any given time
- In order to avoid tripping over each other, we've been documenting currently happening and upcoming changes in a collaborative workspace, so that the developers involved with this enhancement are aware of what's happening and don't overtake each others' changes.
As more concurrently running projects are currently being planned, we are trying to find a way to make parallel development possible, ideally without losing the one advantage we have with just having "everything" in one enhancement: comparing versions for just one entity via SE84 and version compare.
While searching here and elsewhere, I saw suggestions for both using dedicated Z-includes as well as BADI-implementations, but I'm not really sure what's the best approach, esp. to ease this in as a major rework of what we already have in the enhancement is not planned.
What I'm especially interested in is to learn about the respective pros and cons of the different options.