Entrepreneurship, Software Development

Chopping Down Trees

Strategy is a system of expedients; it is more than a mere scholarly discipline. It is the translation of knowledge to practical life, the improvement of the original leading thought in accordance with continually changing situations.

– Helmuth von Moltke the Elder

Ages ago, when I was an intern at Microsoft, I attended a big open lecture given by the (then-president of Microsoft Windows) Steven Sinofsky.  Sinofsky waxed philosophical about the organization, his vision for the company, and why Windows 8 was going to crush it. Towards the end, he opened it up for questions.  Sitting in the back, my hand shot up and I asked, “Microsoft is famous for Waterfall software development, but these days (2011), all the rage is with Agile technologies.  What gives? Why aren’t we, Microsoft, great inventor of the modern software company, using Agile?”

Sinofsky, without missing a beat, answered: “If software development were building bridges, we’re at the point in history where people are chopping down trees to cross rivers.” He believed that it would cost too much to implement this change, and too much about software engineering was still ad-hoc and/or unknown magic, so he couldn’t be sure that the benefits would be worth it.

For years, that viewpoint of how we approach software engineering as a discipline has stuck with me.  Chopping down trees.  Looking around in the forest, finding something that can get the job done, doing it quickly and cleanly, then bravely walking across the flowing rapids.

Me Building SmarterCloud this Summer

Before getting back into coding this summer, I had decided that I was going to engineer our web application architecture from the ground up.  I was going to make plans for exactly how I wanted our project to be built and deployed.  In fact, it would be so perfectly documented, automated, and repeatable that all you would need was a repository with a README and a one-click AWS CodeStar environment, and SmarterCloud would work.

Getting back into it though, I’ve discovered that this is nearly impossible in modern software environments.   My intentions were good.  My start was promising.  But before long, I was adding custom configurations for my load balancers, downloading third party tools locally to my machine and invoking them in my build system, and doing all the things I promised I wouldn’t.

Don’t get me wrong, things have gotten much much better in the last decade (since back when I had to implement my own CSS grid system in college).  But one major irony I learned in my life as a software engineer was that I wasn’t really an engineer.  I mean, let’s be honest: what civil engineers can use multiple hemorrhaging-edge paving techniques to build our bridges? A lot fewer people would survive the daily commute if they did.

I’m encouraged by the open source movement and the stellar projects I’ve been using to help build SmarterCloud.  Projects like Galen and Codacy have great open-source support and the ability to be quickly and easily extended. These products have employed software strategy well, and combined it with strong leadership to keep quality high.  But still, with all the tools I’ve interacted with or built I’m reminded of Von Moltke’s other, more famous quote: “No plan survives contact with the enemy.”

So here’s my outlook: if you are building a product, or hiring developers to build it for you, understand that there is software engineering is still 90% art and only 10% science. Have patience with software, and put more of an emphasis on quality.  That way, if you aim high and provide ample time for work to get done, when tradeoffs inevitably have to be made the ramifications won’t be catastrophic.

EDIT: There’s a great piece from Dr. Dobb’s I encountered from HackerNews that speaks to this subject in a more scientific way that’s worth the read.

Entrepreneurship, Personal

In the Trough

What comes next? You’ve been freed. Do you know how hard it is to lead? You’re on your own. Awesome. Wow.  Do you have a clue what happens now?

– King George, Hamilton

Last month, I reflected on my experience in the UChicago New Venture Challenge.  Hopefully that gave you a deep cut into what people actually do in accelerators, and what kind of programming can help fuel a business startup.

But something I am grappling with now is different: what comes next? After all the cameras are put away, the free food eaten, and the coffee meetings taken, you have to get back to the business of building a business. So, what do you do?

Here are some things that I’ve done in the last month (in no particular order):

  • Ordered chairs and monitors
  • Hired accountants
  • Printed and signed more documents than I can count
  • Seen Hamilton with my wife
  • Gotten a haircut

It sounds silly to enumerate it, but I think it’s a really important topic that no one blogs about.  There are literally oh so many blog posts about the joys of fundraising and #StartupWinning that it’s easy to feel like the path to success is always up and to the right.  But did we all forget this?

Hopefully the Crash of Ineptitude is Not Literal

The period of time after the New Venture Challenge is what a lot of people have called “the trough of sorrow” or “the trough of disillusionment”.  Am I sad? Am I disillusioned?  Not really.  I’m very fortunate that I have a loving family and supportive peers.  But, I am definitely in a trough.  There is no way to sustain the breakneck excitement and pace of an accelerator like NVC.  In fact, you wouldn’t want to.  The point of accelerators is to temporarily accelerate development.  You make a trade-off, sacrificing things like technical debt and incomplete financial models for current growth or capital.

