My Desert Code Camp Presentation on Server Configuration Management with Chef

I gave this talk at Desert Code Camp earlier today as part of the DevOps track. It gives an introduction to Chef with a special emphasis on getting you to Hello World and beyond.

They say Chef has a steep learning curve, but I think that’s only because there are a lot of concepts you need to know before you can do the most basic things. I tried to cover most of those concepts here. I also included some best practices I discovered such as how to handle secrets like passwords and certificates using Chef.

Checks and Balances in Agile Development

Every young American grade schooler learns about the Systems of Checks and Balances here in the USA.  It’s the idea that the top decision making power in the federal government is split into the Executive Branch (the President), the Legislative Branch (Congress), and the Judicial Branch (the Supreme Court).

In most cases, no one branch can unilaterally do anything.  Sure, the President has some ability to unilaterally make decisions, but if such decisions are happening, we hardly ever hear about them.

Recently, I worked on a sprint as part of our company’s scrum process.  This sprint was somewhat unusual in that I was the sole developer.  Not only that but I knew most of the specs in my head, so our product manager and I agreed it wasn’t necessary to write acceptance criteria for the user stories I would be working on.  Since I wrote the acceptance criteria, it made sense that I would be the one who ultimately “accepted” the user stories.

I hate bureaucracy so I was excited about how “lightweight” this process for the sprint was.  But I found something kind of interesting.

When I was wearing my developer hat, I realized how much I enjoyed taking time to learn about other technologies.  I had made a commitment to my teammates to get a certain amount of work done by a certain date, and we came up with estimates to make sure that the work was achievable.

But once I was doing it, my human nature started subconsciously looking for ways to “cheat”.  I still wanted to get the work done, and done well.  I wanted to be acknowledged by my colleagues for having delivered what was expected with high quality.  But I also wanted to sneak in extra time so I could do more tech learning on the side.

I’m not looking to slack off; in fact, as a part owner of the company, I have every reason not to.  So what I write about here is not my bad intention, it’s just human nature.

So with my goal of trying to free myself up to learn on the side with the constraint that I needed to get my work done, I started looking for ways I could shortcut my requirements.  I wanted to spend as little time as possible on getting my user stories done.

Because I wrote the acceptance criteria, the scope was flexible!  Because I’m the one that ultimately approved the stories, I simply declare in good faith when I’m done!

Well, ultimately, I decided to “come clean” and write this blog post.  I have committed no sin because I have continued to prioritize my work and I remain on track, and if come Friday I haven’t finished everything, I’ll be putting in time on the weekends.  So, in all ways I’m still accountable for my original deliverables.

But what it highlights to me is how important it is to have the checks and balances in agile development…and probably any endeavor with multiple people.

Checks and balances in agile means there’s no unilateral decision making by a single stakeholder.  I, playing the developer role, do not get to set the scope, do the development, decide when I’m done, and sign off on the quality.  No matter how well-intentioned and talented I may be, human nature eventually introduces a certain “good enough” factor into the equation.

But if a product manager sets the requirements, and it’s my job to execute those to her satisfaction, then I can’t cheat, can I?  If I try to just do a more limited scope, the product manager will call me out on not implementing all the acceptance criteria.

I’ll still have my desire for more free time in the back of my head, but now it’s transmuted into “how can I implement these acceptance criteria faster?”  That’s going to make me a more efficient developer.  That’s a good thing.

But even in this model, there’s still one aspect of unilateral decision making.  I get to decide with no checks and balances how to implement the solution.  Maybe I can get it done faster while incurring technical debt, but the product manager wouldn’t know that.  Maybe I can get it done faster, but I hurry through the problem without really thinking things through.  The product manager wouldn’t know that either.

And so, even with development, my code should be peer-reviewed by at least one other person.  Because then — just as I don’t want to look bad in front of the product manager — I don’t want to look bad in front of my fellow engineer.  I want to have a reputation for writing thoughtful, clean code that addresses the root problem, not someone who just gets it done as quickly as possible, quality be damned.


  • The USA government has used the same fundamental system of checks and balances for 250 years, so there must be something to it.
  • Agile software development is no different.
  • People are usually good intentioned but human nature naturally tends toward “good enough”
  • Make sure your agile process has checks and balances to limit unilateral decision making

