I was reading some of the links off Particle Tree’s article on Improving Your Coding Lifestyle and found this article on The Value of Experienced Coders.
A couple of things struck me as someone who has done this programming thing for 13 years now. One was remembering one of the best companies I ever worked for, Pervasive Software. The only reason I voluntarily left them was to go work for the holy grail of Mac programmers Apple. But in Douglas’ article he talks about there being no career path for coders.
The next time I noticed this phenomenon was when Ed, a good friend and excellent coder, was encouraged to move into a management position in order to advance his career. The company apparently had no career path for a really good developer with more than five years of experience. You simply reach a point where there is no hope of any salary increase beyond the normal cost of living adjustments, no matter how capable you are as a software developer.
Pervasive had a career paths for developers and there were two, one for people willing to go into management and one for coders who didn’t want that. And the top managers’ salary was the same as the Senior Scientist’s. These guys knew what they were doing to motivate their employees.
The second thing that struck me was his comment about how the software industry is built on inexperienced programmers. The system is set up so the people writing your code have the least amount of experience.
One consequence is that a large part of the coder workforce is recently out of college, and as Joel Spolsky describes in the wonderful foreword to Coder to Developer, they are convinced they know everything they need to know about software development. The sad fact is that they do not. They are not bad people; they just do not know what they do not know.
There is a bunch of stuff that a developer needs to know that has nothing to do with how a language works. Or how to program, but more how to ship a product. How to balance life and work. What is cute and what is effective. When to invest in new technology and when not to.
In some ways the modern movements to define good processes is making it worse. It used to be new college grads thought they knew everything about writing code, but understood they hadn’t be prepared to run projects and deliver products. Now they have their pet methodologies and are convince they know how to run the project.
Technorati Tags: programming