Yesterday I was at ScotSoft and saw the fantastic Scott Hanselman (among many other great speakers) talk about how to approach the Cloud. One of his main points was that, even though platforms like Microsoft Azure make it very simple to spin up resources, deploy to them and scale them, you still need to understand the nuts and bolts of what is going on. He told story where knowing a little more than "water appears at the tap and disappears at the drain" is very useful when you drop something important down the plug hole! I was only back in the office one day before I realised first hand how important it is to understand this.
Here at Wallet.Services we use Visual Studio Team Services which is a cloud-based solution that does everything from source control to build servers. On Friday I was wrestling with setting up a build process to create a NuGet package from a .Net Standard project. I quickly found that support for packing .Net Standard projects seems to have been dropped from NuGet and integrated into MSBuild. While trying to work out how to get this working I was getting lots of errors and I was struggling to visualise what was happening on the build agent (the program which executes the build process).
Luckily though, I was forced (for reasons I won't go into) to use a local agent, i.e. one running on my local machine as opposed to in the cloud, so I decided to take advantage of this. I delved inside the build agent's guts and was able to see first hand the directory structure it was using and the files it was producing during the build process. This was a massive help in getting to the bottom of working out how to correctly configure the build.
I'm certain that this idea of needing to know what is going on under the hood is nothing new for developers. However, I for one definitely benefit from regular reminders of these big picture strategies which are applicable in so many situations.