Paying a Medical Bill Should Not Be This Hard

When it comes to paying a medical bill, I’ve had a backwards experience.  As the founder of Omedix, I built software that’s collected tens of millions of dollars in healthcare bill payments, but I hardly ever paid any healthcare bills of my own.  I was under 30 and hardly went to the doctor!

Next month I turn 34 and I am fortunate that neither my wife nor I has any chronic medical issues, but now we go to the doctor for the usual annual checkups.  In 2013, our health visits amounted to:

  • Annual well-checks with our primary care physician (PCP)
  • The lab tests our PCP’s requested
  • In her case, annual visit with an OB/GYN
  • In my case, annual check up at the dermatologist (skin doctor)
  • In my case, annual check up at the ophthalmologist (eye doctor)

Today, I’m about 4 hours in and almost done paying all the healthcare bills.  The experience has been…traumatizing.  First, multiple bills are sent for the same service, but with slight differences.  Second, our doctor tried to bill insurance, had the wrong info, sent us a bill for the full amount, was later informed the insurance was wrong, adjusted the bill, and sent an updated one.

Let’s see what else: We got several bills from companies other than our doctor who did the actual lab results processing.  In one case, we got a bill from a routine lab test we had done nearly two years ago!  When I log in online to pay the bill, sometimes I can see my statement, sometimes not.  In some cases, the online system mysteriously says the bill is paid in full, despite no corresponding paper statement.

It’s also hard to trace which third-party bills trace to which original doctor visits.  Not all the statements have an invoice date, so it’s not always clear when it’s due.

I think worst of all, there are just so many different bills from so many different organizations — The visits listed above constituted around 15 total different statements — that it becomes confusing.  So I had to make a spreadsheet to make sure I didn’t overpay or underpay.

Why It’s So Bad

Since I actually work in Health IT, I know what some of the challenges are.  First, there’s significant fragmentation.  There are literally hundreds of different billing software systems used throughout the country, so it’s hard to create some kind of standardized solution that reads the data and presents it in a nice format.

All those different systems mean the format of the data is fragmented, and location of the data is distributed…all behind heterogeneous network environments under the management of different organizations.

Second, the fact that the customers doesn’t pay his own bill adds endless complexity.  Nope, in healthcare, I pay this middle man called the payor (i.e. the health insurance company) and he negotiates discounts on my behalf and pays all my bills for me.  He tells me that in some cases I have to pay a small amount upfront for a service (my copay), but in other cases he tells me to let the doctor bill him first, they’ll settle things, and then I’ll pay whatever’s left over.

It turns out that settling things can take months because he likes to play a lot of games with the doctors I go to.  For example, one time I got a check for $600 from him which I was supposed to just pass on directly to my doctor.  Why didn’t he pay the doctor himself?  Those are part of the games.

So, we’ve got (1) Technology and data fragmentation, and (2) High domain-specific complexity.  Those seem like solvable problems, don’t they?

How It Should Be

They’re challenging problems, but they are still solvable.  The way it should work is that I log in to one “portal” where I see all my healthcare bills.  That system should display all my bills in a highly streamlined format, and should be coordinated with what my insurance company has done so that I can get all available information on the doctor-payor games going on.

I should be able to arrange payment plans with those doctors that support that, or pay in full.  And I should be able to easily run reports on all payments since many of these payments are separately reimbursable.

For good measure, I’ll also throw in alerts via text, email, or voice that tell me when I have a new payment, and maybe even authorize me to pay it just by texting back, provided I’ve done the right authorizations through a secure channel.  Text messages aren’t secure, so I can approve a payment there, but I can’t set up a payment method.

What’s Out There Today

There are some solutions available that help doctors offer online bill payments.  This is what Omedix does,  the solution works pretty well, and our customers are pretty happy with it.  In our case, we can do online bill pay as a standalone solution or part of the patient portal we offer.

Other patient portals usually offer online bill pay as well, usually with the option to view statements.  Those are the practice-centric solutions where the customer is the clinic and the end user is the patient.

There are some companies that are not patient portal vendors, but specialize in online patient payments.  Salucro comes to mind.  Googling this reveals several other solutions.

There are also a handful of consumer-focused patient payment solutions.  The first solution that comes to mind is Simplee, which looks pretty well designed.  To solve the data fragmentation problem, they go right to your insurance company and get all the data the insurance company sees.

