Stories about Software


Expert Beginners Rendered Obsolete

I got an awesome tweet at the Expert Beginner twitter account the other day.  Omer had one of those “wow, I can’t believe I never thought of this myself” ideas.

Yes, please.  Up until this point, I have run this account as a solo effort.  But I certainly have no exclusive claim to some of the world’s worst wisdom delivered with some of the world’s most confidence.

So I am now accepting submissions via twitter DM.  Please send them my way, and I will curate, catalog and queue.  As my work becomes increasingly remote and reclusive, I need all the fodder I can get for the account.

Speaking of Expert Beginners

In case you followed this blog only recently, I’m talking about a phenomenon that started with this post.  You know that one job you had once?  It lasted a year and a half, but seemed like 12.  It dragged because of the senior principal architect on the project.  Courtesy of random name generator, we’ll call him Dale.

Dale eschewed popular frameworks because he once wrote this combination ORM-MVC platform back in 2004 and, in his mind, it’s still chugging along nicely.  This framework set the world record for depth of inheritance hierarchy at 124, per your last count.  Every time you wanted to add a column to some table in a CRUD app, Dale would have to come over and perform open heart surgery at your desk while you tried to read XKCD on your phone without his notice.  But should you ever go off on your own and download something like an actual ORM, Dale would go completely nuclear.

In Dale, we have a classic Expert Beginner.  You put up with him for as long as you could before moving on to greener pastures, but you’re pretty sure he’s still there, jamming his tortured framework into some already-doomed CRUD app.

Dale will tell you what’s wrong with so-called professional ORMs.

Anyway, as I decided to throw the satirical account open to public suggestions, I began to contemplate this older concept of mine against the backdrop of some newer ones.  (Can you believe this dude is 5 years old, already?)

Expert Beginners and Developer Hegemony

Specifically, I started to think about how the relatively simple profile of the Expert Beginner has aged.  In the years between his birth on my blog and the recent completion of my book, Developer Hegemony, I’ve spent a lot of time and mileage consulting.  In particular, I have done a good bit of training and management consulting following a stint as a technical executive.  This has furnished me with the office politics equivalent of language immersion.

I began to wonder about the fate of the expert beginner in the world of developer hegemony that I foresee.  I mention him some in the book, kind of in passing.  But what will actually come of him?

Read More


Preemptively Identifying Dead Seas

Today, I’m going to try to tie various strands of my life together into one lanyard of efficiency.  I haven’t done a reader question for a while, so I’ll change that today.  In this post, I’ll offer a terminology nod to dead seas, a now-defunct term that became one of my favorites.  The best context I can now offer lies here, in a post of mine, summarizing it.

A few months back, I made a post on NDepend called, “What to do When Your Colleague Creates Spaghetti Code.”  In this post, I described a caricature that I randomly named Bill, who you might recognize as sort of a quintessential expert beginner.  I subsequently received a reader question about this subject.

How can I tell if the company interviewing me has a “Bill?” (i.e. “How can I preemptively identify expert beginners?”)

Well, I’ll take a crack at that.

Expert Beginner Primordial Soup

I think that a meaningful examination of this question requires us to look at the conditions that give rise to such archetypes.  In the original series/book, I cover part of it.  The organization must draw sort of a neat little box around the techie group and then put an advanced beginner in charge.  From there, the concoction needs to simmer in a nicely insular environment, in which the budding expert beginner receives no real negative feedback, second guessing, or industry exposure.

But this assessment focuses entirely on the software development organization.  An ensconced expert beginner reigning over some miserable, backward fiefdom requires “the business” as an accomplice.  Simply put, it requires the operational laziness to allow your business to be ruled by an unaccountable “expert” operating with utter opacity.

Expert Beginner Hut

Imagine you started a pizza shop and hired a pizza chef to run the kitchen.  Then imagine that you completely delegated the cooking to the chef, as you should.  Life treats all of you well for a while and you develop some business.

But now complaints from customers start to come in about the taste and presentation of the pizza.  “My pizza was incredibly salty and all of the pepperoni was isolated to three slices!”  When you bring this problem to the chef, he tells you that such is life when it comes to making pizza—and, also, get out of the kitchen.  You don’t taste the pizzas coming out or look at them or launch any sort of investigation when his pizza chef assistants serially quit, muttering about his incompetence.  You just count the inbound trickles of revenue and assume that’s as good as it gets.

Read More


Expert Beginner Store Kickstarter (And Giveaway!)

Check it out: the Expert Beginner has a kickstarter page!  But before you go, if you’re interested in details and some free swag, read on.

The Expert Beginner is Getting a Store…Maybe

People seem to enjoy the Expert Beginner—well, the satire anyway.  I imagine they don’t enjoy the real life version, walking around and lecturing you about the proper use of their tortured frameworks.  Instead, we’re talking about this guy:

My wife and I (though, mainly her, and thanks to her for all of the hard work on this) have decided to see if people would be interested in adorning themselves or their offices (okay, who are we kidding, cubicles) with themed merchandise.

The goal of the Kickstarter campaign is to fund the creation and seeding of an online store that will sell this merchandise. The things we’re planning to stock the store with so far are sticker, mugs, and—best of all– extremely comfortable shirts.  Seriously, I actually wear mine on weekend flights, which means it’s pretty much the most comfortable thing I own.


If we’re funded, we can supply this merchandise indefinitely! If not, you might be on your own for making Expert Beginner shirts. (We promise not to sue you if we fall short and you want to pick up the torch.)

The campaign will end January 5th, but if you’d like to contribute, please don’t wait until then. Apparently, projects that gain a lot of interest in the beginning are more likely to be promoted and rank higher in searches on Kickstarter. We ask that you visit the page and donate now to jumpstart the campaign. If you’re one of the first to donate, you have the chance at some early bird rewards, including mugs and shirts given for lower donation amounts.

Again, here’s the link to visit the Kickstarter Campaign Now

There’s also a reward for a $150 donation where you can get not only all the merchandise offered but also an hour on the phone with me to talk about whatever you like. I get a lot of reader questions for the blog, and in general, about a variety of subjects.  With those, you’re sort of at the mercy of my natural posting cadence and attention span.  With this donation option, you have my undivided attention for an hour, which is even longer than the time I donate at startup office hours.

If you can’t donate any money, you can still help! Please consider sharing this blog post with your social networks by using the usual buttons at the end of the post.   And you can enter our giveaway by sharing with your network via Rafflecopter.

Read More


The Humanized Expert Beginner

I was going to write a post about my recent fascination with Selenium tonight, but with the current bandwidth I’m getting from my hotel wifi connection, I won’t have successfully installed Firefox until Thursday. Undaunted, I decided to go through my drafts folder and move a card out of that sizeable backlog. The one that I settled on came as a response to Damien’s comment in my first Expert Beginner post. Periodically, people happen across that post and continue to comment, and I continue to find the subject relatively interesting since this theme is one that doesn’t seem to be in danger of going away. The portion of his comment about which I thought I’d muse is as follows:

You’d have to be mind-numbingly ignorant to fall into Expert Beginnerism. All you have to do to illuminate your ignorance is read a blog or book by highly experienced software engineers. If you’re an Expert Beginner in software, you’re likely an Expert Beginner in every area of your life.

I’ve been thinking about this a little bit here and there over the last couple of months. The question essentially boils down to one of whether Expert Beginnerism is a specific, learned approach to one set of problems or whether it’s a general approach or even a personality trait (defect?). Is it possible to be woefully mistaken about your own competence in one area of life while otherwise being a relatively normal, well-adjusted and pleasant individual in other arenas? Operating hypothesis: yes, it is. Tentative evidence: karaoke. I’m serious.


Make your way down to a local place that does karaoke nights and suffer through the whole evening. I can almost promise you that you’ll find a nice, social, well-adjusted person that, to everyone’s listening displeasure, thinks they’re really good at singing. Most likely, they’ve never thought of making a go at it professionally and so no one has ever told them the hard but kind truth about their abilities. People just wince inwardly and say, “oh, sure, that’s GREAT!” And so the would-be Aretha Franklin or Frank Sinatra, through various merciful white lies in the face of unimportance, comes to believe wrongly that she or he is a good singer in spite of easily available evidence to the contrary.

That’s all well and good, however, because no one is paying these room-clearers to sing or, worse still, to teach others to sing. Is it possible to be a professional Expert Beginner without being insufferable across the board? At one time, I created a taxonomy of Expert Beginners (at least those with whom I’ve interacted) and group them according to their tolerance for cognitive dissonance. A poor-man’s interpretation of that might be how red they’d turn when asked, “Sir, have you no shame?”

In the parlance of that taxonomy, we have Master Beginner, Company Man, and Xenophobe. To recap, Master Beginners are consummate blowhards that believe themselves incapable of being wrong (no shame at all). Company Men have a basic, queasily pragmatic operating philosophy of circular reasoning: “if I have it, then I must have earned it by merit.” (They’d bristle some at suggestions to the contrary, turning slightly red). Xenophobes are those who have hissy fits when faced with the prospect that there might be some kind of gap in their knowledge (they turn beet red). I’d argue that the redder you turn, the less holistically defective you are when it comes to realistic self assessment.

