in

Blog By Bob

Blog by Bob

Rebuttal by bob

The author of Half Sigma recently posted a blog about why a career in computer programming sucks, as well as several follow up posts.

Everyone should have their opinion, and be free to express it, and as such, I wanted to provide a rebuttal for people who maybe wanted to slit their wrists after the long morbid read. I am going to quote, selectively, passages of text and offer my own words in response. Do I agree with some of the items he brings up? Sure. I would be surpirsed if anyone, computer programmers included, didn't dislike certain facets of their career. Even people who work in an industry doing what they would do for free as a hobby anyhow.

Why a career in computer programming sucks

<quote>
Computer programming is a job that’s heavily dependent on temporary knowledge capital. It’s temporary because the powers that be keep changing the languages and tools that programmers need to do their jobs. In nearly all other professions, knowledge capital increases as you grow older because you keep learning more about your field. But in computer programming, the old knowledge becomes completely obsolete and useless.
</quote>

While I agree much of our knowledge is fleeting and could be considered 'temporary', the knowledge that is such is meaningless weighed against the knowledge that *does* carry forward. Moving from language to language, platform to platform as time progresses, you will indeed find challenges in learning new tools, and new languages. The trade off on languages is almost a moot point though, would anyone seriously consider programming in VB 6 that they already know, superior to programming in .Net? Actually, don't answer that. I have worked with people who do indeed believe such a thing.
What knowledge travels with us? Do you suddenly forget how to write legible, well documented code? Do you forget how to properly refactor? Do you forget all of your architectual knowledge and start writing code spaghetti code in the code like you did 20 years ago?

<quote>
So what advantage does a 60-year-old .NET programmer have over a 27-year-old .NET programmer when they both have, at most, 5 years of experience doing .NET programming? Absolutely none.
</quote>

I think I already answered this, the 60 year old developer is more likely to build an architecture correcly the first time. His years of experience will allow him to see more readily when he is painting himself into a corner. And this is only talking from a pure code perspective. What about domain knowledge in the fields he has worked in? And experience implementing this knowledge in previous code bases, living through the scares of failure to write better code *because* of those failures. Programmers retain alot more knowledge than the language of the day, and this is a strong advantage to someone with more experience. Ever walk into a new job as a contractor and try to quickly work up an application, accessing a multitude of legacy datastores and systems, many not even following basics such as the normal forms? Let someone fresh out of college do that as effeciently as the 60 year old.

<quote>
Other professional fields are not like this. I remember reading the classic 1933 edition of Securities Analysis by Benjamin Graham, and as I read it I was amazed by how useful and relevant the material was even though it was more than 65 years old.
</quote>

This comment I agree with. I can't think of many 'professions' that change and morph as quickly as computer programming. But to say that you can't read anything from decades past about computer programming that is not still relevant? Edgar Codd maybe? Not much changing there. And for the things that do change, anyone would be hard pressed to deny the improvements are phenominal. And how many computer programmers do you really think would be interested in programming if it were as static as 'Security Analysis'? The main criteria I use to judge my progress every year is to look back at the previous January and realize what a hack I was. The day I stop seeing the difference is the day I will wish computers stood still. I hope that day never comes.

<quote>
Computer programming is a low prestige profession.
This relates to the prestige thing again. When a company I worked for wanted to save money on rent, guess what department they decided to move to the low rent satellite office? You guessed it, the IT department.
</quote>

This is a quote I wanted to discuss, but in a much different way. I grouped sentences from two sections together because they are closely related. I have no arguement with alot of his comments in this section. He talks about cubes instead of offices, and having to fight nail and tooth to get such cheap, simple, amazingly productive adding tools like large or second monitors. I am actually going through something similar, where I have been trying, pretty much since being hired, to get a second monitor. I have even offered to bring in my own video card and monitor.
Having agreed, I want to somewhat disagree for a moment. I don't think the developers are necessarilly the victims here. I too often see a majority of developers who really only see this as a job. They aren't providing a good screaming sign that developers provide value. Until our profession can provide value as a whole, we will be treated like this. Is it fair to the developers providing value? No, not really, but life is often not fair.

<quote>
I’m sorry about using a word that doesn’t exist in the dictionary, but foreignization best explains what’s happening in the computer programming industry.
First of all, there is the familiar outsourcing of jobs to foreign countries, mostly India. Because of this, the computer programming industry within the United States is an industry with a shrinking number of jobs, although as a worldwide phenomenon I’m sure computer programming will grow at a brisk rate. Would outsourcing of computer programming and other IT jobs be such a big trend if the industry were more prestigious? I think not.
</quote>

