JustaProgrammer Revisited

JustaProgrammer is an early C2 wiki page. Its an interesting mix of fear (I don’t want to be called ‘just a programmer’), bravado (I wear the ‘just a programmer’ badge with pride), straight-back-atcha condescension (I don’t need a manager to deliver good software, what can a manager do without me?), aspiration (I prefer Software Engineer to ‘just a programmer’) and even Feldman/Law style snobbery (“In my mind a coder is the guy who does just the implementation, while a programmer takes on the whole job”). In short its a distillation of many of the fears of techies about how they can excel at what they have a talent for without getting stuck at the bottom of the corporate ladder, or having to ‘sell out’ and become a, whisper it, manager.

I see something similar in the way we adopt terminology and concepts from other disciplines in the hopes it will convey some of their respectability/maturity/excitement on our immature discipline. We don’t design systems, we architect them, we don’t do programming exercises, we have coding kata (conducted in a programming dojo), we’re not coders we’re engineers. When I wrote about the problem with the use of Shu-Ha-Ri to teach Agile disciplines, the author of this post said

“let people compare their lives and their jobs to whatever they want. If it inspires and motivates them, makes them feel good about their lives and their work – and makes them feel like warriors, achievers, believers, fighters, winners”

Fair point, why shouldn’t people borrow from what inspires them if it makes them feel good about what they do?

On the other hand, why isn’t being JustAProgrammer inspiring in itself? As a programmer, working with one relatively simple tool (a computer), connected to a much less simple tool (the Internet), I can almost literally conjure something business-valueable out of nothing. I can help businesses save money and I can help them make more money. Hell, if I have the right idea, I can even create a brand new business myself. All with nothing more than a bit of thinking and a bit of time (and maybe a bit of cash to pay for the tools, although even that’s becoming a vanishingly small factor). What’s more, people like me who are wired slightly differently can use the same tools to create art, entertainment, education or combinations of all of these.

With nothing more than a bit of thinking and a bit of time.

Wow.

Compared to that, a sweaty room full of people performing punches and kicks and counting up to ten in Japanese looks a bit, well, mundane and people who draw technical specs of houses for other people to go and build look a bit, well, limited. And engineers? I am an engineer by training at least and all I can say is I’m glad i don’t have to deal with all that nasty, messy, inflexible, intransigent physical stuff like these guys did.

I often reference Kent Beck’s Software is Software talk from OT99. Perhaps its time for an update that talks about not just the software and the way we build it but the people who do the building and what’s unique about them: JustaProgrammer Revisited?

Advertisements

