There is an old cliche in business: You’re either growing or you are dying, there ain’t no in between. Given the mind-bending pace of innovation in the technology sector it can be said that this old adage is at least as true if not truer for software companies as it is for any business out there.
At Ascendle, thanks to the fact that great software companies are our clients, we are in the fortunate position of having front-row seats to seeing exactly what it is that they do to set themselves apart. This is my list of the top 4 things I’ve learned by watching the best of the best.
1. Growing a Software Company is a Marathon, not a Sprint
The title notwithstanding, great software companies organize themselves into sprints.
Let me explain.
What I really mean by this is that great software companies are led by people that have emotionally accepted something that very few of us have. That is that change should be embraced, celebrated even. Great software companies know that in essence they are in the change business, and they organize themselves for it.
Most of us know intellectually that nothing is constant and things are always changing. But do we embrace it? Do we choose to love it? Do we plan for it? The difference between knowing change is constant and embracing that fact is the difference between good and great. Good is getting a new software release out the door and raising a glass to a job well done. Great is doing this while knowing and accepting that the work on that product has just begun. Great software companies truly and fully accept that process of change is itself never going to change. They take on a marathon mindset and the very processes of their businesses adapt to this more accurate paradigm.
Great software companies have embraced concepts like Agile software development and frameworks like Scrum to know what features to be working on next. By focusing on the work in front of them, great software companies get comfortable with – even excited about – the fact that the product they just pushed out has lots of room for improvement.
2. Define Success from the Customer’s Point of View
The customer is always right, right? Well no, not exactly. However a happy and successful customer is always something quite different than a dissatisfied customer. Great software companies understand how to make their customers successful regardless of whether their demands are in the purest sense “right.”
Almost by definition, if someone is buying something from you, they have made the admission that they are not expert in making or providing that thing. Presumably you are. You ought to know more about that thing than anyone else, including the customer. However, just because a customer might not understand the intricacies of your technology, doesn’t mean that their wants and desires aren’t real, or that there isn’t an opportunity in satisfying those needs.
The job of a great software company is to translate what is asked for into the thing that successfully addresses the underlying need and to provide that. The best tool I’ve seen for capturing real underlying needs is the user story. User Stories capture in a single sentence WHO wants something, WHAT they want, and WHY they want it. Bullet point acceptance criteria can be used to further define what success is going to look like for a given feature or product. By employing user stories and acceptance criteria as the bottom line of product and feature specifications, great software companies maximize the chances that their products will delight when they hit the market.
3. Don’t be Afraid to Outsource
It is hard enough being great at one thing; being great at multiple can be extremely challenging.
Great software companies have challenged the not-invented-here syndrome. Very often they find that they can buy a service more effectively and with far less headache than trying to do it internally. Sure they have a core that is theirs and only theirs, but usually that core is smaller than an average software company is willing to admit. By subcontracting the work on everything that is non-core, great software companies free up their internal resources to focus on the true core work that sets them apart.
By way of example, anything that can be shipped out of band (without waiting for the next release) is almost certainly not core. This includes things like plug-ins, connectors, mobile apps that extend the core product, or early forays into deploying an application on a new platform (SaaS perhaps) where at the start the functionality will almost certainly be limited to the most basic functions.
For a Smart Guide on the dos and don’ts of software outsourcing, check out our eBook here.
4. Create a Mobile Strategy Rooted in Reality not Hype
When it comes to mobile strategies there is such an overwhelming volume of information and opinions it would be natural for any business leader to want to put his hands over his ears and scream. This leader might arrive at one of two strategies. Strategy A: We had better transition our entire business to mobile or we’ll be out of business. Strategy B: I’m in the insert-mature-industry-here business, nobody is ever going to ever do that with their phone.
In our experience both of these hype-based strategies contain elements of truth, but they both make some assumptions. With some willingness to really look objectively at how mobile fits into customers’ workflows, there is a good chance a more nuanced strategy can be found that can produce excellent outcomes.
A coherent mobile strategy is cross platform and probably uses a tool like Xamarin, that allows sharing close to 90% of the application code across multiple platforms. It accepts that iPhones and Android devices together have become ubiquitous, but neither is completely dominant. A real mobile strategy acknowledges that there is probably some way in which your product or service could be improved by empowering your customers with an app, but you can’t make assumptions about what device they use or try to force them into using one or another.
Just as important, great software companies don’t build an app just for the sake of having an app. They spend time defining (often with user stories) where exactly value can be created for their customers; they decide on an MVP (Minimum Viable Product) and they take the plunge. It is only a starting point. Great software companies know they will need to iterate new versions from there.
For more information on any of the topics covered check out some of the links below: