I've spent a few years in industry now, working with a few different companies, with an extreme ranging methodolgies (Scrum, Kanban, Spiral, Waterfall... etc.). They were all different experiences, and rewarding in their own way (either in learning what to do, or what not to do), but one thing that has been a factor to at least some degree in each of them is build system problems. It has taken on the order of days sometimes to resolve, and during these periods, development teams are often held at a stand-still. I've recently been dealing with build issues hands on recently, and I've been wondering if there's a better way.
All Java build systems I've come across have included a few main components:
- A CI tool (Hudson/Travis/Jenkins)
- An artifact repository (I've normally dealt with Artifactory, but there may be others)
- A version control server (SVN/Git).
- Some build program and code which links the aforementioned (Gradle/Maven/Ant+Ivy)
I recently have begun dealing with build issues for my current company (which has a Jenkins/Artifactory/Gradle/SVN setup). Given everything I posted in the backstory section, I've been wondering if there's another solution I could push for that either:
- Lowers build system down time.
- Requires less glue code to get it to perform basic operations (really, the majority of work each build system performs is the same as each other build system; if that portion of it was handled for the developers, I feel like that would probably minimize their ability to shoot themselves in the foot).
Does anything like this exist? I have looked on Google, but I've come up empty-handed (though, admittedly, this is outside of my knowledge-base, and I could just be looking in the wrong direction).