Programming Isa Trade

Programming is a trade exactly like machining or carpentry. There are highly skilled programmers exactly like there are highly skilled machinists and there are unskilled programmers (coders) just like there are unskilled machinists (the guy who sharpens blades all day long).

Programming is not science, engineering or design. Most programmers never use ComputerScience, SoftwareEngineering or InteractionDesign in their work. Programming is a trade and the highly skilled programmers merely use good conventions, the defining characteristic of a trade, like ExtremeProgramming, DesignPatterns, and so on and so forth.

I certainly use both computer science (the theory) and software engineering in my work; as do my peers. Interaction design is left (fortunately!) to others, for the most part. While analogies between software and the building trades can be made; they often have their limitations. For one thing, the ratio of professionals (materials scientists, architects, engineers, contractors) to craftsmen (carpenters, plumbers, masons, electricians, foremen) in the building trades is much lower than in software, where the pros (computer scientists, architects, analysts, interaction designers) often outnumber those who are only craftsmen (coders, testers). In many places, none of the latter are hired; and those who do the design are also expected to do the implementation.

When programmers claim to use computer science or to practice software engineering, this is 95% of the time DisciplineEnvy and it is obvious with a casual inspection of their claims that what they are talking about has nothing to do with science or engineering.

Again, how would you know? You seem to be making judgements from the outside. While that may give you a perspective that we on the inside don't enjoy; the reverse is also true. [EditHint - that last sentence doesn't fully make sense; it isn't properly constructed. Do both halves have equal weight or what?] [Read Machiavelli's "The Prince", which directly addresses that point.]

Oh, and using engineering isn't the same thing as doing engineering. If you want to persist in the ridiculous claim that most programmers (unless your "peers" are some elite cadre) do engineering, then why don't you put some concrete examples on the table?

OK, I do engineering. I'm tasked upon to produce designs for software components and modules - by "design" I mean in the software domain; not the user domain (which is where the interaction designer would come into play). I provide my own schedules for my tasks, and are expected to stick with them. Quite a few of my designs have been given trade secret status by my employer (which means, unfortunately, that I cannot discuss them with you); I've got one patent pending (for what that's worth). My employer is a metrology-focused company with extremely demanding customers; the buggy dross that many shops produce is simply not acceptable where I work. And, since I work in embedded systems, I frequently labor under tight constraints WRT memory, CPU speed, tool availability, and such that IT programmers don't have to deal with.

In other words, what you're doing is completely different from what most programmers are doing and when you say "peers" you do mean an elite cadre. Thanks for proving my point. You have an unerring tendency to support my vaguer positions with concrete evidence and an equally annoying tendency to think you're opposing them.

I certainly use both computer science (the theory) and software engineering in my work; as do my peers. Interaction design is left (fortunately!) to others, for the most part. While analogies between software and the building trades can be made; they often have their limitations. For one thing, the ratio of professionals (materials scientists, architects, engineers, contractors) to craftsmen (carpenters, plumbers, masons, electricians, foremen) in the building trades is much lower than in software, where the pros (computer scientists, architects, analysts, interaction designers) often outnumber those who are only craftsmen (coders, testers). In many places, none of the latter are hired; and those who do the design are also expected to do the implementation.

The correct analogy for your segment of the programmer population isn't the trades in building construction but the people in aerospace. There's a disproportionate number of engineers among them. And guess what? That's not representative of most programming.

Perhaps; I have never worked in an IT shop (that wrote stovepipe software, rather than stuff that got sold) - some of those are notoriously understaffed. However, the only customers who are generally inflicted with such code are said company's employees and e-commerce customers.


EditText of this page (last edited July 31, 2010) or FindPage with title or text search