Realigning the Azimuth

Do tools maketh the man?

One of the things I find highly important to being a good developer is mastery of your tools and how they related to the technologies you’re working with. Whether that’s the venerable command-line, your preferred text-editor or IDE, and perhaps, even the operating system you’re running them all on, it’s incredibly important to be know your environment from back-to-front, and may even lead to you developing your own preferred shortcuts, command-line aliases, or even the discovery of custom tools and utilities (as any of my co-worker’s who regularly pair on my Windows machine would attend to).

Whilst this is all fair in practice, one of the cases where it happens to have some limitations is in organisations, which happen to take paired-programming seriously, which typically results in developers being unaware, or simply uninterested in wanting to evolve their tool knowledge beyond these stock standard defaults.

For me, being able to actually set up your preferred environment is something I happen to find important. From being able to pick an appropriate colour theming, or even the fonts your editors use, to even being able to add those aliases to your command shell (or, if you’re living in Windows land – being able to ditch cmd.exe and replace it with something like Powershell) is one of those things I couldn’t live without.

So when I do find myself working with something who doesn’t feel the need to do any of this stuff, I can’t help but wonder about their dedication to their own productivity – is it worth that much to being able to keep a stock standard environment, even if you lose productivity as a result? What about being able to refine your techniques as you happen to get more experience in the field, much like the development process, shouldn’t we aim to be able to improve how we build software as well?

Seeing people who work in this way just makes me feel like we’re losing something by environments where this conformity has been pushed, or, even worse, organically grown, as this artificial levelling in skill-sets may result in more developers who can work anywhere in their environment, but it doesn’t make things easy when they move outside it – what happens if a developer moves to a different organisation? Should they be expected to have to relearn a total environment just because it’s the standard. I think not – instead, developers should be able to pick the tools that they prefer to do the job, and get the experience they need with them.