At some point, it seemed that everyone who’s company got acquired was handed talking points for a spiel about Our Incredible Journey. There’s ample reason to laugh at this trope, but there’s also ample reason to dig a little deeper.
(I enjoy playing an armchair remote psychologists because it’s both easy and the patient doesn’t talk back. It’s also pretty likely to be wrong for any particular individual, so take the following with a grain of that extra coarse, seaside salt that people who’ve sold their company can afford.)
I think part of the reason that so many exiters have latched on to The Incredible Journey trope is exactly because it’s a trope, and therefore safe. It shows proper deference to the company’s new overlords, it tries to soothe the sting for employees who’s work will now likely be distorted or flushed, and, most importantly, it seeks to reaffirm the seller that They Did The Right thing.
We all want to do the right thing. So badly that even when we’re doing things that aren’t “right”, we just come up with fanciful reasons for why those wrongs shouldn’t matter or aren’t important. I think that’s what’s happening here.
The Incredible Journey also offers a convenient banner for people who want to cheer on someone selling their company. One that’s more palatable than “hey, congrats on that big check!”. If we all pretend to believe that The Next Step is this beautiful leap to unlimited resources, backing, and potential, hell, we can have a party instead of a wake. How convenient!
Yet it’s still just a refuge and a bit of a sham. Imagine how much more liberating it would be for all parties, if you just spilled the beans however they got baked. I think customers of products that got shuttered or neglected after acquisition would be more forgiving and understanding, if this journey bullshit was replaced with some honest truths instead.
Like, “I was just not sure whether this thing ultimately had legs. And it’s the best idea I’ve ever had. I’ve dreamt of buying my mom a new house since forever. So I just couldn’t stomach the risk that this dream would evaporate. I’m sorry / not sorry!”.
Or, “I started this company because I really didn’t have another idea at the time, and pursuing Flappy Bingo seemed like a hot thing to do. Now it’s big, but I still don’t care about the particulars of Flappy Bingo, so better I pack my bags and find something I really care about. Adios!”
Isn’t the whole point of cashing a fuck-you sized check that you can finally tell people how it really is? Give it a try next time and let that incredible journey take a rest.
Even before software as a service became a thing, it was pretty common to sell business applications on per-seat pricing. The bigger you are, the more you pay! At Basecamp, we rejected that model from day one, and have stuck to our guns for 13 years. Not because we don’t like money, but because we like our freedom more.
The problem with per-seat pricing is that it by definition makes your biggest customers your best customers. With money comes influence, if not outright power. And from that flows decisions about what and who to spend time on. There’s no way to be immune from such pressure once the money is flowing. The only fix is to cap the spigot.
So that’s what Jason and I decided to do from the start. We weren’t going to have clients, we were going to have customers. And lots of them. All pretty much equal in their contribution to the business. This would leave us with three key truths about the business:
First, since no one customer could pay us an outsized amount, no one customer’s demands for features or fixes or exceptions would automatically rise to the top. This left us free to make software for ourselves and on behalf of a broad base of customers, not at the behest of any single one. It’s a lot easier to do the right thing for the many when you don’t fear displeasing a few super customers could spell trouble.
Second, we wanted to build Basecamp for businesses like ourselves: Members of the Fortune 5,000,000. And not just build software for them, but really help them. To be honest, I don’t really give a shit about the Fortune 500. The corporate behemoths are much more likely to be set in stone, unable to change. With the Fortune 5,000,000 we have a real shot at making a real impact. That’s just a lot more satisfying work.
Third, we didn’t want to get sucked into the mechanics that chasing big contracts inevitably leads to. Key account managers. Sales meetings. Schmoozing. Strippers’n’steaks. The enterprise sales playbook is as well established as it is repulsive to me. But it’s also unavoidable once you open the door to the big bucks from the big shots. No thank you.
Has this outlook cost us money? I’m sure it has. Over the years, we’ve gotten countless knocks on the door from large corporations and organizations begging us for an enterprise sales track. And while flattering, we said thanks, but no thanks.
Because whether you enjoy what you do depends not just on what kind of product you’re building but who you’re selling to as well. We sell to the Fortune 5,000,000 and let others worry about the Fortune 500.
One of the most pervasive myths of startup life is that it has to be all consuming. That unless you can give your business all your thoughts and hours, you don’t deserve success. You are unworthy of the startup call.
This myth neatly identifies those fit for mission: Young, without obligations, and few if any extra-curricular interests. The perfect cannon fodder for 10:1 VC long shots.
They’re also easier to rile up with tales of milk and honey at the end of the rainbow, or the modern equivalents, “compressing your working life into a few years” and “billon-dollar waves”.
But running your life in perpetual crunch mode until the buy-out or bullshit-IPO fairy stops by your door is not surprisingly unappealing to lots of people.
The problem is that most “exciting new company” lore is intermingled with that of Startup Culture™. This means it’s hard to find your identity when it doesn’t match the latest company write-up of How Those Crazy Kids Turned VC Millions Into Billions!!!
Most people will look at that and say that’s not me. I don’t have 110% to give. I have a family, I have a mortgage, I have other interests. Where’s my place in the startup world if all I have to give is 60%? What can putting in part-time give?
The good news is much more than you think. The marginal value of the last hour put into a business idea is usually much less than the first. The world is full of ideas that can be executed with 10 to 20 hours per week, let alone 40. The number of projects that are truly impossible unless you put in 80 or 120 hours per week are vanishingly small by comparison.
This is of course nothing new. We’ve been playing this bongo drum for years. But every time I see people crumble and quit from the crunch-mode pressure cooker, I think what a shame, it didn’t have to be like that. It’s the same when I read yet another story about someone who won the startup lottery, and the stereotypical startup role model is glorified and cemented again.
It’s almost like we need another word. Startup is a great one, but I feel like it’s been forever hijacked for this narrow style, and “starting a business” just doesn’t have the sex appeal. Any suggestions?
I originally wrote this essay five years ago, but was recently reminded of its evergreen appeal, so I thought I’d repeat myself.
Harvard Business Review studied what makes 35,000 employees from the US and Britain tick and found:
The benefit of having a highly competent boss is easily the largest positive influence on a typical worker’s level of job satisfaction.
Not the pay. Not the perks. Not even coworkers. Managers competent in the work of the worker. Bam.
I hadn’t thought about it in such clear terms before, but the vague hunch is why we designed Basecamp to be managed by people who do the actual work, and are very good at it. We don’t have any managers at Basecamp who just manage. Everyone with managerial responsibilities also do the work, and then they manage on the side.
Consider this at the grand scale as well. Not just our merry band of fifty at Basecamp. Now forgive me for wheeling out the specter of Steve Jobs, but I think this finding helps explain why Apple went awry under John Scully too. Even if it was Jobs himself who recruited him. Scully knew how to sell sugar water and run organizations. He was not a competent technologist. That shit seeps in until it rots out the core.
Microsoft might well have been an evil empire under Gates, but at least there was some serious and formidable technology to underpin that empire with Gates. Once the sales sidekick took over the shop, the earnings might have gone up, but the core of competence started to rot there too.
Perhaps this too is why VCs have retreated from the earlier idea of bringing in “an adult” to run the place once the technologist founders hit a few snags on their INCREDIBLE JOURNEY to 10x returns. Keeping someone in charge who actually knows what the work is about keeps the troops happy. And happy troops are productive troops.
We all strive to do great work. It’s much harder to do that while working under someone who aren’t intimately competent in that work and what makes it great.
Interviewing for a new job is stressful as hell. It’s basically like taking an exam, except the results might well determine whether you make rent next month. So it doesn’t really matter how much the interviewer assures you that we’re just having a “friendly, no-pressure chat”.
First of all, any “chat” that determines the future livelihood of someone is never going to be “no pressure”. And pretending that it is just makes it even higher pressure! Not only does someone need to appear calm, collected, and capable, now they also have to be cool as a cat, because, hey, this is just a no pressure chat, right? Ugh.
Second of all, that’s the minor point. The major point is that you’re a fucking barbarian schmuck if you place this theater inside a public coffee shop for all the other patrons to spectate. I mean, what the fuck.
Who on earth would want to have an audience overhearing their nervous stumbles, awkward excursions, and embarrassing answers to “tell me about a time where you failed…”. Nobody, that’s who wants an audience for that. NOBODY.
So please stop doing that. Not just for the sake of the poor applicants who have to configure a friendly face in spite of their anxiety, but also for everyone else at the coffee shop who’d like to enjoy their mocha without being forced to overhear this cruel practice. Stop. It.
When people talk about monetizing, they’re usually talking about some sort of scheme. Because anything that needs to be monetized can’t just be simple. If it was simple, you wouldn’t need a word like monetize. You’d just be making money selling a service or product.
No, monetizing is that word we need to explain how Facebook makes money. They’re monetizing friendships and privacy. Twitter is monetizing clever quips and the latest freak-out over Trump (often the same thing). Snap is monetizing looking silly to your friends with branded filters.
Most of these monetizing schemes are all variations on the same theme: How to sell your attention, your eyeballs, to someone else. So what’s good for business is whatever can extract the most attention from your sockets. Talk about an abusive, adverserial dynamic.
The industry euphemism for this is “engagement”. But really, anyone who’s monetizing could not care less whether you’re actually engaged or just addicted, zoned out, or not even in the room. As long as the app is open, the video is playing, the timeline is updating. As long as the metrics meter is ticking, monetizers be monetizing.
The defense is that this is how we get these apps for free. How oxymoronic. Here’s this thing for “free”, if you give me the most valuable things you own: Your attention, your privacy, your peace of mind. The price tag may say $0, but it ain’t free.
This doesn’t mean that you’re buying nothing. There’s all sorts of wonder and delight in them silos. But is it worth it?
That’s really the crux of being monetized. It’s a sly, hazy, and indirect way of getting charged. It’s not easy to compute the balance after you’ve been deducted, but deducted you’ve been. And it’s well worth paying closer attention to just how much.
But right now that’s pretty hard. When you start spending your attention, or “engagement”, on a new app, it’s like eating a beef jerky stick from the gas station with the declaration: Full of mystery meat! You probably know it’s not going to be good for you, but it’s easier to explain away when you don’t exactly know how bad and bad in which ways it is.
I’d love to see all monetized apps come with a declaration of costs and consequences. Maybe like ads for drugs in the US are forced to walk through the side-effects. Perhaps more people would think twice if the label for Facebook read:
Everything you say and do on Facebook will be used against you by advertisers for targeting that’s most likely to catch you at your most vulnerable, needy moment. Your consumption of the echo chamber timeline will lead to a narrower field of vision of the world. We may try to tinker with your mental well-being at any time, if we determine that a depressed state increases engagement on the A/B by any margin.
Consumption of a monetized apps should always be pondered with skepticism. The whole lot of them fall into what we should label “a family of products with known mental carcinogens; further study recommended”.
It wouldn’t surprise me if twenty years from now we view the likes of Facebook with the same incredulity we do now to smoking: How could they not know it did this to their health?
For the past 13 years, I’ve been selling a simple piece of software called Basecamp. A saner, calmer way to manage projects and communicate company-wide. There’s no monetization scheme, just a good product for a fair price. That’s it.
It’s a crying shame, really. I love Medium. It’s the best writing environment on the web, and they sweat the details like nobody else. The community too is just peach. This could have been a love story for the ages.
But I don’t think we’ll grow old together, Medium and I. I suspect it’ll end quite tragic, actually. $132,000,000 is a lot of money after all, and that’s how much venture capital Medium has been dipped in. Before having a prayer or a song about how to turn into that multi-billion-dollar business it must to satisfy the required rate of return.
The clock started running three years ago when $25,000,000 of Series A growth dynamite was rigged. That means they’re about half ways until the bomb explodes, and so far the company doesn’t seem much luck finding the code that’ll disarm.
All the vanity metrics are up, but it’s clear that there’s no idea how to turn that into actual moolah model. Well, short of following the same brain-dead advertising extraction scheme that Medium was specifically founded to counter. So credit to Ev, at least that strategy seems out — for now.
And credit to the whole Medium team for building that better typewriter. Seriously. That’s hard! There were a bunch of big typewriter makers out there already, and how much can you improve that mousetrap anyway? But improve they did.
It’s just that in Silicon Valley, you can’t merely make a better typewriter and sell that at a profit. No, you have to DISRUPT. You have to REINVENT. Well, at least you need the appearance of that, while you squeeze eyeballs until they pop out enough advertising dollars to give the VCs that 10x return.
So, we are shifting our resources and attention to defining a new model for writers and creators to be rewarded, based on the value they’re creating for people. And toward building a transformational product for curious humans who want to get smarter about the world every day.
It is too soon to say exactly what this will look like.
Wut? Five years is not enough time to think about how we should make any money in a way congruent with our founding values? That just doesn’t compute. But the convoluted language and indirection does, and the ticker is spelling S. H. I. T!
This is tragic, but also expected. Medium rigged that VC bomb and is failing to disarm. And just like most other VC bombs, it too will explode and take with it the prospect of a lovely, smaller, important typewriter business.
The web, of course, will go on, if murder is indeed what she’ll write. Especially for anyone who moved to Medium but hedged their bets by keeping their own domains. A quick dump and nothing will break — except our hearts. Again.
Cheers to none of this actually happening, and Ev finding a diamond in the rubble before it’s too late. But if you’re a publisher on Medium, I’d dust off the contingency plans none the less.
It didn’t have to be this way. Ev could have RECONSIDERED. He surely had enough in the bank from previous exploits. Started slower. Not hired 150 people before there was a path to profitability, let alone sustainability. Maybe you will.
At Basecamp, we have a monthly automatic check-in called What are you reading? It’s a great way to discover new books by recommendation of what your colleagues are reading, but it’s also a great way to recap what you read over the past year.
So here are all my answers to that question on the 13 books I read in 2016. This starts with what I read in January and ends up with December.
The Halo Effect: Lovely take-down of Good to Great, Built to Last, and other These Are The Secrets To Business Success stables. It focuses mainly on critiquing the bias that lead to the great companies being models on leadership, customer-focus, etc by pointing out that high-flying companies are always seen in a positive light on those attributes, but when they hit trouble, those same companies with the same approaches are cast in a negative light. This is as much media critique as anything. Note: It starts kinda slow. If you’re sold on the basic concept of the halo effect, you can well skim through the first handful of chapters where this case is being built with repetitive examples.
Being and Time: This is German philosopher Heidegger’s main work. I’m only just starting on it, but it’s incredibly obtusely written, yet also instantly illuminating. He starts by spending 20 pages defining how to properly pose the question of “being”. It’s a fascinating deep dive into the core questions of life that we all take for granted most of the time.
Amazon Web Services in Action is the first technical tutorial book I’ve read in a long time, but time well spent! Great to get a full tour of the latest with AWS. Leaps and bounds are being made. AWS Aurora is really interesting. So is AWS ElastiCache for Memcached + Redis. We will do very well to explore how we can use more of AWS going forward.
The Origins of Political Order: From Prehuman Times to the French Revolution by Francis Fukuyama. It’s an epic tome and tour of human progress through the construction of political institutions and systems. It explains a lot of why we are so quick to devolve into tribal affiliations, and why the advent of the state was one of the chief achievements of human evolution. It dives into why some areas, like Western Europe, has developed more stable states, while others like Afghanistan or Africa still struggles. It’s told in a relatively plain language, but does go deep on a lot of minutia of kinship systems and so forth that are interesting but makes for a very long tale. I can recommend the Audible version as well. A solid 23 hours of listening 😀.
Fans of Hardcore History would find a lot over great crosslinks and overlaps with the topics and stories that Dan Carlin covers. It also gives a historic foundation to understand things like Game of Thrones. I thought The Unsullied was a really clever idea from GoT, but it so happens that a slave army like that was actually employed by several regimes throughout history. The Mamluks started as such an army, until they ended up running Egypt, and subsequently defending Islam from both the crusaders and Genghis Khan.
What’s really interesting about such a broad inquiry is how it compares and contrasts different regimes under the lupe of system theory. The use of the Mamluks, and other slave armies, came to be because rulers couldn’t overcome the tribal and family allegiances of their own citizens. Those systems had a tendency to descent into graft and nepotism as a matter of biology (leaving offspring with inheritance and security).
That then ties into later political institutions, like the rise of the Catholic Church. The whole purpose for celibacy came as another way of dealing with the same problem of priests and bishops trying to form dynasties around inherited positions. So the solution was the sledge hammer of “hey, if they can’t have a family, they won’t have allegiance to their own blood over the church”.
Where it all ties back is to give a historical foundation for understanding current events. The separation of church/mosque and state, corruption/elites, traditions for rule of law, and why places like India, China, the Middle East, and the West all ended up with such different notions based on millennia of institutional development.
Some times you wish he wouldn’t go into as much detail, but at the same time it also gives the whole story a gravitas that’s hard to argue with. (Although readers of The Halo Effect will smirk at the option that just the depth of research necessarily gives legitimacy to the formulation of theory.) And it’s fun when you hear about things like the Domesday Book, as covered by In Our Time, put in a broader context.
It’s an epic work. I have a hard time even comprehending how one person could digest that much original source material, make sense of it all, and arrange it in a logical progression to explain something so broad. Inspiring accomplishment.
Errors by Gerald M Weinberg. This is a compilation and refresh of the Weinberg’s six-decade work on understanding software quality and the organizations that produce it (or not). I don’t think it’s an overstatement to say that at least a quarter of everything I think I know about software management and quality comes straight from reading the works of Weinberg. He is as profound as he is approachable. A rare combination!
I’d strongly encourage anyone interested in software quality (and who isn’t?!) to give this a try. It’s a good introduction to the topic and doesn’t require much in terms of prerequisites. If this then strikes your fancy, Quality Software Management is the gold series.
The central thesis is that motivation relies on three core components: Mastery, Autonomy, and Purpose. As well as just how important intrinsic motivation (I like the work for the sake of the work) is for creative work compared to extrinsic motivation (I do work because there’s a bonus if I do). It recites countless scholars and studies on motivation and just how harmful a lot of traditional management carrots and sticks can be. Strongly recommended, and it’s a short read/listen.
Disrupted: My Misadventure in the Start-Up Bubble. What a wonderful mirror for much of the contemporary bullshit around startups. The book details his ~2 years working for HubSpot, and the ridiculousness and mismanagement that entails. From calling people who are fired “graduates” to pumping up sappy acronyms for culture like HEART while being utterly brutal with work environments. It’s a cautionary tale of how too much AWESOME!! and CHANGING THE WORLD!! indoctrination can make you utterly blind to the mundane realities of work.
You do have to get past the curmudgeon filter a bit, though. Lyons has a tendency to fall into the “everyone is so stupid, I’m the only one who sees everything” hole at times, but I’m inclined to forgive him given the ordeal. And he does counter that with a fair dose of introspection and self-criticism.
The Age of Absurdity by Michael Foley. It’s part Andy Rooney curmudgeon (or, crank, as he calls it), part tour de force of philosophy (especially Stoicism and Buddhism), part neuroscience picks, and part stand-up comedian observations, all reflecting on How To Live A Good Life, in the grand sense of the phrase.
It’s really good and right in line with many of the philosophies we project with REWORK and SvN. I particularly enjoyed the epic rant on POTENTIAL as the new grail for everything in life and business.
I’ve been listening to it on Audible, which has the added bonus of a Scottish reading, which is just perfect for the tone.
It has a bit of a dip in the middle, which ironically mirrors the conclusion’s focus on the U-shape of enjoyment through life, but finishes unbelievably strong. This is philosophy on how to live a good life without being dense or obtuse. Funny, approachable, profound.
On the philosophy track, I’m about a fourth through The Daily Stoic. It’s meant to provide a Stoic quote for every day of the year to provoke pondering. I don’t really hold to the once-per-day timetable, and some times the “modern contextualization” is a bit trite, but it’s great to have the hardest lessons presented repeatedly from different angles and different texts. Good stuff.
Throwing rocks at the Google bus by Douglass Rushkoff explores the ills of a society focused so exclusively on endless growth. It’s a little bit of a leftist polemic piece that likes to play both sides of the equation whenever it suits the argument, but there are some real nuggets here, and a capture of the sense that Things Aren’t Broadly Working Out For A Broad Enough Number Of People.
An Introduction to General Systems Thinking is a book I first read maybe 15 years ago. I’ve recently come to think about what books I had read in the past that had the biggest impact on my thinking. And this was right up there. Systems thinking teaches you how to find the significant variables, how to ignore that which doesn’t matter at the scale you’re examining, and generally how to think clearly about the world. That’s obviously a great help for any programmer, but it goes far beyond that. It’s just as important to be a clear thinker in business or any other matters of complexity. So I’m giving it a re-read, which is also reminding me what a fantastic writer Gerald Weinberg is. Just 👌
The problem with management in small teams and businesses is that it’s often not a full-time job. Smart, capable workers need some direction and follow-up, sure, but they also thrive on autonomy. Frivolous management frequently encroach on the latter for no better reason than having free manager time to fill.
One way to deal with this is simply not to have any full-time managers. That’s the road we’ve chosen at Basecamp. With fifty people and just a handful of teams, we’ve so far not needed any true full-time managers. Instead, we have people doing the actual work moonlight as managers to varying degrees.
Jason Fried still does lots of design, writing, and marketing. I still do lots of programming, writing, and marketing. Everyone else with managerial responsibilities at Basecamp still also do the work they’re designated to manage of others.
This is not a path without pitfalls.
While the stereotype of managers, especially middle managers, is that they meddle, bother, and over-manage their team, the reverse can also be true. Not enough management, not enough direction, not enough follow-ups. But if you are to err on one side or the other, err on the side of slightly too little management rather than too much.
It’s also true that management in itself is a skill. One that needs study and practice. But in my travels, I’ve found at least as many incompetent full-time managers as I’ve found lacking moonlight managers. More, actually. So this isn’t a problem reserved to either style, but certainly one to pay attention to.
The payoff that makes all these caveats worth navigating is that the reluctant, moonlighting manager has better things to do than come up with, propagate, and tolerate bullshit procedures, policies, and busy-work. When the choice of time is between creation and management, the favorite activity tends to be the former.
So rather than dream up elaborate plans and complex policies, the moonlighting manager tends to pick the simpler, easier road that doesn’t require them to constantly steer the buggy. That’s a path that invites delegation of responsibility and autonomy. Fewer sign-offs, fewer check-ins, fewer bottlenecks.
The moonlighting manager’s best work is when their work is not needed at all. When people are entrusted to simply do the right thing the bulk of the time, and that we only need to calibrate occasionally, not constantly.
Good software is uncommon because writing it is hard. In the abstract, we all know that it is hard. We talk incessantly about how it’s hard. And yet, we also collectively seem shocked — just shocked! — when the expectable happens and the software we’re exposed to or is working on turns out poor.
This is classic cognitive dissonance: Accepting that writing software is hard, but expecting that all of it should be good.
It’s also an application of a just-world theory of effort and accomplishment. That despite the odds, everyone who has the right intent at heart, and puts in the work, will succeed. No they won’t. That’s just delusional.
And those delusions are anything but harmless. When we expect good software to be the most likely outcome from the hardship of writing it, we’re setting ourselves up for inevitable disappointment. Even worse, if we feel we deserve good software from our imperfect efforts, we’ll project the inevitable failures on everyone and everything but ourselves.
The first usual suspect arraigned to answer for this shocking-yet-expected failure is our tools. It’s the easiest out. If you’re cursing at your programming environment, it’s not going to talk back, it’s not going to refute your preposterous charges. When you share your story with your friends or colleagues, they usually do what kind people who know you do: They agree with you. They concur, even if you’re wrong.
This inflates a bubble of illusionary competency with kindness and self-esteem. The tools don’t defend themselves and your compadres indulge you. So there’s nothing to puncture that bubble. (Well, unless you venture onto the internet. Strangers are always eager to tell you how incompetent you are, if you fail to justify the technology choices they already made.)
Anyway, that’s a big preamble to arrive at a basic yet uncomfortable truth: Software frequently fails to be good because its creators simply aren’t competent enough software writers. There are many qualifications to that charge, many alleviating circumstances, and a very broad definition of “competent software writer”. But it is a helpful start to accepting responsibility. And accepting responsibility is the first step to improvement.
Because consider the alternative: If I blame my tools or my process or my stakeholders or the full moon, I get to exonerate myself, and my ego, but I’m left with far less motivation to improve and very little insight into how. If I instead accept at least partial responsibility, there’s a clear place to start improving.
I completely understand how we ended up here. With good intentions, of course. Learning something new, like programming, is daunting. Imposter syndrome is rife. We have all sorts of reasons why we want to encourage and support everyone trying to entice grumpy computers to dance.
And we’ve succeeded to an astounding degree with those intentions. Getting started programming today has never been easier. From open source to superb books and tutorials to bootcamps, it’s a splendor.
This is in sharp contrast to the fact that programming has also never been harder to master, in both depth and breadth. There has never been more languages, more concepts, more frameworks, libraries, tools. It’s impossible to know, let alone understand it all. What an odd dichotomy.
But that dichotomy is rarely the highlight of any discussion with newcomers. We are all so eager to encourage and to rightfully exalt how easy it is to get started. So of course many people are left feeling a bit mislead when their lack of competency leads to failure. And of course they’re going to look for scapegoats, like poor tools or bad documentation.
Which is why its worth pondering what disservice we may be offering those who seek to learn programming by proclaiming just how super-duper easy it is now. Yes, we’ve made it easier and less intimidating to get started. That’s true progress. But getting started is, by definition, just the first step.
I think it’s time to talk more frankly about step two, three, and five-hundred-thirty. To stop expecting that everyone who sets out to write software is going to end up with beautiful code and maintainable structures as the most likely outcome. They’re just not.
Most code is likely to remain just that: code. Impenetrable to secondary readers, because it was barely comprehensible to its original author. Hard to reason about because reason was a distant goal behind “making it work well enough to ship”. Convoluted because the natural entropy of systems is towards a ball of mud.
Some environments may well make that slightly more or less likely. Just like some baseball bats really do strike the ball further, some cars really will take the turns faster, and some typewriters really do sound more pleasing when pounded upon. The tools absolutely, positively matter. Just far less than we’d like to let newcomers believe.
The true purpose of finding the right tools is how it helps the software writer progress in their journey towards mastery.
Now I fully realize that I’m talking my own book here. As a tool maker, I’ve listened to several life time’s worth of woeful stories blaming programming environments for poor software (and shared quite a few of my own!). But it’s also my book because its my own story: A path to mastery paved with plenty of projection until I hit the red spark that ignited my curiosity and changed my trajectory.
It’s also the sum of observation from two decades making software and watching others do the same. Seeing who continues to grow and who settles for the plateau. People who are resigned to complain about their environment without trying to better it usually fall in the second category. So do people who are eager to jump to supernatural or personal persecution as explanation for why they can’t make something work.
I’d like to see fewer people get stuck at the plateau. Life is just more interesting when you keep climbing. And you’re more likely to do that if accept the odds: You will write poor software for a long time. If you accept responsibility for this, you stand the chance to write that which is at least poor in new and exciting ways, but most likely better too.
There is no framework or even language that’ll allow you to sidestep this progression. There are only ones more or less likely to match your sentiments and ignite your motivation to understand it all. Find some of those and start walking.
I’ve spent my life’s work working with, understanding, and improving Ruby through Rails. A web framework extracted from Basecamp. Have a look at all three, if you haven’t.