I have been a passionate advocate of Trello almost since the day it came out. Visualizing the work is incredibly powerful, and its use of priority by ordering is so obviously better I could not imagine using anything else. I have brought Trello into companies, and caused hundreds of people to use it. Recently, though, I stopped using it in key functions, moving my personal tasks into Things and other work into the applications that own it. It started as an experiment, but quickly snowballed into a full transition as I realized how much better it would be for my core use cases.
I am a productivity junkie, from GTD to Deep Work, and while I know the tools aren’t the work, they’re one of the fastest and easiest ways to change a system, bringing new perspective and abilities.
I initially adopted Trello for managing my personal tasks. From there, it slowly spread to group and company use cases, and by the time I left Puppet in 2016 it was baked into our core business operations.
I had considered switching away from it for my personal tasks a few times, because it’s been obvious for years that it was not a fit for how I managed and processed my life’s flow of work. Where I had always taken great pride in my productivity system, I could no longer muster the discipline it required, which meant it was extraneous process and I was also failing to do my job. I sank so low that I began sending person to-do items to my inbox. shudder However, my life as CEO was busy, yet not really built around task execution, so it was never worth the cost of the tooling change. Or so it seemed.
While I abhor tooling changes for their own sake, sometimes you just have to experiment, and when I had a run of open space I decided it was time. Even if other places were worse, I was better off spending time elsewhere to get out of my funk than I was continuing to stare at this board that just wasn’t working for me.
As I looked to move away from Trello, I wanted to switch to OmniFocus, but the timing is wrong. I recently downloaded the current version, but it reminded me why I stopped using it years ago: It asks too much of me1. The biggest disconnects were the need for contexts, and the inability to set priority by dragging items around. It looks like the impending next version will be a great compromise for me, but I can’t use it until it arrives.
As I began moving tasks into Things, I was slowly reminded what it was like to have my task app be, well, an app. Before Trello I used Asana, at a time when its mobile experience was just a badly packaged web page. It’s been years since I had the pleasure of working with someone who bothered to build for the platforms I used. What a difference it makes.
Processing this small but meaningful change took over my brain for the rest of the day. I could not let go of the transition, but I also could not stop thinking about its consequences. “Thinking” is being too generous. I had not seriously looked outside of Trello for years; all of my habits and instincts are built within its constraints, its physics model. That meant wide open opportunity to construct whatever world I wanted, but also the need to do so, and embarrassing mechanisms for getting in and out. Creating a quick task in Trello is most easily accomplished by sending myself an email, which tells you how seamless the core experience really is. Telling Trello of work to be done in another application usually required custom applescripts to connect the two (e.g., creating message:// urls).
The keyboard’s change in utility keeps hitting me. I did not realize how rarely I used Trello shortcuts for their sheer disagreement with my hands. Well, partially, they were insane - ‘c’ archives cards, where I kept thinking it would create them, and repeating mistake kept my hands off the keyboard - but also, they were just different. I keep visualizing myself sitting at Things, fingers poised over the keyboard, in a world that makes sense to me. It’s pleasant.
I have a lot of work in Trello. Basically everything I’ve recorded in the last 4 years about what I could or should do is there, and it’s been the platform for organization all of that information. I’ve always been pragmatic, so even when I built it I would not have said it was the “best” answer, just that it worked at that time for my use cases.
Now I am questioning everything I’ve done recently - not to ask if I’ve made a mistake, just wondering what the world would look like if I had done that work differently. Are there projects languishing from sheer friction, that would suddenly become easier if migrated?
The answer in at least one other case is ‘yes’. I had a Trello board for managing all of my writing ideas, and I had a standard right-to-left workflow from idea to writing to done. I just never really used it. Instead, I did all of the management of writing in the same place I did my actual writing: Ulysses. I built a workflow from folders2 instead of lists3, and eventually I realized that the Trello board was hurting, not helping. The ideas I put in there languished, and Ulysses is just as good at capturing a sentence or two about a post as it is for writing the entire thing. The board is now closed, and my writing is in the same place as all of the work needed to manage it.
Tools do not make the difference, but tools can make a difference. A thing can go from undoable to tractable with a small change in tools, just as a math problem can go from impossible to trivial if you flip the equation around a bit.
I know Things won’t work for many of the use cases I have in Trello, partially because it’s so obviously a single-person tool, and much of my work does not have a home I can move the organizational work into. E.g., I have a list of lists in Trello of all of the day trips I could consider taking around Portland, and I can’t think of where I’d move that. I don’t know where those other problems get solved now. Maybe they don’t change.
But I know my standards have been reset. I know I made a mistake letting myself sit in one tool for years, unhappy but unwilling to invest in the change. It’s a wonderful feeling to be looking at the world through new eyes again.
To be fair, I also stopped using it in the days when it took 45 seconds to open the app on an iPhone, because that’s how slow the data synchronization was. ↩
Software’s focus on world-dominance has crossed with my incessant tinkering to result in a computing environment that is failing me utterly.
I’ve tried everything, and it still doesn’t work.
My first computer was from basically the worst era Apple has ever produced, starting with MacOs 7.6.1 and finally quitting around MacOs 9, switching to BeOS. While I was using these for fun, I was learning Solaris (and AIX, and HP-UX, and FreeBSD, and Debian) for work. I know some are frustrated that the Mac has lost its spacial finder, but I’m frustrated when I have to touch my mouse, because I spent years in a fine-tuned X-Windows interface that allowed me to do essentially everything from the keyboard. It was only marginally graphical; all of the windows except the browser were different kinds of text interfaces, from the terminal to vim to irc. I controlled everything with a Sun Type V keyboard, which relegated the caps lock and backslash keys to some far away corner like God intended, and gave prominence to control, escape, and delete, which matter quite a bit more. I honestly have no idea what mouse I used for the first ten or fifteen years; I don’t normally care about them, so I don’t normally notice them.
As I gradually switched from a sysadmin-turned-developer to a CEO, my computing needs changed dramatically. I spent all my life in email, calendar, and chat rooms, instead of text windows (notice they’re all still text, though). I did not even have a desktop computer for years, because a laptop was a better compromise.
As the iPad got more powerful, though, and Apple’s iMac computers turned from lickable toys into their most powerful computers, I moved most of my computing from laptops up to desktops or down to tablets. For a little while, all was fine, because I still wasn’t spending much time on the computer - as a CEO, most of my time was spent directly communicating with people, either in meetings or via email and chat. Being present means not being on your stupid devices. That was my computing experience.
Once I left my CEO role, I shrugged. I changed a few things (started writing in Ulysses, for example) but basically kept the tools and practices I had.
It’s become clear now that I have a solid decade of debt that’s built up in how I use my computers.
I really hate it.
Some of it is obviously just bugs. Or something. The keyboard (a KÜL tenkeyless with some kind of Cherry MX switches) and mouse (some large Logitech thing) just don’t work most of the time. The keyboard has to be unplugged and plugged back in 90% of the time the computer goes to sleep, and the mouse icon just does not seem to care about my needs, even after swapping mice, mousing platforms, hair shirts, and everything else I can think of (turns out that moving the mouse’s wireless adapter from a USB hub to the desktop might have fixed the mouse).
Beyond that, the software is out to get me.
Am I seriously the only person in the world who cares about keyboard focus?
I just deleted an email in Apple’s Mail.app on my desktop (running the latest os and patches, but this problem has persisted for as long as I’ve used the app), and I literally have no idea where the focus went. I hit delete, the email goes away; I hit delete again, and literally nothing happens. An email is highlighted, but, oh, I see, it’s a gray highlight instead of a blue one. I click on it, now it’s blue, and suddenly delete works.
I have essentially the same problem on my iPad (which I work on at least as much as my desktop). My only feature request for the iPad is to make keyboard focus predictable and functional. You can be scrolling through emails with the arrow key, and suddenly it will just stop working. Delete an email, no idea where focus is. I don’t even know how to tell where the focus is.
I’m in this insane world where I can feel utterly defeated by the need to click on an email to delete it, but if I zoom out, just about every other part of my computing experience causes similar frustration. I’m apparently the only person in the world who has quality studio monitors on my desk, based on how much everyone is freaking out over the HomePod price. I have separate audio installations in 7 parts of my house, and the HomePod in my bathroom is the cheapest one, beating the thirty year old (purchased used, recently) NAD and M&K kit in my bedroom by about $100. Nothing can cause you to lose hope that your needs will be met like the entire internet agreeing your needs don’t exist.
I don’t consider myself an audiophile, but I know enough to know that decent speakers start arriving at around $300 (each, not a pair), rather than topping out there. I never bought into Sonos because that required my believing they could deliver a good speaker, amplifier, and software experience for the price of a single decent speaker. Oh, and I had to join their walled garden; I’m willing to consider that, but it’s got to be worth it, and it never was for them.
Getting back to computers, it just could not be more clear to me that I’m in the shitty middle ground of the computer world.
I’m not a specialist any more. When I was a sysadmin, I was a specialist and I could build my computing environment to match that. (Although good luck finding specialized sysadmin hardware these days.) When I was a developer, I was a specialist, and my computing showed it.
Now I do what everyone else does: I email, browse, handle my calendar, chat a bit. My writing is a touch specialist, but not really; I’m using a specialist tool that’s great for writing books, but I’m just producing blog posts instead.
Even though I’m not a specialist, I’m still weird. I know that I’m using all of my tools differently than most of you are. I know we all think we’re special, but I’ve been around enough to know I am. Not in a good way, just in a “why are you doing that?” way.
Take my calendar. I’ve now twice written tools to tell me whether I’m meeting my goals in terms of how I spend my time. Sure, you have some sort of tomato timer to remind you to stand up or something. Amateur. My calendar should be a statement of my priorities, of how I will and do spend my time, and I want to hold myself accountable to my goals. I appear to be the only person who wants this, based on the searching I’ve done. Thankfully Google Calendar has APIs available, but why should I have to write this?
I have tried every email client I can find, but they’re all written for someone else. They all seem to offer, “How can I help you do email without email?” I don’t want that. I want the vim of email clients. I want the Photoshop of email clients. Can you imagine telling a graphic designer that you want to help them make graphics without making graphics? It’s stupid. They’re designers. They design graphics. I’m a communicator. I communicate. I read and write. A lot. Make a client that’s better for that. But nope. Instead you have the modern equivalent of a lickable interface that still can’t do inline reply and only has 5 keyboard shortcuts. _BZZZT_DELETED!
Some of it is just stupid. I have LED strips mounted to the back of my monitor, so I can get ambient lighting while I work. It’s actually an awesome feature, and I totally recommend it, but it’s a bit of a mess of wires with a ridiculous interface (a switch that keeps falling off my desk). I get not everyone has their monitor against a wall, but this seems so great it should ship by default. Can I just get all the LEDs you want in my keyboard moved back there? And, of course, I want it all connected to the computer so I can control it via software. Instead I’m wiring it all together myself and hoping 12V can’t catch my desk on fire. Yay.
I wish it was just that I’m a curmudgeon, that I can’t give up the old ways, but the truth is I like my iPad more than any other computing device I’ve ever owned, and honestly, I always hated the old ways. I’ve been hating software for as long as I’ve used it, and I’m proud I’ve been able to keep my edge as my career and the world it’s in has changed. I hated X-Windows. I really, really hated MacOS. I loved BeOS, but honestly, I held it to a very low standard. I loved every part of Solaris except the parts that actually existed or that I ever used, and I quit using it just when it stopped sucking quite so much (god, remember having to use Veritas to get decent clustering? Even worse, remember Disksuite?).
So it’s not that I miss the old days. I want to live in a different universe. I want a different physics model for our software world.
When I was 23, I was hired as a system administrator for the first time. I joined BlueStar Communications, which was a young but well-funded company stupid enough to take on the incumbent telecom carriers. Their CEO was a maverick, especially in staid telecom in Nashville, Tennessee. He was bringing always-on internet to small businesses in the southeast (yes, there was a time when this innovative), and blended in about as well as a hockey player in a three piece suit. I was excited to work with someone who I could identify with, and learn from.
He was fired the week I started.
Like the founder of BlueStar, I’d had my own struggles with long tenures. I was fired from a cabinet company after only a week. I lasted a full three month contract at Adidas before having it ended the day I left to visit family. I also lasted only three months in QA and Mac administration jobs.
For all of these firings - except maybe the cabinet shop, which bored me to tears - I wasn’t bad at the work, I just didn’t fit in. You could say I wasn’t really housebroken, that I didn’t know the rules of how people acted in American corporate environments.
All of my prior work experience was remodeling houses with my family, after growing up on a commune. I had no idea what made people normal, I just knew I was missing it.
These failures inspired me to work harder at being worth keeping around, but in parallel I started learning to look like I knew what the rules were and was at least trying to follow them. For someone who only a few years earlier walked around campus with knee-high boots, a spiked leather jacket and a mohawk, this was no mean feat.
This experience with firings was a huge influence when I started Puppet in 2005, six years after I met the CEO of BlueStar. I bootstrapped the company for more than four years, partially because I failed to find an investor I trusted to keep me in the CEO role. The first term sheet I ever received was on the condition that I accept a friend of the investor’s as CEO. (I declined.)
As I grew the team, things got more difficult. One of the first people I hired immediately declared his greater fitness for the CEO role, with zero relevant experience, and tried to convince others to oust me from the company I’d built and they’d just joined.
Yes, I was paranoid, but they really were out to get me.
From my first hire through raising $87m in funding and growing to nearly 500 employees, I could never get comfortable. Everyone I worked with reminded me - unintentionally - that I didn’t fit in, that I didn’t behave as they expected. As I grew into my role, I excelled in areas, but continued stepping in holes that everyone else could see.
The suspicion that I wasn’t faking things well enough was confirmed as I was raising a later round of funding.
Before a pitch meeting, an investor said to me “Now try to be more like a Valley guy, not so much a Portland guy.”
Infuriatingly, I knew what he meant, but also that I’d never be able to pinpoint what I was doing wrong. I worked every day on my “Valley guy” pantomime, from the clothes to the books to the words. This pointed statement told me in stark terms that my efforts were obvious failures to even the casual observer.
Knowing the world saw me as an imposter caused me to hold back. I don’t mean I had imposter syndrome; I suffered from it like most high performers do, but that’s not what this was. The world around me constantly pushed back against what made me “me”, making me worse at just about everything.
I had put myself in a box. I wasn’t even willing to consider ideas that I didn’t think the people around me would accept. I was brave, within that window. I was daring, but not too much. I could do anything I wanted, as long I still kind of looked the part. This box excluded many great options, and notably, excluded a lot of what I most wanted. My weirdness isn’t skin-deep, and a lot of what I wanted just didn’t fit, so I tried to do something that did. Thankfully a lot of it worked out, but I think it could have better, and I know it would have been more pleasant, if I had been more brave, more willing to own my lack of belonging.
It’s worth noting, this was all as someone who did theoretically look the part. I’m a medium-sized white male with a degree from a great school.
I can’t imagine how much worse it would have gone for someone who literally looked different - wrong skin color, wrong gender, wrong accent, disabled, too short, etc. Maybe that was my real problem - people let me in the door thinking I was like everyone else, and only once they started talking to me did they realize how weird I was.
Finally, after almost ten years of running Puppet, I found a way to escape this box I had put myself in. I would quit.
It’s not fair to say this was the only driver for my decision, or even that I was thinking of it this way at the time. What can’t be denied, though, is how much it changed me. I lost my fear of being fired for not fitting in, because I was working to leave anyway.
I couldn’t see the box when I was in it, but when freed, unavailable actions suddenly became doable. I could trust myself for the first time since that first hire, so my cost of decision-making plummeted. I didn’t need to look to society as some sort of arbiter of what’s reasonable.
I had been preventing myself from using my now-highly trained instincts, which reduced me to tackling easy problems or making slow, bad decisions. Or sitting there and doing nothing, which is generally an even worse decision.
Outside the box, my inductive reasoning center could operate without all the second-guessing. I was able to hire a product leader based on instinctive conviction that we were aligned on how to work. I made an incredibly tough call on hiring for Business Development, by following my thread of fear that maybe I was being pulled toward too easy of an answer elsewhere. Most importantly to me, though, I was able to develop and begin rolling out what I think is a truly great product strategy.
I did some of the best work of my life.
This experience has an interestingly conflicting lesson.
On the one hand, the cost of trying to fit in is often too high. No matter how much you want it, you might have to choose between failing at what you want and succeeding at what you can authentically do. If you’re building a team, the choice may come down to those who are great at the job and those you can work with.
On the other hand, I somehow fooled people into thinking I was normal (well, normal enough) for long enough to become a successful CEO in a field where I seemed like an alien to everyone involved. That pantomime was critical in developing the instincts I was able to apply so well as my tenure wound down, and now I have opportunities I never could have dreamed of.
I think the duality of this lesson is important in the conversation around diversity. Puppet couldn’t have existed without some tolerance for my weirdness, but it was also much harder because of it.
I’ll never know if getting out of that box earlier would have caused me to do even better as CEO, gotten me fired ignominiously years earlier, or even maybe caused the company to fail early on. What I do know is that I was deeply hurt by not facing and acknowledging my fear of being fired.
I am privileged to have no idea what is in store for me, and no fear at the prospect. I feel no need to fit in anymore, both because I have nothing to prove and because the cost of not fitting in is now one I can afford to pay. If anything, I’m now considered more valuable because I don’t fit the mold.
The lack of pressure to conform brings incredible freedom. Freedom that everyone deserves.
I am not a technologist. This surprises many, including a CEO I was on the phone with recently. I explained that I had no pet software projects I was working on at home, and thus couldn’t demo her software. She paused for a second, like, “Uh, why are we on the phone, then?”
It’s true that I have worked on tech since graduating from college, and that I wrote Puppet essentially alone while I bootstrapped the company for years by myself. I enjoyed the work, but those were all a means to an end, not the goal. This became more and more clear to me as I hired large teams who really were technologists. I was able to do the work, but they loved it. I naturally fell into different, complementary areas.
So no, I can’t really help your company in sorting out its software stack. Or rather, I could, but you really shouldn’t want my help there. There are better people. Far better. People have found my advice really helpful in the past, but not in this area.
Strategy is where I’ve had the biggest effect as an advisor. You are already deeply committed to your goals - you don’t need my help figuring out what to do. You are just as committed to how you’re going to achieve them, but probably haven’t spent as much energy thinking about it and expressing it. This ‘how’ is your strategy, and key aspects are decided early on, whether you mean to or not.
Do you want a big field sales force, or a self-service model? Either way, why? How does that choice affect your product price point and service attach rate? There isn’t necessarily a right or wrong answer, but a choice will be made, and it has massive consequences on the life of your company. My great ability is pestering you with questions until you’re forced to put your opinions on the table and really examine them. As a leader, your job isn’t just to be opinionated - it’s to be able to usefully express that opinion to your team.
Product is the second major area I will push you. Again, this isn’t about the tech, or the code. I don’t care how it’s built. The first step is being clear about what problem you want users to hire you for. I bet you have a decent grasp of this, but you have to go down a layer into which users you’re going to start with, how you’re going to parlay them into a larger group, and how all of that relates to adoption within a single organization and across a market. The path of a product’s adoption is as critical to plan out as the features you build.
All of that ties into how you price. How does it drive user behavior? What do you want to incentivize through low or free pricing, and what must you charge for to make your business work? How does charging per seat vs consumption vs features change their behavior and affect your business?
All of this must come together into a coherent system that pushes you, your team, your customers, and the market to focus on the right problems at the right time. You should seek my help in seeing the whole system, and especially the gaps in it. I hate software, but oh boy, do I love systems. My brain is so optimized for managing, storing, and assessing systems that I lose nouns constantly. It’s worth it, for me and for you.
I can also help you.
You’re not a coincidence. You have to understand, it’s not an accident that you’re here. Even if the only thing that makes you special is that you were the first one to raise your hand… it’s been a few years now. Because of that one little action, you’re different than everyone else. It’s up to you to demonstrate whether that difference is good, or useful, but it’s definitely there.
I don’t mean to say that you’re better, or that only certain people can be entrepreneurs. History shows the exact opposite, and I’m a huge believer in empowering ever more. What I mean is, the mere act of taking the step permanently changed you. One of the hardest acts for most founders, especially those from underrepresented groups, is believing that they belong, that they deserve to be out front. I can help you see how just sitting in the seat has led you to be a different person than you were before, led you to special insight and special opportunity.
It’s up to you, now, to make the most of the opportunity, to believe in it and to deliver on it. You have to learn how to extract that difference, to bottle it, to share it. And when to dump it down the sink.
Founders are so full of dreams that they have a hard time letting go. “It’s true we can’t do this today, but I’m going to keep talking about it in hopes we can do it tomorrow.” Your business is on death’s door and the wrong success gets you all fired, but sure, go ahead and distract your team with something you know you can’t and shouldn’t build, and that your customers would never buy.
Everyone knows founders have to make hard decisions, but most don’t seem to realize the hardest ones are about their own dreams. To build something great, you have to give up on other dreams. You can’t build it all at once. You can still hold it, treasure it. But you don’t get to talk about it. You can’t distract people with it.
You haven’t earned it yet. When your company is a massive success, and throwing off more cash than you know what to do with, that’s when you pull out your other great ideas and turn your success into a platform for experimentation. Until then, you have to focus. Let go.
Beyond all that, I enjoy working through demos and user experiences, helping people see your work through new but educated eyes, asking a thousand questions that you might not have answers to. This teaches us both a lot about you, your product, and your company. The differences between the easy and hard answers teach you a lot, too.
What I don’t like to do is tell people what to do. At most, I will share frameworks I’ve used for decision-making in the past and recommend some of them for you, but preferably, I will focus on pulling from you what you really believe, and then make you really confront it. It’s not about me. I can’t live your life. I don’t know your customers. I can’t run your company.
But maybe, with the right prompting, I can help you look at it in a new light, help you make the right decisions faster, and help you avoid some of the worst parts of this insane decision you’ve made.
Reese’s keyboard produces truth of complexity and beauty, admired from a distance by all.
With a violent strike of Master Aaliyah’s pen, Jorge is enlightened.
I set out in January to study the realms of finance, software, and my own desire, but found myself adrift with no laboratory for experimentation. Programming was my testing ground for the hypotheses that led to Puppet, but my new questions cannot be answered in silicon. Clumsy studies provided two conclusions: Writing itself can and should be how I express and test my beliefs, but only if I get much better at it.
I started Puppet with core hypotheses, considered stupid by the experts around me. There was no point in talking about them; anyone can talk, and listeners similarly get to pick their conclusions. Only those I could prove had merit.
Proof is complicated. Few of us live in the world of math, where there’s enough overlap between objective reality and our language for discussing it that we can be truly sure. Computer science is itself lacking the unsentimental judge that the natural world provides to actual science. In truth, I should not discuss proofs, but rather disproofs. My real challenge with Puppet was to get rid of my false beliefs and let the remainders shine through, and there, programming was the perfect foil.
The best product idea in the world is worthless if it can’t be expressed in software in a sufficient timeframe. Merely building Puppet forced me to discard many convictions, and early rejects often became critical axioms undergirding the whole system. Of course, in the world of software, the compiler is only the first test. The real arbiter is your user, your customer. Once you’ve expressed your belief in a form someone can use, do they? I remember arguing for hours with a customer against a feature he requested, but the cold hard reality of his problem had me spending that night in my hotel room fixing it.
I am often asked if I miss programming. I do not.
What I miss is the laboratory it provided me, and the complete world that enveloped me, pressing in on me with its constraints, requirements, and complexities. I miss the hours I spent focused on one problem, and the complex systems needed to turn my ideas into a form usable by others.
I am thrilled and relieved to see that writing can be a new and even better laboratory for me. When I was programming full time, problems would haunt me, refusing to leave. I wore holes in my shoes walking back and forth between my keyboard and the local coffee shop, trying to line things up so they made sense. I’d scrunch up my face while drinking the coffee, drawing enqueries as to my wellbeing.
Writing is harder than that. The problems are bigger, and yet deeper inside, and harder to extract. I was never afraid of programming, but every idea I fail to write frightens me at least a little. On the far side, successfully expressing something is cathartic, a release, and it washes everything out with it.
It’s a better laboratory, because I have far more opinions about the real world than about the software world. Like those hypotheses that led to Puppet, I don’t know if they’re good. But I do know they’re different. I’ve bounced off reality enough times, asking for help from the crowd of onlookers and then getting back up, that I have a good sense of which of my beliefs are widely shared, and which are rare. For better or worse, little of what I believe, of what I think is important, is widely shared.
I’m excited by disagreement. Alignment is critical to execution, but diversity is needed for learning.
More than anything, I look forward to sharing my ideas, and as I did with Puppet, either finding them useful to other people, or having them cut to shreds to reveal new constraints, insights, opportunities. To do that successfully, though, writing is not enough: People must be able to read it.
Writing is no easier than coding, and in both, it’s ten times harder to write for others as for oneself.
One of my earliest optimizations in building Puppet was to prioritize my own productivity wherever possible. I explicitly chose to program in Ruby because I was faster there, even if it was slow and unpopular (Puppet was started before Rails was released). It took years for my programming style to reveal itself as an implicit personal optimization, highly effective for me but inscrutable to others.
My writing turns out to have a similarly mixed legacy.
All of the great shifts I initiated at Puppet began life as an essay, some extruded in a single sitting but more often sculpted over months and years. Once a hypothesis could defend itself, I then spent months and (more often) years translating it, turning it into something people could execute.
I’m proud of that work - how can I not be, when it helped build Puppet into what it is today?
But it’s fair to define good writing as something that doesn’t need a translator into its own tongue. By that measure, I’d failed.
Like a young programmer, I used to see people’s confusion as a sign of my genius and the value of my work. Now I look back with my designer’s eye and see it as a missed opportunity. We could have been there years faster if my beliefs had come with a better user experience. Kanies’s Razor is as applicable in prose as it is in code: Never attribute to genius that which can be adequately explained by incompetence.
I sit at the keyboard today as thrilled and scared as I was at the shiny benches of my science classes in college. Today I smell tea instead of banana oil and denatured ethanol, and I have no lab tech to stonewall me when I ask for easy answers, but the feeling of hope, of optimism, of a world to be discovered, understood, and fought through lifts me up just the same. I believe I can enjoy writing as much as I ever enjoyed programming, I can develop and test a wider range of hypotheses with a greater impact on those around me, and I can even learn get those ideas across to other people.