Be nice to your DevOps team by not using Maven or kitchen sink frameworks.
Maven tries to be the kitchen sink in a lot of ways - rigid requirements to use plugins instead of scripts, trying to wrap your scm, and even act as a docker wrapper... this is insanely frustrating and an anti-patter for the rest of the software space. I would rather find a new job than work at a company that keeps pumping out maven and jhipster apps. It doesn't play nice with CI, it uses an insanely ugly configuration (xml) and most java developers don't even really know what they are doing when they are using it.
Making a micro-service api? You don't need jhipster or maven or even java - there are so many other better alternatives. Need something simple? flask. Need something performant? go. And there are so many others in between that won't give you a NullPointerException, require you to download the entire internet just to serve some serialized json, or make your devops team hate you.
Interested in hearing rebuttals and other peoples alts and overall preferences.
Not a rebuttal here, just a personal anecdote about my company’s hellish build system. We use 3 (THREE!) build systems, in order: ant, maven, and gradle. Building pipelines for our product is... a challenge, to say the least.
( ᵒ̴̶̷̥́ _ᵒ̴̶̷̣̥̀ )... I... I'm so so sorry. Finance firm? They seem to be the ones most behind.
Nope. Won’t name the company, but we make web commerce products, and are a subsidiary of a certain Fortune 500 ERP company
Ah, also not surprising. At least Maven recently added a CI friendly pattern: https://maven.apache.org/maven-ci-friendly.html . Haven't used it yet, but it can't be worse than the hacky shit we're currently doing.
Generally devops horror stories don't start as horror stories - they start often small and simple.
You have a small Flask app as your MVP that works just well enough to get some investment and a few customers. The code was a bit rushed and funky, there are no tests, but now you have momentum and real world requirements you don't have time to rewrite or refactor, just paper over the cracks. As you scale up - in terms of team size, code complexity and number of users - you do "just enough" to put out the last fire, and there isn't the time or expertise to step back and do things more efficiently. Fast forward a few years and you have a monster on your hands.