Alarming News: I like Morgan Freeberg. A lot.
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 an intriguing guy...[he] asks great questions and answers others with style, flair, reason and wit. On the blogroll he goes. Make him a part of your regular blogospheric reading. I certainly will.
Brutally Honest: Morgan Freeberg is brilliant.
Common Sense Junction: Misha @ Anti-Idiotarian never ceases to amaze me. He keeps finding other good blogs. I went over to A.I. this morning for my daily Misha fix and he had found this guy named Morgan Freeberg in Fair Oaks, California, that has a blog, House of Eratosthenes. Freeberg says its "The Blog That Nobody Reads" but it may now become the blog that everybody reads.
Jaded Haven: Good God, Morgan, you cover a topic from front to back with a screwy thoroughness I find mind boggling. I'm in awe of your thought proccesses, my friend, you're an exceptional talent. You start by throwing in the kitchen sink, tie in someone's syphilitic uncle, bend around a rip tide of brilliance and bring it all home in a neat, diamond dripping package of an exceptionally readable moment of damn fine wordsmithing. I love reading you.
Mein Blogovault: Make "the Blog that No One Reads" one of your daily reads.
Philmon: When Morgan meanders, stick with him - he's got a point and it'll be worth it in the end. He's not a hit-and-run snarky quip kind of guy. The pieces all fall into place like tumblers in a lock and bang! He's opened a cognative door for you.
Rightlinx: Morgan at House of Eratosthenes is one of the best writers out there. I read him nearly every day because he manages to provide an interesting perspective, even though I don't always agree.
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.