That’s one piece of the puzzle for sure, and in some cases they’ll go directly to the clinic’s billing system to reconcile the data, too.  But of course they only go to those clinics with whom they have an existing relationship.

Intuit also used to have a solution in this space.  They did a great job on the user experience, but they never addressed the data fragmentation problem since they signed up one clinic at a time.

What the Future Holds

I fancy myself a technologist.  I can’t get enough of technology, I love creating software, and it is incredibly fun to continue learning about the latest & greatest technologies — new software, new devices, new concepts, new paradigms — that will continue to come.

It is inevitable that a superior solution for this one segment of the healthcare experience — along with all others — will arrive.  And many of the technologies to make this happen are just now gaining maturity.

It will be a pleasure when I can go to the doctor and pay my bills by texting YES instead of spending 4 hours on a Sunday making sure I’m not being overbilled.

Basic Introduction to Play Framework

I recently gave a talk at Desert Code Camp 2013.2 on an introduction to Play Framework. I’m just getting started with it, but there are several concepts that got me interested:

  • Non-blocking / Evented vs. Threaded
  • Command-line interface to compile, test, and more
  • Clearly inspired by the productivity Ruby on Rails, but written for Java
  • Written using a Functional Programming paradigm
  • Super-easy for creating RESTful web services

The devil’s always in the details, of course, but it’s been a blast so far! More to come on Play…

Give, Give, Give, Then Get

I’ve decided to try an experiment lately.  At every opportunity where I see I can possibly add value to someone in some way, I try to do so.

This can mean connecting someone with someone else I know, sharing insights from experiences I’ve had that may be applicable, or even mini-projects that leverage my technical skills.

Like any other behavior change, this is a habit that takes some work to build, so I’m not 100% ramped up yet, but at least the habit is building, so hopefully after a few weeks it will just be my default behavior.

Anyway, I’ve had a few interesting observations about it:

First, it’s fun!  It’s fun to give presents to family and friends, and it’s fun to give gifts of value — in whatever form is available — to the people around you.  It just makes you feel good and more connected.  I like that.

Second, it works best if you give without feeling any sense of debt or “you owe me” from the other person.  The desire to reciprocate is one of our most fundamental traits as human beings, but I find if I expect nothing when trying to add value, it feels more pure and human.  For some reason there is just nothing more creepy than the person who does a favor for you with the subtle undercurrent of agenda.

Third, it eventually works its way back to you.  Sometimes it takes hours, weeks, or months.  Sometimes it comes from people you didn’t even directly help.  But when you get it, you feel you feel like you deserve it.  Someone else does something nice for you, and you feel great because you’re both better off as a result of knowing each other.

I’m sure this idea is as old as time, but at least some contemporaries put it out there, too:

There’s one other interesting corollary to this that I learned recently, and it’s a crazy, ridiculous idea:

Take responsibility for literally everything in the world.

I got it from an online course in personal development I took.  The idea is that even when your’e responsible for something, you still have limited action.  If you’re responsible for running an insurance company, you still can’t prevent earthquakes.  But if you’re responsible for watching a baby, you can do a good job of that.

You can take responsibility for ANYTHING.  But when it comes time to act, you cant’ do everything.

So, if you choose to take responsibility for everything around — how hungry someone is, how much work the person next to you is getting done, how happy your friend is, how successful your colleague is — you soon realize that you can’t possibly do everything for everyone but there’s a lot you can do for a lot of people that’s within your power.

The author of the course argued — correctly, in my opinion — that it turns you on to life, instead of away from life.


  • Give before you get
  • Give without expecting anything back
  • But high-five yourself when something does come back to you
  • Turn on to life by tasking responsibility for everything around you
  • …even while recognizing that there’s only so much you can do.

Your New Normal and the Futility of Stress

I had a very powerful business experience about 4 years ago that taught me a lesson that I didn’t fully understand until recently.

I was the sole owner of a company that received a Letter of Intent from a publicly traded company to be acquired for around $1 million, all before I was even 30 years old.  Sure sounds sexy, right?  Well, the catch was that we were not profitable at that time and of course the time between receiving a Letter of Intent and actually signing all the contracts, getting a check in the bank, and considering the acquisition a done deal can be anywhere from a few weeks to over a year.

