Software-based businesses come in many different sizes and shapes: SaaS or cloud-based, mobile, open-sourced, consumer, SMB and Enterprise, etc, etc. Even many successful “hardware” companies could really be viewed as software companies, as they are in fact driven primarily on novel software or firmware under the hood. With the diversity of form factors, it’s very hard to generalize what makes a great software company.
But I believe that there are some common factors among the great ones. It’s much easier of course, to take a look at successful companies and work backwards in a postmortem fashion. The problem with this approach is that you tend to see a lot of “revisionist history” utilized when folks tell the story of what made a company successful.
Institutional technology investors have their own pretty well documented list; in general it goes something like this:
- Strong Management Team with relevant experience in the space
- Distinct competitive advantage, usually via breakthrough, defensible technology
- Product/Service that addresses a serious pain point felt by the target customer
- Large market opportunity
You’ll see various flavors of the above list and ordered in a variety of ways, but I think this is a pretty good representation of what VCs and other investors say they look for before they’ll write a big check. When discussing what makes great companies, there’s no doubt in my mind that the list above is valid and important. But I think it’s also incomplete. Here’s a few criteria of my own that I would add:
Management team chemistry
I’ve seen a whole bunch of management teams that looked like a great group on paper from a skills/experience viewpoint. But in practice they couldn’t work together for a variety of reasons: excessive competitiveness, selfishness, incompatible personalities and different communication styles are a few common reasons. As an example, I often see hard-driving CEOs with Type-A personalities who hire exclusively in his/her own image. The resulting management team often resembles a pack of hungry dogs fighting over a single piece of meat, with everyone fighting to be in the lead. Putting together a management team with good chemistry and mutual respect is more art than science and requires a leader with refined sensibilities in the “softer” aspects of management practice.
Lack of management arrogance and openness to learning
Management arrogance can be a big problem that you find with people that perceive themselves as very successful. Sometimes they start to believe their own headlines and think they have all the answers. The problem is that when leading a software company the certain answers of yesterday can be the disastrous strategies of tomorrow, as software markets change so rapidly. I find that most leaders who are able to take their companies to greatness are not so full of themselves that they won’t listen to other internal and external voices. This is an attribute that enables management to navigate the treacherous road up the software industry food chain and raises the odds of taking a software business all the way to the top. Of course there are some famous leaders of large software companies that don’t fit this description–but I believe they are exceptions to the rule.
Realistic self-evaluation at every stage of development
To maximize the potential of a company to reach greatness, it’s important that once you’ve had some success you don’t get become over-enamored with it, or over/underestimate what more is possible. At every stage of a company’s development the financial resources, personnel resources and realities of your market dictate what’s “possible” going forward. It’s sometime very hard to self evaluate where you’re really at as a company; some people are natural optimists and others pessimists. I’ve always felt that a little bit of marketplace paranoia is healthy in a management team. But the closer you can get to “reality” in your evaluation of what’s really possible, the more likely you will be to optimize that next step and keep moving forward on that long path to greatness.
Positive overall company culture
I believe that this may be the most important factor of all when it comes to a path to true greatness. There’s an old American football saying that “it’s not about the X’s and O’s, it’s about the Jimmy’s and Joes”. For those of you who aren’t sports fans, it’s just a funny way of saying that coaching (management) can only do so much; it’s the players (company staff) you recruit that really make it happen. In my opinion, this is very, very true and means that getting the best people possible really makes the difference in how successful a company will ultimately be. What is the biggest factor that allows you to recruit great people? In the long run, it’s a positive company culture that the current employees really feel good about, which allows you to recruit great new people.
Those are my thoughts on what it takes to have a GREAT–not just good–software company. What would you remove or add to the list? Leave a comment below with your own criteria for software industry greatness.