So after your TechCrunch moment, it’s important to realize when you may have entered the trough.  Being in the trough feels like checking emails multiple times an hour but your inbox doesn’t update.  Being in the trough feels like sending colleagues emails that they don’t respond to until they return from vacation.  Being in the trough feels like missing spontaneous phone calls that supportive peers and mentors might have made before.

Personally, I am dealing with this by reminding myself of things I have to be grateful for (not surprising, given the psychological research showing this is a vital part of wellness).  But another important part of this experience is to admit that you’re in a trough and just roll with it.  It does such a disservice to entrepreneurs nowadays that we expect everything to be #disruption, YCombinator, and massive massive massive fundraising rounds.

Building a business should, in my opinion, be about building long-term value for people for whom you want to change the world.  That often comes with periods of intense dedication and sacrifice to get your startup where it needs to be.  But the investor and entrepreneurial communities should present the situation with a little more balance.  Instead of expecting breakneck awesomeness that never stops (which can only lead to inevitable disappointment and schadenfreude), we should expect businesses to be punctuated by intense periods of deceleration to complement hard work. Acknowledging that reality is the first step.



Reflections on UChicago New Venture Challenge

It’s the weekend after the University of Chicago Booth School of Business New Venture Challenge (21st edition).  It was an incredible experience, and an incredible cohort to be a part of.  At the end of the day, the judges were so impressed with all of the finalists, that they threw in an additional $50,000 in cash prizes.

giphy (3)
New Venture Challenge 2017 Judges

Beyond expressing pride in my team and my school for the incredible amount of dedication, effort, and intelligence everyone showed, I wanted to put together a few of the lessons I learned during the process.