So we waited.  Doing our best to not be too unprofitable and not incur too many legal expenses, but thrilled at the prospect of an acquisition that would instantly remove all the stress.  I remember every day trying to act to the outside world like things were fine, but inside I felt incredibly stressed.  Each day was a new opportunity to obsess just a little bit more about when the acquisition would finally close.

And then finally it did.  Except that it didn’t go through, it fell through.

And here’s the weirdest most crazy part about it all.  I was enormously relieved.

Huh?  After months of freaking out, how could I possibly feel relief?  I realized that even though I had a new set of problems to deal with — how to pay the legal expenses, what the new strategy should be, where to go from here, etc. — I was at least free of the uncertainty of whether “acqisition falls through” would be my new situation, my new normal, so to speak.

And that’s what this post is all about.

We human beings — particularly Americans — tend to stress.  A lot.  That stress is often related to having too much to do, not meeting all our goals, or otherwise somehow falling short of what’s expected of us.

I was speaking to someone from Southeast Asia once and asked him what surprised him most about America.  He said that he was puzzled by the term “stress management.”  “I thought you manage things that are precious to you, like your family, your health, or your money.  Why would you manage stress?”

It’s a good question!  Why don’t we call it “stress elimination” instead of “we know you can’t get rid of it, but here’s how you can make it better.”  Is stress just an unvoidable part of life, or a socially accepted particular type of craziness?

I originally got into entrepreneurship because I’ve always been excited about creating something with technology and I didn’t want to be limited by anything other than myself.  Each entrepreneur and business person I’ve met as their own motivators for getting into business, but almost all of them deal with non-trivial levels of stress.

I see stress as having two key components:
(1) the intense desire to achieve a particular outcome, and
(2) fear that you will not achieve that outcome.

But here’s the crazy part.  Once you actually experience the outcome you’re so afraid of, then you at least don’t have to worry about whether it will happen anymore.  If you get a bad grade, or fail to achieve your business outcome, the whole feeling of stress goes away, doesn’t it?  Then you just deal with whatever new normal you’re now at.  You went from being in the world of “I might get a bad grade on this test and I’m freaking out” to the world of “I did get a bad grade on that test; now what do I do?”

If you go back to the definition of stress — (1) an intense desire to achieve something coupled with (2) the fear you might not achieve it — it makes sense that stress goes away after you’ve reached the outcome one way or the other.  You no longer fear what’s already here, and you’ve now focused your intense desiring on something else.

So, in this light, doesn’t stress seem just kind of silly?  We get so worked up and in such a state over such intense fear that something might happen, and even when our very worst experience does actually happen, somehow we just find a way to deal with it and get on with life.

The converse is also true.  The things we fantasize about and convince ourselves will truly once and for all make us happy always come with a shelf life.  Material possessions particularly apply here.

I remember when I was 28 I bought a brand new BMW 328i with stick shift and I felt like the most awesome person ever.  I still drive that same car today, some 5.5 years later.  The car itself is just as well-made today as it was then, but the novelty factor has completely worn off.  It’s a great car, and I love driving it, but at the end of the day, it’s just a car, and I don’t think about it much.  Although I do feel thankful I get to drive it.

Apparently, this phenomenon exists at all levels.  My BMW is the equivalent of a full-fledged jetsetter lifestyle in some cases.  The external stimulus doesn’t matter; the result seems to be the same.  See for yourself.

Just about the only item I’ve purchased that makes me happy on an ongoing basis is my Macbook Retina Pro, the greatest laptop ever made, and the greatest purchase I’ve ever made.  It continues to perform so well that I have eternal gratitude for its exceptional design, speed, beauty, and all-around character.  And since I use it every day, I appreciate it every day.

Anyway, my point is that we spend not just some of our time but MOST of our time freaking out or fantasizing about future eventualities that may come to pass.  But we seem not to spend enough time just living in the present moment appreciating what we do have.

People even sometimes go out of their way to defend this position!

So I propose that you do away with stress.  And the key is just to accept that whatever new situation you find yourself in will very quickly become your new normal anyway.

If you achieve your wildest business dreams — closing the big deal, getting a promotion, earning a raise, having a successful company exit — there will be an intense thrill for a little bit…and then it dies off into your new normal, and you will soon turn your attention to something else.

