Alarming News: I like Morgan Freeberg. A lot.
American Digest: And I like this from "The Blog That Nobody Reads", because it is -- mostly -- about me. What can I say? I'm on an ego trip today. It won't last.
Anti-Idiotarian Rottweiler: We were following a trackback and thinking "hmmm... this is a bloody excellent post!", and then we realized that it was just part III of, well, three...Damn. I wish I'd written those.
Anti-Idiotarian Rottweiler: ...I just remembered that I found a new blog a short while ago, House of Eratosthenes, that I really like. I like his common sense approach and his curiosity when it comes to why people believe what they believe rather than just what they believe.
Brutally Honest: Morgan Freeberg is brilliant.
Dr. Melissa Clouthier: Morgan Freeberg at House of Eratosthenes (pftthats a mouthful) honors big boned women in skimpy clothing. The picture there is priceless--keep scrolling down.
Exile in Portales: Via Gerard: Morgan Freeberg, a guy with a lot to say. And he speaks The Truth...and it's fascinating stuff. Worth a read, or three. Or six.
Just Muttering: Two nice pieces at House of Eratosthenes, one about a perhaps unintended effect of the Enron mess, and one on the Gore-y environ-movie.
Mein Blogovault: Make "the Blog that No One Reads" one of your daily reads.
The Virginian: I know this post will offend some people, but the author makes some good points.
Poetic Justice: Cletus! Ah gots a laiv one fer yew...
Oh my, another thing on the software engineering…this time, it’s someone else who’s been thinking about it. Something in the air?
Cards on the table, software engineers generally have a reputation for being arrogant, disagreeable, and moody. We also have a reputation for saying “no”, for debating pedantic details, and thinking we know how to do everyone’s job better than they can. In general, this reputation is deserved. That’s exactly what we do, day in, day out, as we intermix writing code with checking in on Twitter and Hacker News.
Reputations aren’t randomly given out, they are earned based on experience. What makes the reputation disturbing to me is that I know many software engineers personally, and they are generally a fun-loving, agreeable (if not opinionated), and entertaining bunch. They’re the ones you want to hang out with after work and catch up with on the weekend. So why is it that in the presence of work, a different personality shows up?
:
I have a theory. That theory is that software engineers see themselves very differently than those with whom they work. I’ve come to this conclusion after over a decade in the software industry working at companies large and small. Companies (product managers, designers, other managers) tend to look at software engineers as builders. It’s the job of the product manager to dream up what to build, the job of the designer to make it aesthetically pleasing, and the job of the engineer to build what they came up with. Basically, engineers are looked at as the short-order cooks of the industry.
:
And here’s the real crux of the problem: software engineers aren’t builders. Software engineers are creators. Building is what you do when you buy a piece of furniture from Ikea and get it home. The instructions are laid out and if you go step by step, you’ll get that comically small table you wanted. Creating is a different process, it’s birthing something without direction or instruction. It’s starting with a blank canvas and painting a masterpiece. Software engineers don’t get into coding because they want someone to tell them what to do, they get into it because they discovered they could create something useful…
:
To understand the problem, consider the job of building a house. Someone has decided they want to build a house on a specific plot of land. The house is to be two stories and have a garage. There’s even a rough sketch of the front of the house scribbled down on a napkin. That person comes to you with this information and the napkin and says, “this is enough for you to start building, right?” Are you able to start building?
Logically, you can’t start building the house at that point. You don’t know the square footage. You don’t have floor plans. You don’t know what sort of codes the city requires for new houses. There’s literally not enough information for you to even start digging up dirt. At this point, you’d tell your customer that they are crazy and need to figure out exactly what they want. Now imagine you can’t do that, because there’s a deadline that someone set and you’re responsible for meeting.
“Well,” your customer tells you, “why don’t you just start building, and I’ll get you the details as they become available. That way, we’re not wasting any time.”
You know that there’s not enough information for you to start building, and further questioning the customer won’t yield any additional information right now. Yet, you have a deadline to meet and so you really can’t afford to sit around and wait for more information. What do you do? You start making assumptions.
:
A few days later, the garage is almost done. You feel pretty happy about the quality because you went on so little information. You’re now ready to start on the house when your customer comes back with more details. The garage actually needs to fit two cars and should not be detached. Your heart sinks, since you had created something nice and now it needs to be bulldozed to make way for the “real” thing. What’s worse, you now have less time to complete the entire project, which only increases the grumpiness level.If this analogy seems crazy to you, you’ve probably never worked as a software engineer. This is our reality every single day. We try to keep projects moving by using our creative facilities only to find that we, in fact, can’t read anyone’s mind and therefore guess incorrectly as to what exactly it is that we’re building. And yet, if we don’t do that, we would sit there idle, as no one likes the waterfall process of software development.
Mmmmmm…yep. Hey, it’s just ones and zeroes, how hard can it be??
Leave a Reply
You must be logged in to post a comment.
heh.
truth.
- pdwalker | 06/20/2012 @ 18:0620+ yrs as a Software Test Engineer….my remembering seeing pretty much an identical cartoon in Datamation magazine (wow….flash from the past!) dates me…
I can relate. Like a supposedly technically-knowledgeable customer once complained, “The system is supposed to be mostly off-the-shelf packages just put together, I don’t see what’s the major problem!” This was regarding a multi-year, over-billion-dollar system with over 3,000 main requirements (to be further broken down).
Silly us!
I felt empathy for the developers trying to decipher (and of course we had to develop procedures with which to verify) requirements along the lines of: “The system shall properly process items such as…” (no indication of that was an all-inclusive list or what else was hinted at) or “Provide a response to the user in a timely manner…” (re: the Biblical statement that a day with the Lord is as a thousand years and a thousand years is as a day)
Ahhh…. no wonder so many developers burnt out and staggered on to other projects.
- pilgrim1949 | 06/21/2012 @ 08:47Now I’m confused.
I’m handed a piece of crap stool manufactured in China, that LOOK’S
like a “traditional” American piece, because it’s falling apart due to sub-standard
(IMHO) materials and manufacturing.
For the money I’m going to get paid, instead of using it in the fire to heat the workshop and make a “good” one, I finish breaking it apart, modify, and reassemble with “traditional” workmanlike practices. Now it’s above “disposable” grade, but below “heirloom” quality. I’ll call it “durable”.(apparently, unlike Win 2000) I chide the owner (OK, OK, GF/sig. other)about cheep-ass Chinese imported crap “traditionally” sold at Mall Wart, some basics of economics, etc.
With no college degree or “license”, am I a grumpy engineer, designer, mechanic, or Ikea parts assembler?
- CaptDMO | 06/22/2012 @ 18:52