Phew, you did it. It involved some hard work, but you managed to start a software agency. Your initial fears about clients, staff, and cashflow, are all a distant memory. Congratulations your business is a success!
Now, what does it look like?
I want you to take some time and really think about what "it" is for you - it being the end goal you are heading towards. By end goal I don't mean the actual end of your business, but the destination you want to reach.
"To begin with the end in mind means to start with a clear understanding of your destination. It means to know where you’re going so that you better understand where you are now and so that the steps you take are always in the right direction.” ― Stephen R. Covey, The 7 Habits of Highly Effective People
Whilst there's a tonne of practical advice I want to share with you about starting and running a software agency (as that is the end goal of Dev to Agency!), I need to get this out of the way first.
I didn't set clear end goals when first starting my business, and it took 4 years for me to then figure it out the hard way.
The beginning 📗
When I first started my custom software agency, all I wanted to do was to build interesting and technically challenging software. My co-founder and I were both freelance software engineers at the time, and we thought if we joined forces and started a company we could get bigger, more complex projects and really flex our programmer muscles. We wanted to earn a reasonable wage and work on fun things, and starting a business seemed like a great way to do it. So we did. And after close to a year of some less-than-ideal projects we finally landed a dream project. A large and complex project we could really sink our technical teeth into.
That project was over a year long, and it was going great. But then some of our original clients wanted us for other projects, so we did what all businesses do - we hired our first two juniors. Six months later we had great ongoing relationships with our core clients, and still had new work coming in - so we naturally hired more developers, what a fantastic problem to have! Now with a team of 6 there was a lot more planning and management to do, so my role moved away from the technical side of things and more into management. This in turn left a hole in the development team, so we had to hire another experienced senior programmer.
All these hires in a short period of time negatively affected both the quality of our work and our delivery timelines (as at that stage we did not have great standards and processes in place), so my co-founder moved into a CTO role to oversee the tech team, and we hired a new project manager to make sure things got done well and on time. At this point we realised we needed to pay for a sales and marketing team to win more work - as our payroll had increased to 6-figures per month. Needing to bring in that much money meant we couldn't always work on interesting and technically challenging projects, so some less-than-ideal projects had to be taken just to keep the money coming in. I think you see the pattern. Before we knew it we were 10 people and still hiring. I know ten people isn't huge by any means, but we now spent a lot more money, which meant we needed to earn a lot more money. And frankly, we didn't know when to stop.
How did I get here? ⚠️
It crept up slowly over a few months, and then it hit me hard. I realised was unhappy. Externally I felt a success, I mean we had a big office and shiny new things to fill it with, we had built something from the ground up (that was still growing), and our clients were generally happy. But I didn't know where it was going, where I was going, where we actually wanted to go.
I wasn't "coding interesting and technically challenging software" like I originally wanted, in fact I was no longer really an software engineer at all - but a stressed out manager who worked too much.
“If you don’t know where you are going, you’ll end up someplace else.” ― Yogi Berra, former New York Yankees catcher
After many conversations we decided we needed to make a change - we had to stop growing for the sake of growing, and instead focus and simplify. This meant dealing with a few uncomfortable truths: we had to fire the clients that didn't align with the work we wanted, and heartbreakingly we had to let some staff go to reduce our payroll. My co-founder also decided he wanted to leave the business - basically it was just a shit time. But I had let it happen. We had let it happen because we never had an end goal, we just kept on moving along, hiring more staff, winning more projects, hiring more staff - an endless loop. We let other forces control our destiny - and looking back its obvious why we hit a tipping point.
Although it felt 4 years too late, I was forced to think really hard about what I personally wanted out of my business. What I wanted for my staff and clients, and what my end goal was.
I decided that day-to-day I needed to stay technical, and for my sanity, code at least a couple of times a week. I wanted to be the technical lead but also scope new projects and do client pitches (as strangely by then I actually enjoyed pitching!). I wanted to only take projects that were a good fit for us, and I wanted the team to be excited by our new projects, not bored. I wanted to never sacrifice on project quality again, and I wanted clients to be blown away by the quality of our work.
I didn't want to work too much, ideally no more than 38 hours per week (and never on weekends), I wanted the team to have a good work-life-balance, and for them to feel supported and valued. I wanted to stay small - a small amount of great staff, a small amount of great clients. I wanted everyone in the business to be paid very well (including myself) - and lastly, I realised I did not want to run this business until the day I died. I knew that at some stage in the distant future I would want to do something new.
A phoenix from the ashes 🔥
Having an end goal helped me regain control of my business. It no longer felt like a distant dream, but an achievable destination - and that helped me design a roadmap on how to get there.
“I ain’t Martin Luther King. I don’t need a dream. I have a plan.” ― Spike Lee
I realised we couldn't have a team of junior programmers - or just specialists in either frontend or backend - we needed full-stack developers who were mature, experienced, self-motivated enough to lead a project, and personable enough to work well within a team. Instead of taking every project that came through the door I needed to focus on a niche - this helped me double-down on custom internal business software, usually for boring businesses (that made money) and had some archaic internal workflows that needed automation.
As internal software is so integral to the business, this forced us to have a larger focus on high quality, bringing in stringent code reviews, automated testing, and the technical standards and processes to make sure the quality always remained high. I rebranded our website and communications to reflect our focus, and took down all our past work that didn't align with the goal. We gave the remaining team a great pay-rise (including myself), and importantly brought in regular one-on-one chats between myself and the individual team members, so I could make sure they always had time to talk to me directly about whatever was one their mind, and I had time to be transparent and open about our business. With such a lean team, it's all about the staff and their happiness, so I tried as hard as I could to give them everything they needed in order to do great work.
Lastly, as I knew this business was not something I wanted to do until retirement, I took steps to avoid vendor lock-in for our clients by using only tried and tested technologies, and having detailed documentation (both technical and functional) for any handover needed. I also made sure to keep up relationships with individuals and other companies that could possibly be interested in acquiring the business in the future - just to keep those doors open.
This new reincarnation of the business was a breath of fresh air. Over the next four years we produced the best work ever. With a team half the size we managed to deliver larger and more technical projects at a higher quality than before. This strengthened the relationships between us and our smaller client base - and generally it was a "happier" place to work than the business of four years prior.
This end goal brought with it closer clients, more ongoing work, happier staff, and a higher quality output. This in turn directly lead to an acquisition offer in 2020 from a larger agency. Although selling the business was not a huge priority at the time, it was too greater opportunity to pass up, and it aligned with the end goal I had set years earlier.
What is your end goal 🎯
So before you purchase your domain and print your business cards - I recommend you take the time to think this through, and plan your ideal end goal for your business. Imagine you have "made it", you have all the work you want and great staff to do that work...
- What does day-to-day look like, what do you do exactly?
- What don't you want to do?
- How many hours do you work per week?
- How many staff members do you have?
- Are your clients local (you meet face-to-face), global - or both?
- What types of projects do you focus on (or does your agency do everything)?
- How much money do you personally want to make per year?
- How long do you want to run your agency for (is this a forever endeavour?)
In retrospect having an end goal is pretty darn obvious, but sometimes you get so wrapped up in the idea of starting a business that you forget about the obvious things. I wish someone could have told the younger me this story - and I hope my story helps at least one other person.
“Just because you made a good plan, doesn’t mean that’s what’s gonna happen.” ―Taylor Swift
Of course, the best laid plans can still fail. And I am taking a bit of creative license in my retelling, as even after our "reincarnation" we still had to tweak our plan every so often to make sure we were on the right track to our end goal.
And along with this you also want to periodically review your end goal. Things change, we grow as we learn, and this leads to goals morphing and evolving. But having a "north star" that you can always look at and ask yourself "Am I heading towards my goal?" - that is never a bad thing to have.
If you have any thoughts, feedback, or stories of your own I would love to hear from you. Please hit me up on Twitter @chrisrickard