And likewise, if you suffer any number of horrible business fates — you lose the big deal, you lose your job, you publicly fail — there will be a sting for a little bit…and then it dies off into your new normal, and you will soon turn your attention to something else.

Our society tells us that it’s common practice to set goals and be stressed about achieving them, but in fact the better way to be is to accept that, whatever happens, you’ll just hit your new normal, which you will quickly adjust to anyway.

And that, in turn, means that there’s no big pot of gold at the end of whatever particular rainbow you’re aiming for right now.  Because once you get there, you’ll find another pot of gold that you want to go after.

The notion of “unlimited desire” in human beings is not a failing, though.  It’s wondrous and marvelous.  Within the confines of our finite bodies lies a phenomenon that is infinite.  No matter what we desire, once we get it, we will want the next thing.  And the cycle will endlessly repeat itself.

So to summarize, embrace the miracle of infinite desire that exists within you, recognize that whatever you are stressing about and aiming for — whether you achieve it or not — will be your new normal in the near future, and that because there’s no greener grass on any other pastures, learn to appreciate how satisfying the grass right under your feet is.

Cutting Out the Noise

I keep noticing a recurring theme in my hobbies and in business: cut out the noise and focus only on the essential.

It seems so simple, but the fascinating thing about life is that the things and people we encounter so rarely do cut through the noise.  Instead it seems like most endeavors of consequence are messy, complicated and hard, and it’s not always clear why.

When you approach almost everything with the mentality of “how do I cut out the noise?” life becomes a very magical experience where a little effort in the right place can yield big results.

I think can think of at least 3 areas of my own life where cutting out the noise yielded big results.

First up is playing the piano.  I took traditional piano lessons for about 8 years and spent literally thousands of hours learning, practicing, and occasionally performing.  But for all my hard work, if I heard a cool song on the radio, the idea of playing it on the piano without every note written out was hopeless.  I could play these amazing, technically difficult, beautifully written classical pieces, but I couldn’t play the simplest pop song.  What the hell?

So I bought a bunch of books like “how to play the piano despite years of lessons”, Jamey Aebersold jazz lessons, the Jazz Piano book, DVDs on playing by ear, learn to play Gospel Piano, and a few others I can’t remember.  I learned a little from each of those courses, but the one course that really shined through was the cheesily-marketed “learn to play by ear in under 20 hours” course.

This course dispensed with all but maybe 5% of music theory, disregarded scales, and ignored just about everything else from “traditional” piano teaching methods and focused instead on a few key principles: to figure out a song, start with a few notes, then figure out the chords but you know it’s only going to be 1 of 4 chords for this reason, use a few different variations with your left hand, and a few other nuances and that was it.

Earlier tonight, I was playing off a chords-only version of Hallelujah by Jeff Buckley, my wife heard me play it, asked me to teach her, and so I shared the play by ear method with her.  She also had taken about 10 years of lessons and got a lot out of it but was left helpless against pop songs without the music, too.

The amazing thing was that in about 15 minutes, I was able to teach her enough information about the method that within another 30 minutes, she was playing that song plus 2 others by ear pretty well!  With a minimum of effort, she got a huge amount of improvement and is excited to practice now because she sees exactly what to improve to play even better.

I claim to be no piano teaching genius, and admittedly my wife has years of lessons to draw on, but the key point here is that based on all the methods I studied many years ago, I knew which one cut through the noise for me, and sure enough it did the same for her.

The second example is learning to speak foreign languages.  Like every other American high school student I took at least 2 years of foreign language study (4 years of Spanish in my case).  Four years and thousands of hours of study — again! — this time left me helpless against a native Spanish speaker.  It’s one thing to be helpless against a native Japanse speaker when you’ve never learned Japanese, but to study something for 4 years and be completely and utterly ineffective by every measure is without a doubt an education failure.

But I love learning foreign languages and so I hunted around for some third-party courses.  Everyone now knows Rosetta Stone, of course, because it’s extremely well-marketed.  Everyone’s heard of Pimsleur for some reason.  I tried those and others and found just more of the same — subtle variations on rote memorization.

But then I discovered a course that was marketed as the “language teacher of the stars” and which claimed to get you conversational in as little as 10 hours.  Like the “learn to play by ear” course it seemed incredible, literally not believable.  But I figured it was worth a shot.

So I tried out the French course.  At the time, I happend to be dating a girl who was fluent in French so I also had someone to practice with.  Amazingly, within 10 hours, I was able to conduct complete conversations in French.  I didn’t know everything obviously, but I knew the 70% of what mattered and so was able to communicate.

In fact, the course even makes the point that the English language has over 200,000 words but if you count all the words in a single edition of the New York Times, you find I believe less than 2,000 unique words.  So, you can literally cut through the noise in this situation by focusing on the 2% of words in any language that are used regularly.

Anyway, the course was absolutely amazing and cost all of $80.  If you’re interested, check out my foreign language hero, Michel Thomas, for more info.  Sadly, Michel Thomas passed away in 2007, but his courses are still available.  A very cool documentary on him is also available on Youtube.

Again, we see the power of cutting through the noise.  Four years and thousands of hours of Spanish left me helpless in the face of a simple conversation, but 10 hours of focused work enabled me to be almost fully conversational in French.  Wow.

My third and final example is business.  One thing I have learned about starting and growing a company is that you don’t don’t always know what you should focus on.  In such situations, you make an informed guess, check with colleagues and your instincts, and then make a decision.

But there are just huge amounts of uncertainty in business.  In fact, it seems that whenever there’s high uncertainty between going from Point A to Point B, you take a lot of wrong turns until you ultimately stumble on the path that gives you the clarity of being able to cut through the noise.

In business, cutting through the noise means understanding what feature of the software will make a big impact on sales and customer satisfaction but maybe requires little investment of time and energy, or what marketing approach to take, or where to sell your product, or how to position it, or any other one of a million things.

The reality is that if you knew the optimal route to build, market, and sell a product from day 1 you could do it in a third of the time it takes to bring a new product to market.  But the reality is that you will make countless wrong turns along the way, course-correct, and get back on the right track.  Only in hindsight do you develop perfect clarity about how to move ahead on things.

So there it is:

  • Most endeavors of consequence involve high degrees of uncertainty in going from Point A to Point B
  • Uncertainty = lack of clarity = lots of noise to cut through
  • Cutting through the noise is hard and non-obvious, but once you’re able to do it, the results are spectacular

The Power of Frames

I recently read Pitch Anything by Mr. Oren Klaff and one of the coolest concepts in the book was the idea of “frames.”

A frame is basically the set of beliefs, contexts, and assumptions that implicitly sit behind everything you communicate.  The author argues that when two people meet, their frames eventually “clash” and that only one frame can win out.  This concept was also discussed in The Game by Neil Strauss, but it was presented there in the context of attracting girls, not clients.

Anyway, after I finished reading Pitch Anything, I have been blessed with a special insight into how I and others think, and to the social dynamics underlying most business transactions.

Take sales, for example.  When I first started out doing sales, my mentality was always about understanding what the client was saying as precisely as possible and, to the greatest extent possible, providing him with exactly what he requested.  But it turns out that’s not the best way to do business.  Often times, I’ve found, people respect when you challenge them because they see it as an opportunity for growth.  I realized one day that with myself, when someone challenges me head-on, I find them really interesting and then start engaging about why they disagree.

So, basically, I stopped unconditionally accepting the frame of my client, and started to present my own frame.  I don’t have to “win” the frame discussion, but at least today I get to mentally decide what I want to do and recognize what’s happening.

Another example is when I was out raising money for Omedix.  In that context, the frames concept was ESSENTIAL.

I don’t know why, but somehow when you’re asking for money from someone the default view is skepticism.  The objective is not to reinforce your already esteemed reputation, but to challenge the notion that you in fact have no idea what you’re doing and are stupidly pursuing a worthless idea.

And there it is again, the frame game.  Either I agree to accept the investor’s frame — that I’m actually quite clueless and would be a terrible investment — or they eventually come around to accepting mine — that I’m special and they’ll be very happy a few years from now that they invested.

I remember one investor in particular — for whom, incidentally, I have great respect and have learned a lot! — told me that he thinks our market is too crowded and too mature, and there’s just no opportunity left.  That was an assumption with more assumptions and beliefs underlying it that had to be challenged before we could do business together.  In that case, I was able to respond in writing, and so I took the time to deeply think through all the reasons I disagreed.  Ultimately, I’m happy to say that story had a happy ending.

