A few days ago Soft Skills: The software developer's life manual reminded me that blogging is a Good Thing ™, so I cloned the old repository. First things first, let's upgrade Octopress! Since I last looked, Octopress received a major version upgrade from version 2 to 3. That's good, the post detailing the release is really promising. It didn't, on the other hand, receive a migration guide. That's less good. After looking around the interwebz and finding several articles about moving from Octopress to Jekyll, I also decided to take the leap. Here are some learnings not covered or not detailed in those articles.
In Mindset: Your Dev Environment Is Software I showed several small examples for how you can optimize parts of your development workflow, just by realizing that the stuff you're using to develop is also software. (Yes, this is trivial, but stating it explicitly leads to interesting results.)
Today I'd like to give a detailed explanation of how a biggish refactor of your workflow might look like. Case in point: SSHing to nodes by ip, by hostname, by EC2 instance id, by Chef role, as different users. Fast.
If you write software for a living (or just for fun), you're probably using a bunch of other pieces of software to help you get your job done.
At that moment, the developer was enlightened.
I'm going to rant a bit about how this realization should change your life. What realization? That the thing you are working on and the thing you are working with are of the same substance. You can, and you should, use the same tools to improve both.
Suppose you're hosting a coding dojo and want to do continuous integration; that is, you want to always show the state of the tests while editing code. Here's a pretty stable solution I came up with after a few tries.
Note that there's no "... and why you should too". This post is decidedly not doing a bunch of things:
- It's not arguing for or against going to / finishing university
- It's not calling for arguments on either side to help me make a decision (it's all done and in the past)
- It's also not a general statement about anything at all.
This post is instead the story of my very specific case. These are true for me, they may not be true for you. I share all details openly, recognizing that some of you don't agree with my decision. My goal is also not to convince you about anything; I'm explaining my thinking and feelings so you may better understand, and if needed, more easily accept my decision.
Warning: it's a really, really, really long post. It gives all the exposition needed to understand me (in this regard). I don't mind if you don't read it, but if you want to understand, then please do. These are the arguments I considered, how I weighed them, and how I came to the final conclusion.