Tools Should Remain Tools, Not Imply Intrinsic Benefit

Site Nav

There is a tendency in software to not distinguish between proficiency in certain trools and more underlying skills. While tool proficiency may provide a useful baseline in both assessing and onboarding junior developers it is of limited use over the long term. Tools can normally be learned and applied fairly quickly as long as the underlying concepts are well understood. While using a new tool with style may take slightly longer, matching practices and conventions of a team should be relatively straightforward if guided by existing examples, style guides, and the team itself. If such mechanisms are not in place then conventions should be presumably less of a concern and the worry then may be one of misuse. There are aspects of taste and smell detection that transcend technologies and while it may not be immediately clear how to make most effective or idiomatic use of a tool, an experienced designer should have a growing sense of discomfort the further they deviate from intended uses and should therefore be able to recognize and avoid or repair such missteps. In short, tools and technologies are primarily implementations of recurring concepts and patterns; familiarity with the appropriate foundational knowledge should pave the way to smooth assimilation.

An enormous conceptual concern with any emphasis on tools is that it amounts to advertising solutions which are looking for problems, effectively offering some golden hammers. While there are almost always notable efficiencies from using familiar tools and costs to introducing additional or unfamiliar tools, such decisions should be made consciously while recognizing any potential tradeoffs rather than blindly bounding forward. Thinking of tools within the context of solving particular problems preserves an appropriate relationship where they serve a supporting role to the more fundamental goal of leveraging some combination of existing and contextually novel tools and technologies to craft a suitable solution.

A more ominous reason not to place much value on tools expertise is that it reduces the role of a programmer to that of a translater. Implementing specified functionality using a given tool can be reduced to little more than being a specialist code monkey that is ripe to be replaced with oursourcing or automation: the latter of which becomes a growing threat as AI solutions become more capable of generating code. While more powerful frameworks and libraries can absorb much of the boilerplate there currently remains a need to reify often loosely defined business needs in terms of precise coding but the existing threat of outsourcing and the looming threat of more ubiquitous AI can fill that gap. This will rapidly commoditize a sizeable chunk of work on which some developers currently spend their time. While there should be a significant amount of additional skill surrounding the application of tools, any blurring of the line between those skills and the ability to use tools will dillute offered value as tools become more inherently powerful or the overhead required to extract utility from those tools otherwise decreases.

Clearly identifying and cultivating the skills that underlie the effective use of tools and therefore transcend the rapidly changing technology landscape is crucial to understanding the value and shape of pursued and filled roles.

TODO Relate this to the old mainframe roles if relevant

Author: mwhipple

Created: 2020-10-27 Tue 19:36