4

If feature C depends on features A and B in the sense that both should be implemented, verified and correct for C to work correctly, then the canonical way is to delay development of C until the feature branches of both A and B have been merged back to develop (or master, depending on what your main development branch is) and only create the feature branch ...


4

how did they debug this stuff Same as today. You divide the code into trusted and untrusted and pick apart the untrusted until you trust it. How did others in the past do this when the tooling wasn't available? Tooling has always been available. It's just different tooling. Here's a blast from the past. Note the highlighted "single step" control. ...


4

You seem to look for modelling a business process: The cartons that enter, then the flow of a box. Return, damaged good, cancellation at different stages, transfer from a stock to another. Each operation can also change the product. If you're interested in the business analysis and optimizing business processes in close collaboration with business users, ...


3

What you are dealing with is a change in the structure of the files that are used to persist information. There are two main ways to deal with this: Perform a conversion from the old format to the new format during installation of the software version that relies on the new format. The conversion tool would be able to recognize and read files stored in the ...


3

There is only so much you can do, and it sounds like you are already doing most of it. In particular, your "copy & divert" method already goes above and beyond what most people do. I've only heard of that being used in extreme situations like spacecraft. One thing you could do is instead of doing this test online, record the inputs and outputs ...


3

Don't do a Big Bang The software that already exists has taken X developers * Y Man Years to develop to the state its already in. In which universe do you think that you can catch up to that and be equivalent/better? Strangler Pattern Release the brand new shiny implementation as part of the old mess. Have it strangle away slices of work. Have the two ...


2

You seem to assume that developing a feature requires a feature branch. In this case, the canonical branching would look like: ------------------------ \ \--A--/ \ / \--B--/ \ / \-C-/ But what happens if after the merge, adjustments are required for A and B? What if furthermore these appear to be required for C? And what ...


2

That workflow seems a good match to your company's process, although people might take issue with parts of the process itself. One thing you might do to improve your workflow is to also merge develop into your new feature branch. That way you start locally integrating with other changes on develop sooner. Also, if QA is testing for a day on every pull ...


2

Never debug. First: understanding your code is better than playing with a machine. Second: knowing that you can’t debugger your code will make you write perspicuous code in the first place. Evidence / experience: In the batch days - send the cards, get the printout. If it differs: think. In CP/M days - starting with a Basic-only machine, write an ...


2

I agree with Hans-Martin Mosner on this: nothing beats a graphical representation for workflows. Not sure how complex your workflows are and how many parameters on each state, but try having a look at the dot language. You might be able to build a graph that displays everything you need. It's not all that much of a complex language and many times I used to ...


1

The team would be the best place to go to figure out what the workflow should be, but there are a few things to consider. The idea of "done done" is very important. If a development ticket is done only after all test cases have been written (or, I'm assuming, updated), reviewed, and approved, then it's important to ensure that the tests are also ...


1

One alternative is to use git tags to store versions, as axion release plugin does. This way your version is stored together with the source code but is not part of source code itself and changing it means creating a new tag rather than a new commit.


1

There is a simple way, if you really want to do this: have the build system read the version number from a file that is not tracked by the version system (it is ignored). If you want to support third parties to clone and build the repository (e.g. it is an open source project), consider that in your decision. The ignored version number would not be in their ...


1

Under the assumption that you have a new database/data structure that works and supports all that the old one supports… What follows is the solution that comes to mind. Make an interface/façade/abstraction layer for what the software uses from the database/data structure. Then make three implementations: one uses the old one, one uses the new one, one tries ...


1

For FSMs (unless they have too many states) nothing beats a graphical representation of the states and transitions. A textual description of each state and transition is also needed, of course, but that may well be informal as the formal structure is completely described in the graph. Just had a look at the CWL page, it doesn't seem to be well suited to ...


Only top voted, non community-wiki answers of a minimum length are eligible