Hi, my name is Philip, and I’m an agency developer. I have been clean for 364 days, 23 hours, and 35 minutes.
For years I have been told that I’m not good enough for ‘product’ companies. Informed in numerous interviews that:
Your experience looks great. However, we can’t hire you because you don’t have any product experience.
For the first 19 years of my career, I have either been freelance. Or running an agency or working for development and marketing agencies. I have always been a filthy agency developer.
I was addicted to speed of delivery over quality, the debased use of themes, mainlining WordPress and Drupal plugins, and flagrant disregard for practicing safe testing.
Product; the holy land.
A year ago, today, a product company took pity on this lowly agency tech lead and allowed him to prove himself in the hallowed fields of product development.
It turns out; product development is effortless.
I had been concerned about the transition to product development. For years, it had been beaten into me that it was some otherworldly experience. And environment where you would be ‘working at scale’ and ‘being laser-focused on the customer’. Things that I couldn’t have possibly understood after years of smashing out cheap and cheerful WordPress sites.
I convinced Klarna that I had enough transferable skills. They decided to give me a shot.
So on the 15th of May 2019, I arrived at my new job with great trepidation.
Product development superpowers.
What I have discovered is that actually, agency development has given me product development superpowers. The superpowers have allowed me to hit the ground running. Within a year I have found my feet in a product development environment with relative ease.
And it comes down a straightforward thing. In a product environment, you are focused on one product and one defined set of customers. This environment might change as your product develops, and as your company grows or pivots, but primarily you have a single focus at anyone time. And that focus lasts months or even years.
This pace in product companies is glacial when compared to agency development. It’s normal for a team to be working on multiple products at any one time. These products are being developed for varied customer audiences.
An agency developer releases five full products in the time a product developer releases one feature.
Since joining Klarna my team has had 3, or 4, significant feature releases in my first year.
However, in an agency environment, my team would have delivered between 15-30 separate products. The projects would frequently run in parallel, for 15-30 different customer audiences.
A few years ago, in parallel, my team was delivering a complex website builds for a large German automobile, an event website, and a listings website for a German national TV streaming network.
We delivered one of these projects in 3 weeks from initial contact.
Move fast, don’t break things.
The core concept of agency development is that you are billing your time to a client. Therefore, your productivity is directly related to your team and the company’s profitability.
Any time you’re not working on client projects cost the company.
So you have to move fast, and not Facebook fast, really fast. However, you also don’t have the luxury to break things; everything you deliver is to cash-paying customers. These customers get very shouty if you provide them broken things.
Imagine how shouty your product customers get when things break on products they’re paying nothing for. Then imagine how upset people get when they’re spending tens of thousands of euros.
This pressure forces you to understand how to be efficient. As well as building up company policies and frameworks, you also build up personal micro performance improvements. You developer an internal database on solutions to common problems that you know work. You know which libraries and plugins are going to fuck you over, and which ones will get you home for dinner that evening.
Doesn’t that break sloppiness?
Agency developers are fast, but with speed comes a perception of sloppiness, or a lack of quality. In my experience, this only comes in agencies with bad or inexperienced management.
Working under pressure and speed, young agency developers can make a mistake and be sloppy. Above all, it’s the leadership’s responsibility to provide them with safety nets, processes, and best practices to help minimise these mistakes.
Experienced agency engineers can deliver high-quality code fast.
But they don’t understand our customers?
The best product companies are customer-focused. This customer focus can frequently use used as an excuse not to hire agency developers.
An agency developer with a few years of experience will likely have delivered projects to multiple different companies in a range of industries. There will be significant parallels in a number of those projects to your customer. However, humans are humans and they don’t significantly change depending on the product.
In addition, having experience in industries outside your own product’s industry can be invaluable. This experience allows you to bring in new ways of working and thinking that you might have missed.
Agency environments tend to be very high pressure. Therefore, due to the billing model, a few tricky projects can cause massive damage to a companies cash flow. A tricky quarter can kill a company dead.
This environment can cause a period of extreme stress. All agency developers will have to deal with it at some time.
I’m not suggesting that you should apply stress to developers. However, if you hire one, they’re going to be the rock in your team when the shit hits the fan.
In conclusion, the next time you’re looking through a bunch of CVs, or are looking for the next superstar to join your product development team. Maybe take a risk and shuffle those agency developer CVs to the top.
You will be rewarded.