There are many reasons for following standards, but I wanted to highlight one in particular – the amount of money spent on fixing shit that could’ve been avoided.
Here is one scenario I’ve wasted a ton of time on – over and over again:
One of the standards I utilize at one of my workplaces is the naming convention of TFS database builds. The current naming system will quickly tell you what project, the type of project, what region it’s going to deploy to, and what branch is going to deploy from. For example, if I had a TFS build named HelloWorld_DB_Test3Env_Dev_BD; this tells me that this build is for the Hello World project, which is a database project, going to be deployed to the Test3 environment, from the Dev branch. Say you need to deploy from a different branch, you create a new build that specifically says it’s going to be deployed from THIS branch. Pretty simple, right?
Now that I want to deploy my code that I merged to that Dev branch, I just run the build, and ta-da! My code is deployed, or so I thought. As night falls and the batch system starts executing code, all the jobs fail, SSIS packages have errors that it needs new metadata, the world is falling apart, the devil himself peaks out of Hell and wonders how there is so much chaos going on in the life dimension; just a complete shit-fest. Come to find out, rather than creating a new build to point to a developer’s personal branch, that developer altered the settings of the original build to point to his personal branch, so none of my code was actually deployed. No biggie, just fix the build and redeploy. Here’s where my case for following standards comes in.
Some of these deploys take more than just a few minutes, this particular one I had to deal with usually takes about 15. So let’s do some math on that. Take an average hourly pay of $40 to make things easier:
$40(0.25) X 15 minutes = $10 for each deploy
If it should fail N number of times, go ahead and add one to that to make a total deploy count, and multiply that number to the function. In this case, let’s take 7 fails and 1 successful; so 8 deploys:
8 deploys X $40(0.25) X 15 minutes = $80
I wasted $80 on trying to fix deploys and make sure all the code looks good. Oh yeah, don’t forget the other developers waiting on these fixes to go in, so go ahead and add their pay in too.
This could’ve all been resolved by following standards, creating things when needed, and not going against the grain. So next time you’re trying to take shortcuts you shouldn’t be doing, think about the amount of time and money being spent on fixing it.
Happy coding.