Blog Stats
  • Posts - 298
  • Articles - 0
  • Comments - 1353
  • Trackbacks - 0

 

Assumption is the mother of all ________

Some of you movie buffs will get where the title of this post is going, so I'll refrain from filling in the blank.  :)

I got kind of jazzed up this morning when I was going through my blog feeds and I saw a post from my buddy Ray which is becoming far too common in my opinion.  I've been keeping my finger on this undercurrent of backlash against mortal developers for quite some time now, and its growth in popularity in the community is becoming quite disturbing to me.  Now let me just preface this that it isn't an attack on Ray, who I consider a friend, but I really need to address the idea he is putting out.

Is there too much money to be made in software development?  No.  Of course not.  We live in a free market where developer talent is difficult to find and the tasks required by developers are not easily filled by off the shelf or low skilled solutions.  The pay is simply a reflection of the basic supply vs demand in the market place. 

Assumption #1 that is made in the opinion is that the high compensation is at odds with the desire to learn and grow your skills.  If anything, I would assert that money is not a good indicator in IT of motivation. The concept that many developers will give away their time and skills for free to open source projects etc suggests that compensation while important, is not a primary piece of the puzzle.  When compensation gets much higher in a particular field than others, what it does is bring people into the field who may have other aptitudes, but enough aptitude to survive in our field. 

Assumption #2 is that having these non-elite developers in the field is a bad thing.  It certainly is not.  These are the people that drive companies like Microsoft to make tools that are easier for everyone to use and make common tasks more simple.  The problem with people in our community here is that being better than average skilled tends to make you a control freak, and I see a lot of backlash against simplification tools because you lose granular control.  Making software development easier lowers costs, improves reliability, and allows development talent to focus more wholly on the problem to be solved than the mundane details.  I drag and drop all the time when I'm prototyping, if I didn't have the simple tools to do these tasks, it would be much more costly to do proof of concepts and a lot of ideas would end up being rejected out of hand.

Assumption #3 is that every software project being worked on is considered core and critical to a business and deserves highly skilled developer talent thrown at it.  The reality is that all businesses are operating with limited time and resources, and must allocate those resources for the best overall gain.  Many software projects start out as "nice to haves" but aren't critical to the business.  The business throws these to the low bidder in order to try out a concept, and if it works and becomes critical to the business they want to pull focus on it.  Then they bring in the big guns who proceed to sit around and bitch about the architecture, quality of code, whatever instead of realizing that businesses and people do not deliberately attempt to create bad software, but sometimes unimportant software evolves into something more.  As a manager I've had this decision cross my desk many times, and it's not an easy one to make.  Do I take my superstar developers off the money making projects to work on a proof of concept for the marketing department or do I toss the smaller unimportant project to cheaper, lower skilled talent and see if it takes off?  Generally the best use of my resources is the latter.

Assumption #4 is that skilled people like Ray even want to do the work that the "mediocre" developers are doing.  I know coming up the chain in my career I avoided maintenance projects like the plague.  I hated doing maintenance and loved doing new architecture and development.  You couldn't have paid me enough to maintain an existing application because it was so damn boring!  I also tend to prefer business applications and logic as opposed to other types of software.  Could I work on a product like Vista?  Probably, but I don't want to, I don't have any interest in it.  Does anyone think Scott Guthrie would leave his role at Microsoft to be a maintenance coder on 15 yr old bank software?  Someone has to do it though.

Assumption #5 is that being mediocre is a choice.  People are different, we have different aptitudes, different intelligence, different social aspects.  Not everyone can be productive in every environment, not everyone learns at the same rate, and not everyone has the same max potential.  Does that mean these people have no place in the field?  These arguments usually make me think of what would happen to a company if every 3 years they went through the performance reviews and fired the bottom 80%.  Sure you'd only have the top 20% working at your company, but you'd probably be overwhelmed by the amount of work to be done.

I think the community needs to take a deep breath and realize there is value in developers of all skill levels and tasks which are best suited for them.  They also need to realize that the project you are working on may not have been, is currently, or ever will be considered key to their client's strategy, and thus simply may not be all that important to get perfect.  Lastly, let us all realize that the 80/20 rule on skilled people isn't a symptom of IT, it's a symptom of the world you live in.  We can't all be valedictorian, nor should we need to be.

Print posted @ Wednesday, January 23, 2008 1:21 PM


Feedback

# re: Assumption is the mother of all ________

Gravatar

- I dont have a problem with non-elite developers as I have an aversion to typing and code filling and some people just love it, one or two in a large team is great.

- The most anoying are gen-y graduates, they know everything, experience is all outdated, java/php/pearl/ruby is the solution to everything (inclding windows services), I want to architect and design not write code.

- The group I most hate are self taught MS Access "specialists".  "Referential Integrity, oh he is just using big words to confuse you, there is no such thing."

1/23/2008 8:03 PM | Wayne

# re: Assumption is the mother of all ________

Gravatar

Great post Eric. This is something that has been on my mind recently as well. The best projects I have been on were ones where the entire team was steller *and also* meshed well as a team (had to throw that last clause in there because just having superstars isn't enough to ensure project success - speaking from experience here). But at the same time, I've also managed a very large team of developers for a variety of projects in a fortune 100 company. So there really is the notion of an idealic paradise of coding, and then there's the realistic situation on the ground. As a pragmatist, I simply can't plan around the perfect environment. I have to plan with what I have. And lowering payscales isn't going to make the situation better. If anything, it'll simply make some of the people I really depend on move onto something else. In fact, one of the reason for the shortages of tech developers we have today is the marked decline of tech-related undergrads post tech bubble. In that case, the money really did dry up and the only difference it made was to dry up the pool of available developers for the future.

But as you say, that absolutely doesn't mean that mediocre developers - or rather, developers with mediocre skills - are bad. They are a vital part of the workforce, and instead of lashing out, we should be helping to develop their skills. One of the things that really has me grinding my teeth is when I hear "Oh, methodology X, or technique Y, or technology Z isn't the problem. It's all the people who don't grok it that are the problem." If you can't create technology, approaches, or methodologies that can readily be used by over 70% of the market, then you've failed, rather than the other way around.

1/24/2008 1:38 PM | Rob

# re: Assumption is the mother of all ________

Gravatar I agree. Certainly there's a minimum skill/raw horsepower level that we must demand, which itself varies a bit depending on the project, but I've come to appreciate the pluses and minuses of virtually every team member I've ever worked with, regardless of skill level. In fact, I would say that hands down I'd rather work with a pleasant junior than an obnoxious senior any day of the week. 6/23/2008 1:13 PM | Edward Buatois

Post a comment





 

Please add 3 and 1 and type the answer here:

 

 

Copyright © Eric Wise