—This article appeared first on Medium.—
We’re living in a time where founding a startup has been easier than ever, with open source technologies dramatically lowering down the cost of digital product development and with access to capital being abundant. However, it is easy to underestimate the ability and the cost of tech team to create and maintain a digital product, leading to over expectation and frustration of stake holders. This article aim to shed a little bit more light on the true costs product teams face when building a product in the context of Malaysia, from the eyes of the founder of RedSquare Software, a digital studio in Melaka.
This is going to be a long nuanced articled, be warned.
If you’re a non-technical founder or a person leading a digitization strategy for a company, chances are you have received quotations with quite a high gap in price range. The cheap ones looks to be exactly the same as the expensive ones, at least at the wireframe stage. It’s kind of a no brainer to go with the cheap one right?
WRONG. The amount of work that is needed to be done varies dramatically, that may not be immediately visible for a non-technical person. Take Uber for example. For the features of the app you SEE, you can probably get something similar built for less than RM100k. But the real Uber employs hundreds of engineers, each paid well over USD 100k per year. Now why is that?
The Cost of Complexity
Let’s begin by understanding how simple or complex an app or a website can be. There are a few elements to consider here;
Number and sophistication of features
Some features are easier to build, with abundant pre-written code(libraries) available, while others are not. Take for example a feature where you want to display a chart in your app. If it’s just a basic bar chart, it could probably be implements in hours. But if you want a bar chart that animates itself, it may take a few days. But say you’re a very creative CEO and you want a bar chart that fits into other bar charts. This might take weeks, and only a senior developer (who’s time costs more) can do it.
Expected number of users in an immediate amount of time
If you have an unproven idea and want to make a ride sharing app, and want to build something serves 20 users daily, a junior app developer with some experience in Firebase will suffice. But say you’re the President of the Taxi Association wants to build one to serves 2000 users daily, with real time locations of all your taxi drivers reaching all your online users, you would need a senior app developer, a few senior backend developers with experience in scaling a real time app.+Sure?
Privacy, Security and Integrity requirements for Data
There are many standards to comply in certain regulatory industries. Especially in a time where privacy is a concern, and large scale hacking is an ever present danger, the data that you collect should be guarded with the upmost importance. Say for example you’re a company teaching financial literacy thought online videos, there’s nothing really that important to defend here, maybe just the user passwords. But if at the same time you also have a dashboard for your users to track their expenses and calculate their net worth, the security dial should be turned up to 11. Not only will the data stolen lead to an immense privacy violation lawsuit, but the inaccuracy of the data used to provide financial advice to users can be very damaging.
Now that we have that out of the way, lets start a rough calculation.
The Cost of Human Resource
In Malaysia we’re unfortunate enough to have an education system which prioritizes memorizing facts rather than one which teaches marketable skills. So product developers (engineers, designers, product managers) it’s no different. It’s becoming harder than ever to scout, train and make use of great product developers. Here’s a rough breakdown on how much they cost for early stage product development.
The Know Nothing IT Graduate
Based on my experience, close to 90% of all Malaysian IT grads fall into this category. Mostly all of them will fail a simple OOP, OS and Algorithm interview, with almost all of them not having any relevant portfolio item beyond their Final Year Projects.
Monthly salary: RM 2000–3000
Training to be useful: 6–8 months
The Good Junior Developer
This category of people are the one who join events and competitions and may have even won a few. They have at least 1 or 2 good projects on their GitHub and have interned in a startup or company where they have been allowed to touch some code. Super hard to scout, most good ones have already been snapped up by great companies.
Monthly salary: RM 3500–5000
Training to be useful: 2–3 months
The Senior Developer
This is a person that has been around for a few years. Great at communicating and amazing at problem solving. As for technical abilities, they have mastery over a few stacks and have build scalable software systems prior to joining you. Gives talks at events and people come to her for advice.
Monthly salary: RM 8,000–15,000
Training to be useful: 0–1 month
The Illustrator Who Calls Himself a UI Designer
Great at drawing, but has no idea how product development works at the beginning. Thinks developers should be able to build anything he draws.
Monthly salary: RM 2500–3500
Training to be useful: 6–9 months
The Actual UI/UX Designer
Most of the time, this person is a former front end developer, who understands at the very minimum, how frameworks like Bootstrap and Semantic work. Able to use tools like Sketch and able to do clean design handoffs.
Monthly salary: RM 5000–9000
Training to be useful: 0–1 months
The Product Manager
This is a person with who communicates with the people who commissioned the product and is well verse in product management techniques like SCRUM and Design Sprint. Ideally, this person should be able to understand the limitations of the team and can express it well to the client to avoid over expectation.
Monthly salary: RM 3500 – 8000
Training to be useful: 2–3 months
The Cost of Risk is the additional cost invested in a given period for the development of the product, multiplied by the probability of clients discontinuing the product development before the end of said period
So how does this work;
Assuming a client signs a contract for 3 months which requires you to hire an additional junior developer on top of the team that you already have. This means you’re taking on more risk than you do. You will have to at least keep that new developer around for a year, paying him RM 3,500 a month. Your additional cost invested in a year to support this project is RM 42,000 (RM 3,500 a month x 12 months).
A large corporation may have a very low probability of canceling a contract due to internal issues such as cashflow. For the sake of argument let’s say it is 0.2.
The Cost of Risk = RM42,000 x 0.2 = RM8,400
Conversely, a startup which may not survive for long will have a large probability of discontinuing the product development before the end of the year, say around 0.8.
The Cost of Risk = RM42,000 x 0.8 = RM33,600
The Cost of Risk is an essential cost you would want to include ensure you have proper revenue growth to support the growth of your team as a product development studio.
The Total Cost Calculated
Say you’re a non-technical startup founder who wants to build a hotel booking system, with a deadline of 2 months. You have a 0.4 probability of discontinuing the project after the first contract of 2 months.
If you’re estimating 3000 monthly active users with simple features;
Senior developer salary (RM7000) + junior developer salary(RM3500) x 2 months = RM21,000
The studio might charge RM30,000 so that they can have RM 9,000 wiggle room for operational expenses, salary of the product manager, commission for the sales person, internal projects and profit.
If you’re estimating 60,000 monthly active users with advanced features;
Senior developer salary (RM 7000) + 2 junior developers(to make the extra features) salary(RM 3500 x 2 )+ Additonal hire DevOps engineer to help scale (RM 5000) x 2 months + Cost of Risk for additional hires (RM 24,000 per year) = RM 62,000
The studio might charge RM70,000 with RM 8,000 wiggle room.
- Notice the difference in price that prematurely scaling and building extra functions. As best to your ability, try to keep your MVP simple if you’re a startup. DO NOT BE OVERCONFIDENT.
A Final Word to Non-Technical CEOs
Hiring a freelancer WILL BE A LOT MORE CHEAPER. Assuming a rate of RM50/hour for 2 months the total cost of the above mentioned project is around RM 14,000. That’s less than half of what a good studio will charge.
HOWEVER, understand what service you’re buying into. With a freelancer, you would need to do project manage, do quality assurance yourself, and you always face the risk of making your product highly fragile as the freelancer might leave, or get sick, or just decide to quit. With a good product development studio, you’re buying into support, integrity, and fundamentally paying for a robust tech team.
A Digital Product is like an organism, it needs constant bug fixing, maintenance, and making it more nimble and fast. You wouldn’t plant a Durian tree and without much care, expect it to bear fruit every year and make you rich. But more importantly, it needs to evolve. It need not only survive in a crowded market, it needs to thrive. And like all good things, these come with a cost, the cost of complexity + the cost of human resource + the cost of risk people take to support you.
And that, is The True Cost of Creating a Digital Product.
—This article appeared first on Medium.—