I have a two part response to this item as well. First, outsourcing sucks. I do not think our country as a whole should move knowledge positions outside of the country. With the extent that manufacturing has fleeted, knowledge is our power. Then again, programming is the act of manufacturing software in a way, so maybe there is some method to the maddness.
Once again, having somewhat agreed, let us address the flip side. If the rest of the country is anything like North Carolina, companies *can't* fill their positions. When I recently started looking for a job, I participated in a long process of interviewing companies until I found one that I thought was a great match for me. I said no to several along the way, with little worry that I would be left stranded. Is it always like this for our occupation? Definitely not, but if you have the passion and the skillset, and you *want* this career and aren't just punching the clock, you *will* be in demand. Period. Have you ever had to maintain a code base when the project was outsourced? I don't think our livelyhood is really being threatened.

<quote>
It is often suggested that the most natural next move “up” is into project management. But the first problem with this situation is that project management sucks too.
</quote>

While I agree that going from being a computer programmer into Project Management would suck, I have seen many people who are very good at fullfilling this role and enjoy doing so. I also don't think that this is the only path for programmers any more either. In the old days, you either became a manager or you stagnated. Now adays, in organizations that are more dependent on driving their business with technology, there is a new option opening up for seasoned developers. The new role falls under the title of Software Architect. I should clarify, this isn't necessarily new, but it is expanding to be a viable role in a much wider breadth of companies. While this could still be considered management of sorts, it is the kind of management that I, being passionate about developing would not be averse to filling.

The death of the generalist software developer

<quote>
Because the new technology is so much more complicated than the old technology, it's now impossible for one person to be an expert in all the different tools out there, and even in a single project this is often impossible. In a single project, you will often find database programmers who just do back end work in Oracle or SQL Server, middleware programmers who would do the C#.NET type programming, and then web designers who do the HTML, CSS, and JavaScript programming.
</quote>

Welcome to the maturity of our industry. Look at the housing industry. While the plumber can probably do the electrical work a new house needs, and maybe can even paint and lay the foundation, specialization allows you to have each participant in a project do *a better job faster*. I have had a thing for XHTML and CSS for awhile now, when I realized I was lacking in these skills. I can get by with them now, and even do some clever tricks when needed. But, get a true user interface/graphics artist to do the user interface for your application and suddenly their value becomes very, very apparent. Developers are not known for creating the best user interfaces, why *make* users use one made by them. And for SQL code? Hell, I don't even *want* to write SQL code. Thank god for DBAs!

<quote>
The interesting thing about .NET is that there are various language flavors to it. There's Visual Basic.NET, C#.NET and even J#.NET. This tips us off that the actual language is only a minor part of the whole development tool. Much more complicated is the huge class libarary, and understanding the idiosyncracies of how everything works.
Fancy coding expertise, like the ability to write a Quicksort, is not necessary in the modern software development environment. Knowing how to set everything up so you can call Object.Sort() is what's required.
</quote>

Once again, this goes back to providing value. If I can write the business layer for my application in the new tools in the same amount of time it used to take to write that jazzy sorting algorithm in the old tools, how am I not providing more value to the business now?

<quote>
The second trend, and the more interesting one in my opinion, is that the computer programmer's role in the organization is shrinking. The software developer who does everything--talks to users, develops the "architecture," codes it, tests it, and then deploys it, is pretty rare. In fact, it would probably seen as an example of an out of control software development process.
</quote>

Believe it or not, this is actually a trend that is reversing, and Agile has alot to do with it. In an Agile product cycle, you probably *are* architecting the application, building the tests and coding it up. And you better be talking to the users, that is the driving difference in Agile. It is all about communication. I have been doing Agile for a while now, and even with the down falls, the communication aspect is definitely worth it. The days of going of in a corner and writing up some code until you turn it over to QA could be coming to an end. If not from Agile itself, then from an upcoming methodology that will learn to leverage the things it does right, and maybe supress some of the things it does not so right. I don't say wrong simply because Agile is just that, agile. You leverage the parts that work for you and augment or replace the parts that don't. You aren't stuck with a concrete list of 'things to do'. But enough about that.

Many of his replies to commentors relate their comments to naivity, and their fresh out of collegeness(hmm, new word?), while the author is in his late 30s. Well, just to push that aside, I am 36, maybe a couple years younger, but definitely not noticably.

Now, while this was a rebuttal to many of the posters comments, I do thank him for his passion on the subject. It sent me down a path to truly reflect on what I do day in and day out. What I like and don't like about it, and what I want to get out of it, both now, and going forward. Thank you for a good read.

Does a career in computer programming suck? Not for me, no, not for me.

Published May 22 2007, 05:49 PM by Bob

Comments

 

James Jackson said:

Pleasure to see people using thier brains. Points scored on both sides of the quesion.

December 3, 2007 1:39 AM

Leave a Comment

(required)  
(optional)
(required)  
Add
Copyright © :: BlogByBob.com
Powered by Community Server (Non-Commercial Edition), by Telligent Systems