12 thoughts on “JustaProgrammer Revisited

  1. Pingback: Spa 2010 hansds on and sit-back-and-relax « me.andering – Willem van den Ende

  2. Dave Woodward

    From this perspective, a programmer creates culture and society with their tools. Engineers create a _mere_ bridge, or architects a _mere_ building. But using only their tools and time, a programmer creates entire businesses, industries, art and new *kinds* of art. Entirely new ways of looking at, thinking about, and interacting with the world. Now we can google it, or tweet it, whereas we still only _use_ a bridge, just like we did 100 and 1000 years ago.

    It really is… astounding when looked at through that lens.

    Reply
  3. Matt

    Interesting take on the topic. Lately I have grown weary of all the well meaning people arguing about whether we are a profession, a craft or some other designation besides “occupation”.

    My respect for my doctor or lawyer doesn’t come from what they are called (or what they call themselves) but rather from what they can do for me.

    At our company we are allowed to pick any title we want. One guy insisted on being called a “senior software engineer”… he isn’t with us any more. My title is “Subservient Underling”. Probably won’t look good on my resume but I get to come to work every day and have considerable say in what technologies we use and how our software is developed. You can have your title… I will keep my job thank you! 🙂

    Reply
  4. gerry lowry

    To the best of my recollection, although I can not recall the source, I recall reading something which was by Brian Kernighan (of K&R fame).

    I was very impressed that the opening sentence was “I am a programmer”. Ever since then I’ve respected the simple title “programmer”. We struggle to be called consultant, software architect, et cetera.

    The simple title “programmer” for those who have earned it is honourable indeed.

    Reply
  5. Tim in Colorado

    I think that the “Just a programmer” concept comes from the fact that programmers are paid so terribly compared to other professions. And I think THAT’s the real problem.

    I just had a conversation with a friend and found out her husband is making, as VP of Sales, probably twice what I’m making as a very senior software engineer/architect.

    Twenty years of experience and extreme knowledge of the subject matter, and yet people who manage or, worse, just sell products that I make can be trivially making four times as much money as I do. Can you show me any metric that a particular manager is doing their job so well they deserve four times the salary of one of their top engineers who is actually creating the product? I can do the work of ten entry level programmers, and yet am paid only about twice, with twenty years’ experience.

    The fact that people who sell or organize, rather than the people who create, make the lion’s share of the profits is what’s maddening. Selling and organizing are both real skills, but frankly people are rewarded more than engineers for doing either regardless of whether they’re doing them WELL. Whereas engineers who suck tend to quickly dig themselves into a hole.

    I have used the phrase “Just a Programmer,” but I use it with irony: It’s the programmer who really makes the product, and yet is (typically) barely rewarded for it compared to the profits dished out to management.

    Honestly it’s simple greed and cronyism that causes the current situation: It’s the CEO and board who determine the pay structure of a typical company, and the closer you are in the org chart to the CEO, the more likely it is you’ll be vastly overpaid for the actual time and skill you’re employing. A CEO has to bribe everyone nearby with good salaries to justify his or her own salary, after all.

    Reply
  6. Matt

    Tim,

    Having come to software from the blue collar world, I assure you what you are saying sounds like sour grapes. The people who actually “do the work” always complain that the boss couldn’t do a real job.

    If you wanted to make more money, you should have become a VP of sales. Since I have a degree in business I can tell you that becoming the VP of sales is a non-trivial matter and that “just selling stuff” is a less than flattering description of what those folks actually do. It would be like describing programming as “those guys who just sit at a computer all day typing stuff.”

    As for the systemic inequality in pay between the C-suite and the rest of the world… that’s a whole different discussion that isn’t really related to any specific field.

    I don’t mean this in an offensive way but most people in all walks of life value what they do more than others. Ask the guy who makes your Big Mac if he is getting paid enough and he will likely grumble about the lazy manager who never does anything.

    In all honesty, having a prettier title isn’t going to get you more money. If you don’t like what people pay you, it’s time to convince them (or someone else) that you are worth more.

    Reply
  7. Tim in Colorado

    Since you’re claiming “sour grapes” is my motivation, I’m going to guess you’re a manager? What is your rationalization for making more money than the people who spent years learning to write software? Do you honestly spend your days solving difficult problems that your engineers couldn’t handle in your position?

    I’m sorry, but I know I can do the job of a manager, because I’ve done it. I’ve just got a bad habit of being TOO good of a programmer for anyone to want to promote out of a pure programming role.

    I’m specifically not discounting that there IS work inherent in management, but I’m saying there’s far more specialized knowledge required for being a great programmer than in being a great manager. The fact is that a bad manager (who is good at office politics) tends to get paid as well as a good one, and that’s why I’m annoyed.

    As to VP of sales–I’ve run my own company, and worn many hats, including that one. I’m not saying there’s no skill involved there either, but there’s simply not nearly as much as in doing serious coding. A bit of common sense and a skill at negotiation can carry you a long way.

    As it turns out I’m in the process of resigning my current job to go back to contracting on my own–not just on the pay issue, but that’s certainly part of it. If I were making $250k+ a year, it would be a harder decision.

    I have considered going down the business degree path, to “prove” to employers I have the right skills, but instead I’m just going to run my own gig again, and the proof will be in the pudding.

    What you have completely failed to justify is the inequality in compensation for C-suite and high level managers–and that’s a big part of my main point. Why should the top level folks enjoy $1M+ salaries, and the managers get $250k-$750k, when there is absolutely no objective measure (and painfully little subjective evidence) that these folks are actually contributing 2x-20x the value of the engineers who are building the product?

    Yes, you’re right that it’s not specifically restricted to programming, and I admit I’m more immediately concerned with the field I’m in than the fate of a person flipping Big Macs. Any time you have a 300x pay multiplier from the people on the ground to the person on top, something is Very Wrong, though.

    I do believe that software engineers are particularly abused due to the simple reason that most are not business savvy. And the fact that MOST are not business savvy decimates the pay scale for the rest of us.

    Think about it this way: If someone at an entry-level position quits a company, it might take a new person a week or two (at most) to get up to speed–and it’s easy to find that replacement. If a high level software engineer (a real specialist) quits, it can take four to six months or longer to find a suitable replacement (over a year and a half in one case at my company), and then it can take months to get that person fully up to speed.

    What I’m saying is that your comparison of engineers to people who flip Big Macs is completely and totally worthless. No offense intended. 😉 I know it wasn’t a direct comparison, but having the right competent engineers is totally crucial to a project’s success.

    No matter who flips the Big Mac, it will come out exactly the same way. Engineers are not “just another cog in the machine,” in that different engineers will produce (sometimes vastly) different results for you.

    And if the engineers create a great product, it can sell itself; if they produce a pile of crap, then you’d need a really good (but unethical) VP of Sales to make any money on it.

    It’s not sour grapes. It’s the new economy, where the number of “suits” needed is nowhere near what it used to be–but they’re all still around, being paid more than ever, skimming the cream of every large company’s profits.

    Reply
  8. Matt

    Tim,

    No, I am Just a Programmer. My brother-in-law told me I am one of the lucky ones… I would do what I do, even if I didn’t need the money.

    The actual ratio of CEO pay to average worker pay was around 275 as of 2007, at least according to the Economic Policy Institute. (They claim to be non-partisan but peruse their board and staff and you will see they lean left.)

    I happen to believe this number is too high and is damaging to our economy. There are a lot of theories about why in a free labor market these distortions continue. I suspect the answer lies with the misperception that these men (and women) are truly as talented as they seem. We could argue for hours (well I could anyway!) about labor, management and wage theory but as I mentioned, this is a topic not specific to our industry.

    What is specific to our industry however is the notion that somehow our highly specific knowledge makes us more valuable than our pay indicates.

    I grew up in the country so I know the difference between a moldboard, a chisel and a disc plow as well as why you would use each one. Farmers have an immense wealth of specialized knowledge that is absolutely vital to keeping America fed. Yet farmers aren’t fantastically rich and it is incredibly hard to keep a small operation afloat.

    Why aren’t they paid better for their wealth of knowledge as well as the long hours of hard physical labor? Because you and I aren’t willing to pay more for our groceries.

    We don’t get paid for our expert knowledge and ability to architect elegant code. Nor are we paid for our super sweet ninja DoJo process that creates a smooth flow into our value stream. What we get paid for is what we produce and the market determines what that is worth.

    You are right that what we produce is highly differentiated based on skill. Unfortunately the difference is nuanced and it takes a somewhat skilled person to understand. If we are to make our pay commensurate with our skill level, it is going to take correlating various skill levels with various outcomes financially. Titles, certifications and licenses aren’t going to do that for us.

    Oh, and last time I saw my doc, he was complaining about how much his drug rep was making. The Big Mac guy was just an extreme. Funny thing is.. I have no clue how good my doc is… I just write him a check even though I know that with all the schooling and all the degrees and certifications, there are still bad docs out there. He seems good so far.

    Reply
  9. pauldyson Post author

    In the agile development world especially we talk a lot about delivering business value. But a lot of programmers I know can’t recognise ‘business value’ and need someone else (the ‘business’ or the ‘customer’) explains it to them in great detail. A good CEO knows how to generate business value and knows how to inspire and lead his team of Sales Execs, Engineers and Managers to deliver that value. In fact I think good CEOs, Sales Execs and Managers are somewhat like good programmers: they use relatively simple tools to conjure amazing things like customers for the business, increased profitability, or the space in which a programming team can do their thing without interference. Ultimately, being able to create ‘business valuable’ software is only useful if there is a business that can take value from it.

    The operative word here is ‘good’. Of course there are many bad CEOs, Sales Execs and Managers taking a lot of money and delivering very little in return. There are also many bad programmers doing the same.

    So can a good programmer earn at a level commensurate with Sales Execs, Managers and even CEOs? I’d argue they can and do. I once reviewed a project for an investment bank where a team of three programmers sat on the trading floor with the traders delivering a system that helped the traders earn more money. The traders loved them because the system did what they needed and the tech team got paid at a level and in a similar manner to the traders.

    This may be relatively rare occurrence at the moment but I think times are changing. As there is less and less distinction between a business and the software in that business, the programmers that create the software have ever greater opportunities to directly contribute to business value. Financial reward is *usually* related directly to business value delivered (except in the rarified world of big corporations, but that’s a different problem) and hence the opportunities to earn better, or be sacked for failing to deliver, will increase.

    Of course one important factor in making that come about is for programmers to clearly state their case why they should be rewarded in the same way as managers, Sales Execs or whoever. To achieve that I think we need to shout about the amazing and valuable things we can do, rather than be obsessed with comparing ourselves to other professions or disciplines.

    Reply
    1. Tim in Colorado

      I think my own perspective is just too limited for my comments above to be that relevant. So Matt, I concede that you’re taking a broader perspective. The word “programmer” means so many different things to different people that I think it’s easy to start arguing about what “programmers” should be paid, when one of us might be talking about web developers who tweak interfaces, and another might be talking about star developers on complex projects–or spots in between.

      And farmers SHOULD be paid more, but that opens up an entire other tangential discussion as to why they’re not (big Ag pushing prices down and so forth).

      I’m in video games. Responding to Paul’s comment, the only way a game has value is if it’s “fun.” People have tried for years to define “fun,” but they’ve mostly failed. But you know it if you see it. 🙂

      Some developers can deliver fun, and some can’t. Developers that can deliver fun can produce games that make lots of money. Developers that can’t deliver games that flop.

      But in general we’re paid the same, unless we get such a big name that it gets printed on the box. 😉 A good designer can help, but really the programmer needs to “get” how to make it fun, or the designer is going to be useless.

      So Paul, I think you’re right that we do need to make more noise about how good we really are. I’m trying another approach: As I mentioned above, I’m planning to take a bet on myself and strike out on my own. Then I can prove myself right, or fail trying.

      Sorry about venting all over your comments page. I’m sure it’s related to the fact that I’m quitting my job over a related issue, so there are a lot of emotions tied up with it for me at the moment.

      Reply
      1. pauldyson Post author

        I guess that Games has gone through the same or similar cycles to other types of software. I made my first ever money as a programmer when I was 15 converting some Commodore 64 games code to run on the ZX Spectrum (shows how long ago I was 15!). Back then individuals or small teams could produce software that made a big difference.

        In the late 80’s and 90’s the teams became bigger and bigger. We could argue about whether those teams were effective or not but the fact that the idea of having teams of 20/50/100/500/1000 programmers became acceptable and, in some people’s minds, desirable, is indisputable. The popular processes had programmers in a very tightly-defined box on a very tightly-defined part of the value chain; they were no different (in the minds of those that wrote and employed these processes) to assembly-line workers. In fact the term “Software Factory” even got bandied about for a while.

        But things have shifted again. XP and the like recognised that small, talented, teams could deliver great stuff, the tools available have got much more powerful, and, most importantly, the landscape software exists in has changed out of all recognition, creating a huge space for relatively small, relatively simple software that delivers great value (whether you measure that value in £’s saved, £’s earned or fun enjoyed). We’re moving back to the days where individual or very small teams can produce software that makes a big difference.

        So perhaps now is a great time to become a master of your own destiny and starting a startup is one sure fire way to prove the business value of your skills and to enjoy the rewards that can bring. Good luck with it.

  10. Pingback: Paul Dyson’s Blog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s