I think the final context in which the frames concept shows up in business is when I’m meeting with other CEO’s.  I remember about 3 years ago I went to the Health 2.0 conference and met a CEO of a health content company.  They were a growing company, profitable, and making revenues in the millions at the time.  My company was — at least in my mind — very small by comparison.

I was curious about his business model since it was all based on advertising and I’d been reading recently that advertising as a primary business model was starting to die (a trend I think which never really bore out), but anyway, I decided to approach him and ask him his thoughts.

Me: “So I understand you guys are basically an advertising model, and your job is really to attract more traffic to your site to have more impressions for advertisers.  I’m curious if you see yourself sticking with that business model long-term?”

Other Dude: “Are you kidding?  Of course we are.  Thanks for your question.”

And with that, he turned away and started conversation with someone else.  And what did I do?  I hung my head down and walked away, too.  In that situation, I let his frame of “I am a savvy businessman, highly successful, and don’t need to explain myself to anyone who dares to insult my company” dominate my frame of “I’m curious about other company’s business models.”  It’s a silly, trivial example, but at the time, I just didn’t have the confidence to stand up and push back.

Today, when someone throws that kind of attitude my way, I interpret that in terms of frames, and start making mental calculations about whether I choose to accept his frame or challenge it.  It’s a wonderfully empowering concept.

Anyway, my summary points on all this are:

  • The concept of frames is very cool.
  • They come up in business all the time.
  • It’s okay to disagree with people and assert yourself and your frame.
  • Sometimes people even respect you more for it.

The Fundamental Entrepreneurship Challenge

Thrashing n. To expend a disproportionately high amount of energy relative to the quality of output you receive

When I was younger and looked at successful companies, I simply could not for the life of me understand how they ever went from NOTHING to what they were today. The modern equivalent would be like asking “How did Jamba Juice launch hundreds of stores across the country? How did that start?” It made sense to me that if you raised a massive amount of money and then immediately bought all the capital equipment and hired all the people you needed then you’d at least be capable of serving all the customers, and that the massive revenue from the customers would balance out your massive expenses…but how did it all come to be from NOTHING? It seemed like magic to me.

And from this line of thought I embarked on what I believe is the fundamental fallacy of entrepreneurial thinking: asking the question “what does a company need to do to succeed?”

What’s wrong with that rather innocent question? Well, it’s missing a critical component that ultimately matters more than anything else.


If I were speaking to my self from 10 years ago today I would make a very important point of clarifying that the real question is not how can you grow a company to be successful. The real question is, how can you learn to be successful in the shortest possible time?

A college professor once told me: “Given enough time, every single one of you could completely master the subject I’m about to teach.  But the problem is you don’t have enough time and neither do I.  So you’re going to have to figure it out in one semester while you take all your other classes, too.”  What a perfect example of the same phenomenon.  When you go to school, the question isn’t “what can I do, no matter the cost, to get the highest possible grade in this one class”, the question is “how can I get the best grades in all my classes this semester while still having lots of time for fun?”.

I would say for myself that I have experienced more personal and business growth in the last 12 months than in the prior 3 years combined.  One of the fundamental differences?  I’ve started imposing more constraints on myself than just “learning how to be successful.”  I think about how I spend my time on each of my days.  If I feel like I’m thrashing a little bit (see definition at the beginning of the article), then I know something’s wrong and I invest some time to assess what’s going on.

I think one of the main differences for myself is that in the past year I’ve been fortunate enough to find some amazing mentors.  These are people whose accomplishments I am blown away by, who I have a great personal relationship with, and who are willing to give me input on ambiguous issues that come up.  After enough conversations, you basically start to pick up the same patterns of learning and the lessons that they accumulated over a lifetime.  Mentorship, I’ve come to realize, is literally the primary mechanism through which society evolves itself.

I mean, think about it.  If you didn’t know how to write but you knew how to speak, how ridiculously hard would it be to invent this concept of an alphabet, which combines different “letters” together to form “words” which are expressed in “sentences” which are organized in “paragraphs” and annotated by “punctuation.”  Writing is such a basic thing and yet figuring out writing from scratch would take probably a millennium.  But learning writing?  Well, a few years in school.