So what is the New Venture Challenge? Well, some say it is an accelerator (and a #1 ranked one at that).  Some say it is a “business plan/launch” competition.  Others simply say it’s a business school course.  Here’s how I would put it.  You take your idea, your business, or simply a great team, and see how far you can take that in ten weeks. The best ones get a brief moment of glory, bragging rights, and a little bit of cash.

Tactically, the class is run as follows.  Teams apply in February to be accepted into “Phase II” (Phase I is presumably the application).  Of the 78 teams that applied this year, 32 made it to Phase II.  Those 32 teams each pitch twice over the course of the next 9 weeks.  A pitch consists of 12 minutes presentation, 14 minutes Q&A.  Off the backs of those two presentations and a formal 20+ page business plan, 11 teams make it to the NVC Finals.  Held over the course of one glorious day, each of the Finalists gets at least $10,000, with the winner this year taking home $100,000.  The format for the Finals is similar to the first two pitches, except with more judges and (this year at least) Q&A shortened to 11 minutes.

So what did I learn from these ten weeks of madness?

  1. There Are a Million Ways to Skin a Cat – For people who have been around entrepreneurship long enough, this will not be a huge surprise, but it bears repeating: each business plan is unique.  I’m not talking about what the actual business does, but how it is executed.

    Those of us who are familiar with venture capital and the movie The Social Network often think of new business creation as pumping a ton of cash into something that can grow 30% each day, climbing the elusive hockey stick of glory, and hopefully, maybe, possibly, one day printing out $1 billion in profit per week.  But that’s not the only way to build the next game-changing company.

    ClostraBio, this year’s 4th place winner, is going to invest their prize in clinical trials so that five to seven years down the road they will be the go-to pill for allergy relief.  SwitchedSource, this year’s runner-up, has incredible technology and some revenue already, but needs to invest in huge capex so that they can ultimately become the energy distribution platform of tomorrow.  And SmarterCloud, led by yours truly and coming in 5th place, may have to play to the more traditional VC land-grab game where we get big fast to become the premier brand in insider cybersecurity.  But these can all be successful business models.  In fact, one unfortunate aspect of NVC is that this year there were at least 8 different business execution approaches by my count, so judges were forced to pick between apples and oranges (or more like apples and reindeer). Which leads to…

  2. Keep Your Friends Close… – Although there were many different business execution strategies, each company had one thing in common: they were seeking investors to help them accelerate and meet their goals.  Many of the judges represented Chicago VC firms and brought different lenses to their questioning.  At the end of the day, the winners were determined by how these judges answered a simple question: “Would you think of investing in this startup?”

    SmarterCloud scored 10 out of 24 on this question.  10 judges said they would think of investing in us.  If you’ve ever taken a test, you’re probably thinking “Damn, you failed!”

    giphy (4).gif
    SmarterCloud Getting a 42%

    Well, actually no.  See, as an entrepreneur, if you’re in front of a room of investors (say, 24 of them), your goal is to get 1 of them to say that they would invest.  Seriously, this is not me making rainbows out rain, this is your actual goal.  Not only do you not actually have room on your cap table for ALL THE THINGS, you also want only the investor(s) who believe in you the most.  So your goal is to find the one person who will invest in you and your team, and then leverage their capital and expertise to execute flawlessly. But before you find these people, you should…

  3. … Keep Your Enemies Closer – Maybe “enemies” is a strong term.  But having competition brought out the best in my team.  Not in a negative “we have to crush them” kind of way.  In a positive “damn, did you see what they just did?” kind of way.  When everyone continues to raise the bar for each other, it forces you and your team to up your game.  By the end of the competition, my team executed our presentation perfectly and knew our business plan inside and out.  Beyond that we had brought in a major enterprise client, three all-star advisors, built live demos, and been accepted to 2 major accelerators.  That reflects well on my team, but it reflects even better on the intense environment we were put in throughout the course of the competition.

    If you’re thinking of going into an accelerator, make sure the cohort, programming, and investor communities are extremely strong.  That is what will fuel you and your team to a strong finish.  After you get your first funding, a passionate team and great office space can provide competitive fuel that will enable these kinds of successes.  But if it’s early days and you’re just starting, accelerators and business competitions can provide great creative fuel.

  4. Money (or …) Talks, All Else Walks – The ellipses here represent tangible assets like patents, demos, users, etc. It’s hard for investors to get comfortable with ideas and teams. And with early-stage business plan competitions, accelerators, and other events like this sometimes that’s all there is.  But what if someone else thinks of your idea (or just watches your pitch)? What if one of your team members leave?

    Every team that received money in the New Venture Challenge had something tangible to announce.  And while that wasn’t enough to get you into the finals, it was definitely table stakes.  We can talk more in depth (over a beer or two or ten) about what the appropriate level of risk-taking is from the investors you bring on board, but if you are building a company to have the most options available, here’s why tangible proofpoints matter:

    • Patents – Prove you can sue someone if they try to do what you do
    • Demos/Product – Prove you can build what you say you can
    • Testimonials – Prove that there is actual market demand for your product
    • Other Investors – Prove other people believe in you and have vetted your idea
    • Money – Proves customers need you so badly that they opened their wallets

So what’s next for me? After as intense an experience as the New Venture Challenge, I’m looking forward to taking a little time off with the fam, and getting back to coding our core product.  We’ll also be bringing on new investment partners in the coming months, (if you’re an investor interested in insider threats and cybersecurity, hit me up).

Being on camera with the lights and the mics was, frankly, awesome.  But after I had taken it all in, given my pitch, and gotten the final results, I realized I was ready to get back to the harder work of serving customers.  Hype is great.  But I guess the final lesson (#5 if you’re counting at home) that I had reinforced by NVC is that businesses are only as good as the customers they serve.  You can be very successful without turning a profit, you can be very successful even without having any revenue, but I don’t know of a business on this earth that can succeed without customers.

So if you’re wondering whether to take investment, or do an accelerator, or just bootstrap it on your own, know that hype and capital are just ways of stealing future profits for current growth.  And that’s fine.  But they’re not ends to themselves.  A company’s longest-term source of financing is their customer base.  The New Venture Challenge was incredible because it provided an environment and cohort that drove us to discover and design the best product for customers whose lives we want to improve.



Don’t Build Your Own (Crappy) Tools

We’re getting into building our product at SmarterCloud and are starting to make early choices about what kind of tools we’ll use.  Findbugs? Jacoco? Gradle or Ant? MySQL or Postgres? Maybe something new and fancy like Mongo or DynamoDB?

For non-technical folks, this is basically like asking “Phillips or flathead?” No one’s arguing that we need a screwdriver, we’re just figuring out which one we like best and how it will play with all of the 2x4s we’re sticking together. At any early (or even) late stage company these questions are revisited on the daily.  Tooling is so important to modern software engineering that there are literally thousands of blog posts devoted to scaling tools and testing them[1].

So instead of diving into the specifics of what we’re using, I just wanted to give advice to anyone who is building a startup: use tools until you just absolutely cannot take it anymore.  Don’t build it yourself.  Building it yourself is crap.

As far as I can tell, a startup is about adding value to the world for your customers.  What the product does is highly relevant.  How the product is built is highly irrelevant.  Great, you built The Great American Database. Unless you’re competing with Oracle who gives a crap? Maybe Marc Andreessen will think you’re a badass coder, but in my estimation you now have to write code to update your B-Trees rather than using open-source software that will do that for you[1]. What a goddamn nightmare.

giphy (2).gif
What happens when you build your own database

Startup leaders should focus on:

  1. Recruiting top talent
  2. Deploying infrastructure to enable your talent

The more of that infrastructure that’s homegrown and not core to your value proposition, the more you are going to distract your top talent with bugs, late night pages, and a general mess. You should be so lucky that you hit scale where the existing tools are falling down on themselves.  Suffice to say, when I was on the Amazon Alexa we reached a scale that >90% of startups will never reach within our first year and there were lots of tools that continued to work just fine.

giphy (1)
Ron Swanson loves FOSS

It’s easy to lean toward “owning things” because it makes us feel comfortable and/or accomplished.  However, with free and open-source software plus cheap cloud infrastructure, this makes absolutely zero sense.  Today’s best engineers take pride in building intelligently, not just building for building’s sake.

[1] I only linked Aphyr because he blows it out of the water in terms of depth of knowledge.  He’s worth the exclusive link.  But there are a ton of other good ones to find too.

[2] When I was at Hadapt, we cracked open the PostgreSQL source so we could use their front-end (they have a bunch of great shortcuts enabled including history searching and an in-place Vim). Hooking this up to a back-end (not even with a rewrite, just figuring out how to inject the C++ objects into Java code) took two engineer-teams six months.


Pursue Your (NVC) Values

Last Thursday, the New Venture Challenge application was due and I’m still trying to catch up on sleep.

Before we find out, I want to write a post sincerely congratulating all the Boothies that applied to the NVC.  Hopefully one day when we sell the company we’ll be as fly as Leo.


I’ve been thinking a lot lately about why certain people choose to pursue various things in life.  Which is a kind of obtuse way of saying, “Why are you doing that?”  The old adage is to “pursue your passion”. Ben Horowitz offers a new take on this by encouraging us to “pursue our contribution” and make sure we’re adding value to this world.

When interviewing at Microsoft for a college internship, I had a PM tell me, “You know, I could be curing cancer and saving millions of lives, but instead I work on Windows and impact over one billion people”.  How should we respond to something like that? Impugn the person for not conforming to our values? Be impressed that they have calculated their “life contribution” so specifically? Or perhaps we should just recognize that the way they view the world is very (very, very) different from us?

Recently I’ve started to think that instead of passions or contributions, people should pursue their values.  Which is to say, find out what matters to you in life, prioritize the hell out of it, and execute.  How is this different? Well, my passion is coffee.  If I could drink nothing else and not be unhealthy, I probably would.  But, I don’t think I’m going to be a professional coffee drinker any time soon.  My contribution is coding.  I know I’m good at it, and currently coding adds a ton of value to this world.  But after working as a professional software engineer there were still some itches I had yet to scratch.  My values are more generic: family and creativity.  The most important thing is that I work hard to have a healthy, happy home like my parents created for me.  The next most important thing is that I create businesses and products that work. Those are my values.  Using that as a generic framework that guides me ensures that I won’t get caught up continually trying to measure the value (lives saved or clicks?) or be upset if there’s a day at the office I’m just not feeling it.  Pursuing my values means that as long as my priorities remain relatively unchanged I’ll have a steady, yet flexible compass.

And this insight makes me think of the Boothies tirelessly slaving away at their NVC applications. (Sidenote: #whybooth — because the school puts an incredible amount of resources and energy behind you, including assembling an amazing cohort of classmates).  Business school is incredibly time-intensive and it’s easy to be pulled in a million directions.  But these classmates have prioritized ruthlessly, dug in deep, and taken a huge bet on themselves and the startups they’re dreaming up.  For weeks and months they conducted hours of customer interviews, worked through dozens of prototypes, and crafted their messaging until they had to let go at 9:59:59AM.

Just being a part of that kind of group makes me proud.  So, if you submitted your app congrats on making it this far.  And to my team, thank you for all your hard work and I really hope that SmarterCloud makes it in!  I pledge to you to always pursue our values.  That way, no matter what the outcome is, we’ll be happy we made the effort.