4 ms·
I think of software development on a continuum from tactical to strategic. The tactical end of the scale involves faster creation and modification of artifacts.
by JackMorgan 12y ago
I think of software development on a continuum from tactical to strategic. The tactical end of the scale involves faster creation and modification of artifacts. Strategic involves knowing what artifacts to create and why.
To be an outstanding developer, you should be skilled all along the continuum. Those who are slow tactically will only every be able to read books about strategic designs etc, which is good but will limit their skills. I'm reminded of a developer I once knew who thought he had all the answers architecturally, but was such a slow typer and didn't know how to use tools available to modify code that he'd never actually implemented any if the things he dreamed of, and who is going to trust someone with no experience? Also his ideas definitely had a "here's a big picture design, you guys figure out how to implement it" view to them, which meant they usually were not really a good idea.
As such, I think it is important to learn; fast typing (touch typing), fast editing (Vim, regex scripts, and all available refactoring tools), fast local coding (TDD, proper use of functions as an abstraction, and good naming), good module sizing (either namespaces or objects), then good module separation through services or message passing. I had to learn all of these in the last six years. I think every one was valuable. I had to learn to touch type after 22 years not being able to, but it has helped immensely in being able to fluidly get thoughts to editor.