That’s how it feels since I’ve been fortunate enough to find mentors.  The “learning on my own” process is shortcut by about 99%.

When I think about how much thrashing I’ve done at different periods in my business career, it just makes me sad.  As Mark Cuban says, you can make as many mistakes as you want in business as long as you don’t make a really big one.  So, yeah, I avoided a really big mistake, but I think about how much time I spent on some things that one great conversation with the right person could have saved me from.  I mean, really, think about it.  The idea that a single 1-hour conversation could save you months of work?

And that’s really what it comes down to in the end.  The enemy of entrepreneurial success is not failure.  The real enemy of entrepreneurial success is thrashing.  What would you rather be?  Moderately successful at age 30 where you have another 70 years to apply the lessons you have learned, spend money, earn money, love, live life, grow, etc.  Or ultra-successful at age 80 where you’ve spent the bulk of your life learning how to actually figure out how to be ultra-successful.

Life, of course, rarely presents such black & white choices and the greater point here is really about how given enough time, sure, just about anyone could learn to be as successful as they wanted, but that time is precious, and scarce, and should be spent thoughtfully and purposefully.  A day spent making awesome progress on something you care about is infinitely more satisfying than a day spent thrashing.


The Technical Founder: Strengths and Weaknesses

“We are hugely in favor of the technical founder. We will generally focus on companies started by strong technologists who know exactly what they want to build and how they are going to build it.”
- Marc Andreessen

I’ve always prided myself on being a “technical founder.” Basically, it means that if I were hired as a dedicated software engineer I could make a pretty meaningful contribution to a software product, but that my primary role is to guide the growth of the company as CEO. I used to think that being a technical founder was an absolute advantage over non-technical founders since not only could I do the business thing, but I could really understand at a deep technical level how viable something is, and I also know what’s possible, which enables me to come up with product ideas and visions that non-technical founders might not be able to.

But life has this funny thing where our biggest strength can also be our biggest weakness. The trick is being honest with yourself about what they are.

On the positive side, being technical is wonderfully empowering. When I talk with our development team, we review details down to the database diagrams and how that will ultimately affect the product vision. I know with confidence at a deep technical level how powerful our software is and how that power can be leveraged in the future. I can formulate ideas for products based on knowledge of our database schemas, recognize problems that have high value to a client and are technically less challenging, or have an appreciation for those problems — like online registration, for example — that are actually quite complex and require considerable thinking.

I realize I love technology so much that these conversations are pure joy for me.

On the negative side, though, loving technology so much means you think in terms of technology. During engineering or product development meetings that works great. But when it comes time to put on the CEO hat, a mindshift is required. Because in CEO mode, those technical details are not empowering. In fact, they’re the opposite, they just get in the way.

Earlier today I had the opportunity to speak with an accomplished healthcare IT entrepreneur who could probably reasonably consider himself technical as well (MIT graduate). As I reflected on our conversation, I realized that there were moments in our conversation where he asked me questions that had a business — not technical — spirit behind them, yet I answered as if I were an engineering consultant, not a CEO.

The problem? My technical mind interprets his question first and foremost on a literal level and launches into a literal response! And sure enough that’s exactly my comfort zone! Comprehensive, technical responses.

But the funny thing is when I’m surrounded by businesspeople who only want to speak in high-level terms and I absorb their high-level mindsets for a small amount of time, I find I quickly adapt to the high-level thinking. Questions asked with a business spirit are answered in a business spirit, even if they have a technical element to them.

And this is the domain of the CEO. You step outside of the trees and speak only in terms of forests. You use the background technical information as minimally as possible, calling on it only when the situation makes a special request for it. You transfrom from being precise and comprehensive — a critical trait when designing software — to being loose and general.

Sometime this year it finally dawned on me why the CEO has to speak and think in these terms: because no one else cares about your details. They only listen to what your “proposition” is and then make a decision about whether you appear legit or not. The details simply aren’t important.

And sure enough we see this phenomenon in other spheres of life, too. I was SHOCKED to discover that one of the worst ways to sell software is to show it. Instead, the more you talk about it and the less you show it, the more inclined people are to buy it. Why? Because most people don’t care about details.

To summarize the conclusions in this post:

  • Being a technical founder is awesome
  • But watch out for situations where it gets in the way