As a CTO, I’ve worked with a number of businesses. Some are creating their first MVP and some are well-established technology leaders.
Working with these kinds of organizations, it’s shocking how often the realities of software development are ignored. These realities tend to revolve around money and time.
If you’re tasked with overseeing a software product, and things start to get hectic, you need to remember two things:
- Software costs what it costs
- Software takes a while to build
You might think these truths are obvious, but in my experience, they are almost always forgotten about in times of stress.
I’m diving into these two ideas so the people in power of resourcing can see a developer’s point of view on money and time involved in creating software.
Software Development Costs What it Costs
When a project starts to go over with budget, business leaders try to get creative with their teams to save money. They’ll try to replace a senior engineer with two junior ones, or replace their front-end team with an outsourced team. But at the end of the day, no matter the “creative” makeup of your team, you’re not going to save that much money.
Two juniors take more time than a senior. An outsourced team needs to be managed more than an onshore resource. These tradeoffs are true for pretty much all team structures you’ve tried.
Here’s the truth. Software is expensive.
Look at the most successful software companies (the ones you want to emulate). Twitter employs over 2,000 developers globally. Asana has about 350 full-time developers. Shutterfly? About 590 software developers.
My point is this: if your goal is to create enterprise software, you’re going to eventually need an enterprise team. Starting responsibly is of course the way to go, but once proven successful, it’s no longer worth cutting corners with complicated salary math.
A basic progressive web apps cost $100–120,000 to build. Native apps cost $200–250,000. Expect to pay 10–20% per year in maintenance. If you’re trying to improve your software and expand features and verticals, it’s much, much higher.
That’s what software costs. You might be able to save a little money with odd people combinations, but in the end, it costs what it costs.
Software Development Takes More Time Than You Want
Similar to cost, software development takes time, and there’s no amount of Agile or scrum that will change this fact.
In our experience, many business leaders will either create incentives or obsess over processes in the name of “velocity.”
The truth is that if your software development project falls off the rails, tough luck. You can’t quick-fix projects that are behind schedule.
Creating incentives only encourages developers to be hasty, which results in technical debt later on. This phenomenon has a name: the Cobra effect (which is basically: too many cobras, government pays for dead cobras, people start breeding cobras, now cobra problem is worse). This snake problem can be compared to software bugs or tickets.
Another common effort is to hire more developers, but onboarding new team members takes time and will only delay the project further. This phenomenon also has a name: Brooks Law which states, “ adding manpower to a late software project makes it later. “ It was coined in 1975, but teams still run into this issue today.
At the end of the day, you can’t rush technical solutions that only happen after a developer has lived in the code. Unfortunately, the best solutions don’t make themselves apparent on a leader’s schedule. It takes time to work through problems.
If you can be realistic about both money and time, your project will run smoother. You’ll have a better product, less technical debt, and be positioned to iterate and create more value in the future. All it requires is an internalization of the two truths mentioned above.