Many founders around the world want to build software companies that constantly have new projects queued up and always deliver high quality.
Few will come out on top – the competition is strong, there are never enough clients and great developers are a diamond dozen.
But successful companies show that you can thrive in this tough environment. I’ve spoken to founders of market leading, go-to software development companies in B2B, some with hundreds of employees on-board.
Here’s what I learned about the road to building a strong software company from founders of 4 companies – Arkency, Netguru, Polcode and Software Mill.
How successful founders run software companies
1.Big clients & huge projects
A big, juicy project from a big name company can jumpstart your early stage growth, undoubtedly.
But it can become an addiction, definitely one of the unhealthy kind. You can’t depend on just a few clients to keep providing your developers with new projects.
These projects are hard to manage – they often stretch out and freeze a big part of your team for an undefined period of time.
One rule of thumb for this is to avoid delegating more than 1/3 of your team to one project. If a client’s project demands half of your team, agree only when you can fully trust that client.
Another way to look at it is that you shouldn’t allow any project to account for more than 10% of your revenue. Which is easier to achieve the bigger your company becomes. Getting to that point means that when one project is unexpectedly terminated, your team is still earning money on at least 9 others.
2. Burning money because of project delays
You’ve got to pay your developers regularly. That means that if you don’t keep providing new projects, you’ll be burning money.
But you can delegate your team to side-projects that might prove benefitial. Internal company projects, mentoring, training and workshop sessions will boost your team’s performance. Writing content for a company blog (or answering questions on Quora/specific dev communities) and attending industry conferences around the world – these things will give you marketing results even without a marketing team.
Avoiding this problem alltogether is hard, but you can minimise the number of times that this will happen. Take a closer look at your client base and look for patterns of which clients are the best business for your company. Approach this specific group of clients directly – message on social media, cold email – and persistently keep selling to them.
Your aim is to have new projects lined up for your team as they finish old ones.
3. Not having new projects lined up
This is closely related to the previous point. To have projects lined up for your team, you need to keep generating new opportunities. That’s something that people with technical skills, like developers, do not like doing.
They imagine sales as something complicated and rude. But that’s not the case – software development is much more complicated, but you still do it almost everyday, right? You have a plan, goals, and a drive to work.
Same goes for sales. You need a plan that you’ll follow everyday, and persistence to keep finding new projects.
Maybe you already have a sales process in place, but it’s still not as efficient as you’d like? One solution is diversifying sources of new clients & projects.
Of all great software companies I talked to, no founder limited sales to just one source like word-of-mouth (referrals) or content marketing.
Instead, they get :
- referrals through providing great quality and building their portfolios
- questions about their services from content marketing, industry events, SEO, social media
- qualified (decided) clients from reaching out with cold emails
Another solution is automating actions that, when done manually by someone on your team, waste both time and money.
There are plenty of startups (RightHello included) that can help you regularly get new projects through solving various pains of online sales:
- finding your target customers and their contact data
- reaching out to new clients in your name
- creating and distributing content for your blog
- taking care of SEO
4. No plan to scale up
Your company needs a solid fundament to scale properly. A huge chunk of that fundament is your approach to projects – are you sure it’s scalable?
Because it can become a huge bottleneck for your business. A scalable approach means a defined process of running your services. (more about grow your software companies)
A process you will use for all clients. Because if you want to grow, your team can’t waste time thinking about whether they can or can’t do something for a client. In other words – you need procedures.
The ugly corporate word that it is, it jus means that your team won’t be reinventing the wheel everytime they start working with a new client. It means they’ll just check a description of your process if they’re not sure of something, instead of wasting other people’s time with questions.
On the flipside, this also means you’ll be getting better clients. Because if someone doesn’t agree to your process, you won’t budge and waste time figuring out a different process just for one client – you’ll let go to find another one.
All the time you save because of this, and the quality your service will gain – these are priceless things that are exactly what boosts companies towards scale.
5. Management becoming too complicated
Management becomes more complicated as your company grows. It boils down to having the balls to make hard decisions when your reason and instinct tell you that they’re right, and when too many things depend on you it’s almost impossible. It’s also about learning from the decisions that turned out to be terrible mistakes.
Such a hard decision is making everyone in your company a CEO– in other words, creating a flat organisational structure. To do that, you need to hire only business-experienced experts that know about sales and customer service in addition to their technical skills. But with that in place, you don’t need a dedicated marketing nor sales team – your developers can handle everything.
It doesn’t have to be as disruptive – you can just improve your current organisational structure instead. To reduce noise, separate your team into sub-teams, each with a different project manager on top. These teams will still exchange resources, delegate tasks between each other – but only the project managers will have to worry about that (less pressure for developers and for you).
What about feedback? It’s hugely important for proper teamwork. If you’re having trouble finding and solving issues that trouble your developers – you might be asking the wrong questions. Ask them about their moods instead of “ordering” them to figure out what’s wrong in your company.
This way you’ll get the answers you need to help your team become more efficient.
Challenging landscape of software companies
It’s tough out there for B2B software companies. But industry leaders show quite clearly that success is achievable – but, as all precious things in life, you’ve got to work for it.
According to the cliche that every self-proclaimed wantrepreneur has been screaming for the last few years – you have to work smart, not hard. I would disagree – to build a successful software company, you need to be a bit of a hardass that doesn’t back down from the road to your goals.
And you have to be smart too. Sorry – but there are no shortcuts.