We can pretty much set aside Master Beginners; these are seriously demented individuals that will be equally insufferable in all theaters. Company men are probably not far behind since they let their narrative be written as they go, with each instance of them not being taken down a peg bolstering their self confidence, however unjustifiably. So, even if they start out reasonably, after a bunch of years of “moving up by merit” they probably assume that they’re simply becoming awesome at everything. That leaves us with poor Xenophobe, who leads a high stress life, constantly on the brink of being exposed.

And this, I would argue, is the counter-example. Xenophobe is what happens if, while our karaoke singer is ‘performing’ on stage, someone comes along and says, “hey, I’m a musical talent agent and, while I’ve never heard anyone sing before, I’m sure that you’re just what we need, so here’s a few million dollars and some fame!” The stakes are high, the pot is sweet, and the dream is tantalizing, so our singer inks the contract, silences the “this is too good to be true” voice and engages in an odd dance that can only be described as, “make it then fake it.”

If we go away from the singer metaphor and into the more realistic scenario of “amateur techie at small, but growing, company,” you (might) start out with a decent, if naive, person that takes the road less advised when faced with “too good to be true.” And once that decision is made, it gets harder and harder with each passing day to go back, until you’re haggard somewhere, in an office, shrieking at junior developers that you don’t want to hear another word about this functional programming crap!

I’d imagine that this type of Expert Beginner, having arrived at the path described here, could actually be pretty reasonable in other areas of life. Sure, he must have some capacity for self-delusion, but can any of us honestly say that we don’t — that we haven’t indulged in basking in blatant flattery from time to time? I’m not saying that we could all make a lifetime of it, but what I am saying is that I think there’s a narrow cadre of expert beginners out there that might be decent people and even relatively modest in other areas of life.


Wasted Talent: The Tragedy of the Expert Beginner

Back in September, I announced the Expert Beginner e-book. In that same post, I promised to publish the conclusion to the series around year-end, so I’m now going to make good on that promise. If you like these posts, you should definitely give the e-book a look, though. It’s more than just the posts strung together — it shuffles the order, changes the content a touch, and smooths them into one continuous story.

But, without further ado, the conclusion to the series:

The real, deeper sadness of the Expert Beginner’s story lurks beneath the surface. The sinking of the Titanic is sharply sad because hubris and carelessness led to a loss of life, but the sinking is also sad in a deeper, more dull and aching way because human nature will cause that same sort of tragedy over and over again. The sharp sadness in the Expert Beginner saga is that careers stagnate, culminating in miserable life events like dead-end jobs or terminations. The dull ache is endlessly mounting deficit between potential and reality, aggregated over organizations, communities and even nations. We live in a world of “ehhh, that’s probably good enough,” or, perhaps more precisely, “if it ain’t broke, don’t fix it.”

There is no shortage of literature on the subject of “work-life balance,” nor of people seeking to split the difference between the stereotypical, ruthless executive with no time for family and the “aim low,” committed family type that pushes a mop instead of following his dream, making it so that his children can follow theirs. The juxtaposition of these archetypes is the stuff that awful romantic dramas starring Katherine Heigl or Jennifer Lopez are made of. But that isn’t what I’m talking about here. One can intellectually stagnate just as easily working eighty-hour weeks or intellectually flourish working twenty-five-hour ones.

I’m talking about the very fabric of Expert Beginnerism as I defined it earlier: a voluntary cessation of meaningful improvement. Call it coasting or plateauing if you like, but it’s the idea that the Expert Beginner opts out of improvement and into permanent resting on one’s (often questionable) laurels. And it’s ubiquitous in our society, in large part because it’s encouraged in subtle ways. To understand what I mean, consider institutions like fraternities and sororities, institutions granting tenure, multi-level marketing outfits, and often corporate politics with a bias toward rewarding loyalty. Besides some form of “newbie hazing,” what do these institutions have in common? Well, the idea that you put in some furious and serious effort up front (pay your dues) to reap the benefits later.

This isn’t such a crazy notion. In fact, it looks a lot like investment and saving the best for last. “Work hard now and relax later” sounds an awful lot like “save a dollar today and have two tomorrow,” or “eat all of your carrots and you can enjoy dessert.” For fear of getting too philosophical and prying into religion, this gets to the heart of the notion of Heaven and the Protestant Work Ethic: work hard and sacrifice in the here and now, and reap the benefits in the afterlife. If we aren’t wired for suffering now to earn pleasure later, we certainly embrace and inculcate it as a practice, culturally. Who is more a symbol of decadence than the procrastinator–the grasshopper who enjoys the pleasures of the here and now without preparing for the coming winter? Even as I’m citing this example, you probably summon some involuntary loathing for the grasshopper for his lack of vision and sobriety about possible dangers lurking ahead.

A lot of corporate culture creates a manufactured, distorted version of this with the so-called “corporate ladder.” Line employees get in at 8:30, leave at 5:00, dress in business-casual garb, and usually work pretty hard or else. Managers stroll in at 8:45 and sometimes cut out a little early for this reason or that. They have lunches with the corporate credit card and generally dress smartly, but if they have to rush into the office, they might be in jeans on a Thursday and that’s okay. C-level executives come and go as they please, wear what they want, and have you wear what they want. They play lots of golf.

There’s typically not a lot of illusion that those in the positions of power work harder than line employees in the sense that they’re down operating drill presses, banging out code, doing data entry, crunching numbers, etc. Instead, these types are generally believed to be the ones responsible for making the horrible decisions that no one else would want to make and never being able to sleep because they are responsible for the business 24/7. In reality, they probably whack line employees without a whole lot of worry and don’t really answer that call as often as you think. Life gets sweeter as you make your way up, and not just because you make more money or get to boss people around. The C-level executives…they put in their time working sixty-hour weeks and doing grunt work specifically to get the sweet life. They earned it through hard work and sacrifice. This is the defining narrative of corporate culture.

But there’s a bit of a catch here. When we culturally like the sound of a narrative, we tend to manufacture it even when it might not be totally realistic. For example, do we promote a programmer who pours sixty hours per week into his job for five years to manager because he would be good at managing people or because we like the “work hard, get rewarded” story? Chicken or egg? Do we reward hard work now because it creates value, or do we manufacture value by rewarding it? I’d say, in a lot of cases, it’s fairly ingrained in our culture to be the latter.

In this day and age, it’s easy to claim that my take here is paranoid. After all, the days of fat pensions and massive union graft have fallen by the wayside, and we’re in some market, meritocratic renaissance, right? Well, no, I’d argue. It’s just that the game has gotten more distributed and more subtle. You’ll bounce around between organizations, creating the illusion of general market merit, but in reality, there is a form of subconscious collusion. The main determining factor in your next role is your last role. Your next salary will probably be five to ten percent more than your last one. You’re on the dues-paying train, even as you bounce around and receive nominally different corporate valuations. Barring aberration, you’re working your way, year in and year out, toward an easier job with nicer perks.

But what does all of this have to do with the Expert Beginner? After all, Expert Beginners aren’t CTOs or even line managers. They’re, in a sense, just longer-tenured grunts that get to decide what source control or programming language to use. Well, Expert Beginners have the same approach, but they aim lower in the org chart and have a higher capacity for self-delusion. In a real sense, management and executive types are making an investment of hard work for future Easy Street, whereas Expert Beginners are making a more depressing and less grounded investment in initial learning and growth for future stagnation. They have a spasm of marginal competence early in their careers and coast on the basis of this indefinitely, with the reward of not having to think or learn and having people defer to them exclusively because of corporate politics. As far as rewards go, this is pretty Hotel California. They’ve put in their time, paid their dues, and now they get to reap only the meager rewards of intellectual indolence and ego-fanning.

In terms of money and notoriety, there isn’t much to speak of either. The reward they receive isn’t a Nobel Prize or a world championship in something. It’s not even a luxury yacht or a star on the Walk of Fame. We have to keep getting more modest. It’s not a six bedroom house with a pool and a Lamborghini. It’s probably just a run-of-the-mill upper middle class life with one nice vacation per year and the prospect of retiring and taking that trip they’ve always wanted, a visit to Rome and Paris. They’ve sold their life’s work, their historical legacy, and their very existence for a Cadillac, a nice set of woods and irons, a tasteful ranch-style house somewhere warm, and trans-Atlantic flight or two in retirement. And that–that willingness to have a low ceiling and that short-changing of one’s own potential–is the tragedy of the Expert Beginner.

Expert Beginners are not dumb people, particularly given that they tend to be knowledge workers. They are people who started out with a good bit of potential–sometimes a lot of it. They’re the bowlers who start at 100 and find themselves averaging 150 in a matter of weeks. The future looks pretty bright for them right up until they decide not to bother going any further. It’s as if Michael Jordan had decided that playing some pretty good basketball in high school was better than what most people did, or if Mozart had said, “I just wrote my first symphony, which is more symphonies than most people write, so I’ll call it a career.” Of course, most Expert Beginners don’t have such prodigious talent, but we’ll never hear about the accomplishment of the rare one that does. And we’ll never hear about the more modest potential accomplishments of the rest.

At the beginning of the saga of the Expert Beginner, I detailed how an Expert Beginner can sabotage a group and condemn it to a state of indefinite mediocrity. But writ large across a culture of “good enough,” the Tragedy of the Expert Beginner stifles accomplishments and produces dull tedium interrupted only by midlife crises. En masse in our society, they’ll instead be taking it easy and counting themselves lucky that their days of proving themselves are long past. And a shrinking tide lowers all boats.