The Anatomy of a Software Company, Part One
Many of us frequently make decisions about what software to use and license, but rarely do we truly understand the heart and soul behind the software – the software development company. Coming from the perspective of somebody who has been building software companies since the 70’s, and who was part of the Microsoft team in its early years, I would like to share my thoughts on what you might consider when choosing a software platform. My most important point is that it is a fundamental mistake to simply choose what you perceive as the “best” software solution – you need to choose the right software company.
I will share with you the priorities I strive for when building a company. I would propose that these are the same characteristics that you should look for when evaluating the company associated with any key software solutions you might be using.
Top 10 Characteristics of a Successful Software Company.
- Honesty and Integrity
- Technical Talent
- Stability
- Customer Focus
- High Energy
- Control of Technology Platform
- Respect
- Correct Balance Between Present and Future
- Great Prioritization Skills.
- Innovation
Today I will discuss the first three characteristics and will elaborate on the others in subsequent blogs.
1. Honesty and Integrity.
In businesses today, pure and unmitigated honesty and openness is not as frequent encountered as we would like. A few companies have ethics codes that permeate every action, communication, transaction and priority within the company. For many companies, however, honesty is there when convenient, but they will look the other way when that’s easier or seemingly more profitable.
As a customer, when you are dealing with an honest and ethical organization, you understand where you stand, as they will share with you both the good news and the bad news. All companies have humans and human error, but the honest company will take responsibility for any such errors, and be forthright to focus on correction.
There is, in fact, no reason to ever be dishonest in business. Customers will find out about the dishonesty sooner or later. The bottom line, in our opinion, honesty and full transparency is the only way to operate – and it wins out in the end.
2. Technical Talent.
This is a tricky subject because if a company was able to compete at all in a highly competitive market, they probably had some technical talent to win those initial customers. The challenge is that for many companies holding onto talent is difficult. One truth that I have learned repeatedly throughout my long career is that a single talented engineer is as valuable to a company as 10 average engineers.
In another blog from a few days ago, I suggested that to fully evaluate a company’s product you should be able to interview one or more of the engineers and confirm their mastery of the underlying source code. This might be harder than it seems, however, because of the difficulty in identifying technical talent from a single meeting. If it was easy, then hiring would be a breeze.
What Did Microsoft Do In Their Early Days?
I learned the value of hiring only the brightest engineers from the early days of Microsoft. Clearly Bill, Paul, and their other early contributors did a lot of things right in their formative years. But if I were to identify one of their most successful secrets to building the business, it was their unwavering commitment to hiring “only the smartest engineers.”
Because most of Microsoft’s early hires were right out of college, they did not always get it right, but they were always prompt at evaluating the talent once onboard and were quick at asking those who did not reach that high bar to leave quickly.
What is the Effect of Today’s Acquisitive-Hungry Business Climate on Technical Talent?
In the software industry, and in particular the K-12 software industry, there seems to be a trend that is counter to this basic premise of having the smartest engineers. Frequently these days, software companies are being purchased by larger companies. Then when the larger companies focus on trying to make their acquisition more profitable, they tend to keep the lower paid employees and release the higher paid contributors.
What they almost universally do not realize until it’s too late is that a higher paid engineer might be paid twice as much as a lower paid engineer, but their contribution can be 10-20x higher. By taking this “trim down” approach of an acquired software company, the net effect is almost always to remove the core competencies, thus dramatically slowing down the prior pace of progress.
Why Is Technical Talent So Important?
Hiring the right people is difficult, but once you have them, the company can go further and faster than its competitors. As a customer, if you can pick out the companies with those talented people, that usually is more important than some of the details of the product you are purchasing. The right people can take you to where you need to be.
3. Stability
When you choose to use a company’s platform, you are relying on the fact they will be around and able to support you and the platform over the next several years. Nobody has a crystal ball, however, so it can be somewhat tricky to determine the future stability of the company.
Here are Some Factors to Consider.
A. Predict Future Stability by Looking at Past Track Record.
When there is no other information, sometimes the best predictor of the future is the past. In a nutshell, devoid of other information, the riskiest players are the new players. In addition, if a product or company has new ownership, that is typically a risky transition, so even if they have a successful track record, you should evaluate their track record with their current owners.
B. Who Are The Owners?
Companies who are owned by their employees are the most stable, as long as they also have the financial resources to survive normal ups and downs. If they are owned by investors, or other companies, then to predict their stability you need to understand the objectives and timeframes of their owners. Fortunately, investors almost always have patterns based on prior investments, so you can usually predict what sort of time the company has before a major change is going to happen.
Does “Big” Equate to Stable?
You often need to pick solutions from a mix of smaller companies and larger companies. Certainly the fit of the software to your needs is important, as is the trajectory of where it will be in a few years. But to evaluate the actual company, and whether the product is sold be a large company with a lot of people vs. a small company, is a much more difficult part of your decision.
Ultimately you want to make sure that the solution you rely upon works well, is well supported, will be improved over time, and won’t just disappear. But how do you compare a large vendor to a small vendor? I think that the most important thing is to not use the criteria of “big” vs. “small” as a data point. A big company is probably more likely to kill off a product than a small company because they have other products to which they can redirect resources. With a small company, unless it’s a secondary solution, they will typically fight a lot harder to keep a product alive and moving forward than a larger company.
C. Is the Innovator Still With the Company?
In software technology, one or a few people are at the core of its innovations. Sometimes it’s a business visionary and an engineer – other times it’s one or two engineers. This core person or team envisioned and architected the company’s solution. Only in a very rare circumstance can an original designer successfully hand off the design to a next-generation architect.
Therefore, if the original inventors are actively involved in the growth of the product, and if it is well designed, then there is a future. When that person leaves the organization, more often than not the technology growth dramatically slows down, opening the door wide for competition and eventual demise.
When evaluating a solution, your single most objective is to understand the state of the technology and the technologists. Companies and products are bought and sold. Innovators come and go. But the solutions with the best outlook in the future are those who are being led by the original visionaries or extremely strong (and unusual) second generation visionaries.
This Was The First Three: The Rest Are Coming Soon
These are the first three characteristics of a successful software company. When evaluating a solution to integrate into your operation, understanding the company will give you insight into the future of the platform you are considering purchasing. In subsequent blogs I will elaborate on the other Top Ten Characteristics of a Successful Software Company.