How little things kick you out of the zone

I had an internet outage this morning. This shouldn’t have been much of a problem for me as all of the code that I needed to be working on is on my local git server and all of the dependencies are local. Or so I thought. The client has a c# shim layer that builds as part of the C++ server build. They rely on NuGet to grab some components from somewhere for some reason. The project files need to be updated each time the components are changed as the project files that reference them contain explicit version numbers. As far as I can see it would be as easy to check in the components themselves each time they change rather than edit the project file to change the version and then check in the project file… If the components where checked in as part of the build tree then all of my dependencies would be local…

Since not all of my dependencies are local; this morning my builds were taking 32 seconds rather than 2 seconds. Each time I started a build I needed to wait for the NuGet step to time out. This was enough of a delay to wreck productivity. Enough to kick me out of the zone. Enough to get me thinking back to past clients with appallingly slow hardware and appallingly slow builds that meant that every build would result in enough time to do something else… Enough to go and make another coffee…

The problem with these minor delays that kick you out of the zone is that once you’re out of the zone…

So, off to see if I can hack the project file to work with local dependencies… Or simply remove the shim from the build for now; and work with the version that hasn’t changed and whos dependencies haven’t changed and that doesn’t need to be rebuilt… It’s just lucky that I didn’t need to check out the code and do a build from scratch…