Integration builds that automatically use the latest versions of all dependencies. Should be fairly easy to implement, and will probably give a good confidence for version upgrades (that tend to hit you in the most inappropriate moments). It could even be extended to programming languages (I am still using Java 7), build tools (strange things may happen to your dependency tree when upgrading Gradle), and open-source application servers (currently using a heavy-patched version of JBoss 7).
Gitflow with long-living branches
Gitflow can be a nice door-opener when e.g. switching from Subversion to Git, but there is always the danger that you end up with multiple long-living branches and painful merges. Especially feature branches should be avoided.
Programming in a CI/CD tool
Should be avoided (not new to me, but I will keep this for reference). Always work towards a one-step build - this way, all the build logic is contained in your build script (and not hidden in some Jenkins config.xml file), so it is easy possible to execute the whole build from the command line. And of course the build scripts are versionized together with the source code - because they are part of the source code, remember?
- Flyway - How nice, my favourite database migration tool made it to the “adopt” stage…
- Gitlab - try it
- Blackbox - try it