Software Development and How Not To Get Ripped Off
Posted On: Aug 30, 2018
No one knows the real cost of software development, or what it's actually going to cost at the end: not the developers, not the project managers and especially not the client.
Why? Because software development is not like buying a car. It would be closer to asking someone to create a whole new car for you, with nothing except a vague design to begin.
The problem with unique is that it's difficult to estimate entirely accurately how long something is going to take to build. A lot of planning and research must be done first, and everyone involved needs to be on the same page.
But clients deserve to at least have a rough idea of how much they're likely to spend. And when done right, you can. We'll give you some advice on what to ask and what to look for. But first, the potential pitfalls...
An example of the inner workings of black box software development
Software development projects are known for their run away budgets, high failure rates, secretive ongoing development and often millions of dollars being spent with no product ever being deployed The stats on software development project success rates are alarming.
All of the following will ultimately lead to bill shock at best, and total project failure at worst.
You lack technical knowledge
You can't know, what you don't know, that you don't know
It's very often the case that clients lack technical knowledge. Their startup is at a too early stage to bring on a CTO. Clients often don't even know anyone with any technical skills - and have found their software development firm purely by Googling extensively.
Obviously, this is a dangerous move, because you don't know what you don't know. Cowboy development companies will throw technical jargon at you to manipulate you and potentially throw you off your game.
Here's where you need help the most: even just engaging other software and IT companies to audit your communications with your developer can help you not get ripped off. Software development requires a vast field of knowledge and if you do not have a trusted advisor to walk you through this minefield, you can get ripped off without even realising it.
Poorly Researched Requirements
Yep that should take about two weeks, probably...
Software development companies can often fail you by not working with you to clearly define your product's requirements properly. Good software projects will always start with several days of discovery, business analysis and requirements gathering. Picking your mind and working with you by applying their technical knowledge to your desired outcome should be the first cab off the rank for a developer.
Without this, an accurate cost estimate is practically impossible. Companies that do not perform any kind of scoping often rely on using constantly changing requirements to add extra line items to their invoice to you.
Failing to create proper requirements and breaking them into easily quotable deliverables is a huge red flag - it means your vendor has failed in their due diligence. Do not stand for it.
Yep, we definitely need all of these people in this meeting.
A great way that consulting companies will fatten their billable earnings is by stuffing every scoping and review meeting with as many consultants as possible. Bill shock due to meetings is an unpleasant feeling. Why did that meeting need three software developers, two sales people and a graphic designer in it? Why did that meeting take three hours to decide something minor? All billed at $160 an hour? Good question.
Make sure your meetings are either not being billed per person or only the necessary people are in there.
Cooks in the kitchen
Henry is an integral member of the development team...
Software development does not scale with the size of the team. Having too many developers on a project increases costs and lowers quality. A good project manager will be able to assess how a project can be segmented and assigned to specific individuals. Anything more than that magic number adds massive project overhead.
If you are adding people to try to speed up an already late project, you're going to have a bad time.
Nine women will not make a baby in one month. More does not necessarily mean better.
Offshore vendors often make huge claims suggesting they are more than 80% cheaper per hour than Australian based development firms. This may be the case if your only metric is the hourly rate of a single developer, the actual costs associated with offshored projects can grow dramatically and often result in massive billshock, long after it's too late to back out or change providers.
Software developments rates for Australian based developers ranges from $AUD130/hr for a freelancer to AUD$200/hr for large consultancies. Looking overseas to countries like India, Bangalore or Ukraine will seem much more attractive: at a very cheap AUD$40 an hour.
Sounds too good to be true? Right? That's because it is. If the savings really ended up being 80% of what local development costs, companies like NinjaDojo would no longer exist. These bottom of the barrel figures hide the true costs of offshore development.
Offshore firms will be cheaper per person, but the teams are often five times larger than Australian based development firms. The project management overhead of managing offshore developers is a lot higher and if these offshore teams are not being managed properly, usually due to language barriers, timezone differences and cultural differences: quality can easily slip, deployment times can be pushed out way past expectations and product delivery is often buggy and requiring extensive and often expensive ongoing maintenance.
A lot of software development companies in Australia are merely brokers for these offshore firms. Your quotes from these companies will be be massively cheaper than Australian based development companies.
Ultimately, being 5x cheaper, but 10x slower, means your project will be still as expensive but arrive twice as late.
So what can you do about it?
Just because it's hard to estimate software development costs does not mean you need to go in blind. There are ways that you can mitigate your risks and make sure you don't end up in the hole with no product.
Communication and Constant Development Reviews
Don't let your software development company keep you in the dark. You would be shocked at the amount of times people have come to us frustrated and at the end of their rope. The company they've trusted to build their dreams into a successful product are stonewalling them and hitting them with unexpected costs.
If you've been sending money to your development firm and haven't seen anything, they're mistreating you. Demand constant updates and demonstrations. Sending you an image means nothing. A talented graphic designer can create mockups of an application in a matter of hours.
If you're not being shown live demonstrations of your product on a frequent basis that's a potential red flag. Whilst the beginning stages of software product development can be underwhelming, you should still be in the loop and having your expectations managed and met.
A good project requires a constant feedback loop to influence outcomes. Otherwise the development can run off course without you even knowing and righting the course of a software development project can be very time consuming and expensive, delaying the project further.
If you're in a good feedback loop you can make sure your project is on course and even influence new directions that you hadn't even be considered before hand. Constant project feedback makes sure the client is happy and ensures the developer doesn't waste his/her time going down rabbit holes.
Source Code Ownership and Transparency
Your developer should be using a version control system for the source code they write. Make sure you ask them what they're using, because if they don't know or don't use one: they're not the developer you should be using for your project.
These version control systems will have online repositories for storing and viewing this code. The market leader in this area is GitHub and it's likely they'll be using GitHub for their source code.
Ask to be given access to a mirror of your source code or at the very least email delivery of a package of your source code. Every time you pay a bill, this source code should be given to you. Don't let them keep this secret from you, as this is your product.
Do you own your IP? Have you discussed this with your developer?
This catches a lot of startups and businesses out and shonky development companies rely on it to keep you dependent on them. They can even go and sell your product to other companies, or create their own competing product from something that you paid for.
Make sure they sign over IP ownership to all but the IP related to their tools of trade in the contract. Your business depends on it.
Have you discussed the actual deployment of your product with the vendor? This is another "gotcha" moment for many clients. How much is it going to cost to deploy? Where will it be hosted? What are the monthly costs? What country or countries will it be deployed to? Are they reselling another company's product? Could this be something that is managed in-house?
Too many times a project reaches this stage with the client completely unaware another costly bill is headed their way, with a potentially large stipend attached for the monthly hosting costs.
No software product launches without issue. Software bugs are an unfortunate inevitability of software in general. But as long as you've got a comprehensive plan, you can ensure that your product will run smoothly.
Many clients are just so focused on the delivery of their product they're understandably not even thinking about what happens after. What happens when you're hit with bugs that stop your customers in their tracks? Who is answering the support emails? What helpdesk system is being used? Does your development firm even do ongoing support after product deployment?
Are bugs covered in your warranty? have they even provided you with a warranty? Make sure you're covered and are completely aware of the costs involved when your product is live. Maintenance costs are often hidden and surprisingly high.
NinjaDojo Would Like To Help
We love helping people rescue their software development projects. We're also available to give you honest and upfront advice without any obligation.
If you're worried about the outcome of your project and are having concerns about your software vendor, call us right away. We'll help you navigate the mindfield that is software development projects.
Check out our values, and what NinjaDojo stands for. Making sure our customers are looked after is built into who we are as a company.