The million dollar (hopefully not) question: Internal or external development?
Time and time again, I see startups hiring freelance developers or employing full time developers.
They start by handing over the responsibility of building the product (app, web application or platform).
Of course, this is all completely fine if someone in the organisation has a lot of experience in software development and product management. Usually, that isn’t the case. Which means usually, it’s not all that good an idea.
In essence it’s the same principle as hiring your own builder to build a house. (Rogue Traders, anyone?)
If you have no understanding of product development then you are really putting the future of your company in the hands of the developer. Throughout the years, I have seen companies with great ideas try to develop them internally, wasting a lot of money on a product which is ultimately unfit for market.
Luckily for you, I’ve got an excellent 10-point plan to answer that question.
- Not all developers are created equally. Much like the building trade you get cowboys. Just because someone claims to be a developer, it doesn’t mean they are. I’ve worked with some self-proclaimed ‘expert’ developers who lack even the most basic understanding of software development.
- Successful product team, assemble! In my experience the most important person is your Product Manager. They’ve got everyone’s interests at heart, not just their own. Oh, and you’ll need UX/UI designers, Back-end developers (mobile / web) & Front-end developers (horses for courses).
- Developers go off on tangents. I know this from first hand experience – I’m a developer and did what I thought was best without consulting the key stakeholder! Wasting time and money and ultimately putting the product in jeopardy.
- Most developers don’t think of the end user They’re more interested in code and getting the job done. It’s normal for every member of the team to have their own role and agenda but if you have a developer calling the shots, you only get one point of view.
- Beware of the jargon. Admittedly as a junior developer I did it and now I can spot it a mile off. The developer (an intellectual) will seek to confuse the non-developers (intellectuals, but in a different way) by using lots of technical terminology. Having accountability helps products get finished on time.
- If I want to build my own house I don’t employ a builder. I’ll hire a reputable firm with all the right skills, then once the house has been finished it is handed over to me (once the snags have been completed). The same should apply for product development.
- Scale is a system. An inexperienced developer will develop for immediate success. A Project Manager will bring discipline to focus on the opportunity of scale.
- Big machine, small cog. Many developers who have worked at massive companies will rarely have been involved in the end-to-end process of building a solution. Responsibility for the full product is a huge undertaking if you haven’t done it before. The architecture and foundation of a product is the most important part of the whole process (same as a house – you can see I’ve been watching a lot of Grand Designs). The success of your product will be determined at this point.
- Crawl before you walk. Don’t get me wrong, there are some great developers out there but be wary of those who will jump ship when it gets tough. And what do you do when you’re left with a pile of useless code which no other developer or agency will take on? (Answer – very little).
- If in doubt, double it. Building a product isn’t easy. If your developer says it will take 3 months, plan for 6. It’s called the “Planning Fallacy”
And if you’re thinking of developing a product, here’s my top 5 tips.
- You’ll need impartial / unbiased advice on the product and how it should be developed. This will help your roadmap and your timelines.
- There’s more than one way to cook a steak. Developers only know certain languages and will justify developing in what they know, putting their skillset before what’s best for the product. Despite what you may hear, your product will probably have a clear use case for a specific language. (This goes for a lot of development companies too).
- Hire or contract an experienced Product Manager. Let them write a product specification/definition or user stories (if you’re going agile). This is your blueprint. Hand it to any developer/development company, they’ll then give you a price.
- Development is really tough so don’t underestimate it. Good developers are hard to find. Get to learn as much as you can about product the product development process.
- Get the product developed externally with a view of bringing the development in-house after it’s been completed. This way, you’ll be able to hold an external company accountable. Plus, using their team, experience and skillset will develop things much quicker and more cost-effectively than hiring your own development team.
It goes without saying that a reputable app development company may be slightly more expensive, but it’s well worth it. In the long run, it’ll save you time, money and stress.