| The problem I had with Patrick's essay is how derogatory it is to what we do. I am a programmer because it's what I like to do. People pay me money to do it. And when I go home I read about it, talk to others about it, and I practice, practice, practice. I think about how I can write better software, reduce the amount of bugs, test better designs, and improve my productivity. I think about programming all of the time. And like Jacques, I'm not afraid to tell others that I'm a programmer. I think most people understand what that is by now. I write programs for computers. If I say "Systems Analyst," or "Solution Architect," they will probably look at me funny and ask what that means. In an interview... it will probably be passed over without a second thought. So I call myself a programmer. And I call myself a programmer with a bit of pride. It isn't an easy profession and involves far more than typing in a bunch of things that make computers do stuff. Experienced employers will have realized this before sitting some one such as myself down in an interview. They want someone with enthusiasm for the craft, the experience building many different systems, and the ability to learn. There was a time when I would have accepted any programming job. However there comes a point where talking to yet another company who just wants to replace a cog in their machine becomes a waste of your time. It is hard to be good at this job and experience and ability has a cost associated with them. So yes, I am a programmer. Thanks Jacques for writing this. |
That said, coding is what we do to achieve something. Maybe you're trying to make it easier for your support team to track tickets, or helping your client's customers save the most money.
I get that you're proud of your development skills, but at some point your software has to solve a business need, and you need to understand what the need is and how your software is solving it. All the unit tests and properly factored code won't mean anything if you don't. You'll write unnecessary features, or miss writing necessary ones.
Patrick's point as far as I understood it was that we all understand this but we're not billing ourselves that way. If I'm in an interview, or discussing my work with a non-technical associate, I emphasize my ability to understand business needs and write software to meet them. When I talk to technical folks, I emphasize that I unit- and integration-test all of my code and that I understand why DRY code is great.
On the contrary, I think it celebrated what we do. Not the technical aspects -- squeezing performance out of underpowered machines or designing remarkably simple architectures -- but the final outcomes. This app saved us millions per year. These new dashboard reports helped us earn 20% than expected this quarter.