Our $company lacked of automation of some process and after months of wasting hours doing it manually I decided to automate that.
I had no exp with real ci/cd tools and thought our process was already crazy enough (using annoying source control tool, heavy dependency between compilation and external soft's specific versions) that we need to build our tool to manage it.
I built MVP as CLI and it worked. As time passed everybody wanted to add tons of stuff to it - like Web GUI, history, logs, managing software versions when creating binaries and even performing code analysis (because we were heavily dependent on 3rd software we needed to detect some colissions)
Overall, it saved us from doing hundreds manual, sometimes error-prone tasks per year. It allowed us to add customizations like that code analysis using compiler's API
But the other hand maybe we could just use some Jenkins or some shit and achieve similar stuff without having to invest time into it and maintain - it's combo of Visual Studio + MS Build + Team Foundation Version Control + .NET Framework, so stuff tends to make problems from time to time
I feel that despite all good things that this project brought, then we could just use existing tool and maybe achieve similar results, but I don't know for sure.
I feel like sometimes I used this project to escape boring CRUDing and used it as a learning opportunity - maybe I abused it too much?
Or maybe should I treat it as "Google's 20%"?