DIY software solutions work best

10/02/2016 - 13:51


Save articles for future reference.

Having the technical skills to develop software in-house is a key point of difference for successful startups.

RISK: Outsourcing software development can lead to unpredictable and potentially expensive consequences. Photo: iStockphoto/nullplus

Having the technical skills to develop software in-house is a key point of difference for successful startups.

‘What does your business do?’ Ask that question of a lot of startups in Perth and you’ll get a lot of different responses. What’s unusual to hear, however, is ‘we make a software product’.

Yet the one thing in common among the businesses that made the headlines last year for customer engagement – Pin Payments, APE Mobile, Appbot, SEQTA and inhouse group (to name a few) – is a clear grasp of the technical task of building great software. None of these businesses outsources its development, and all of them have a tech founder or co-founder with strong product development chops.

Software product startup businesses are all about taking a deep, clear understanding of a customer problem and building a great software solution for that specific problem. Without the understanding of the problem, the business will struggle to generate any interest. Without the capability to develop a great product to solve that problem, the business will struggle to capture any market share.

An unscientific straw poll of the startups in the Perth community that have used offshore developers has shown that barely one in 20 is successful, where success is deemed to be a working product.

One of the problems is that the outsource developers have all the power in the relationship. Take the following case, which serves as a cautionary tale.

One Perth startup was two weeks away from launch, preparing media releases and getting the launch party organised, when its offshore developer informed management that the product would take another six months of paid work to be ready for launch.

The founder had a simple choice: accept the situation, delay the launch by six months, find the necessary extra funds, and hope that in six months the product would be ready; or start the entire process again with a different developer.

It’s hard to build a business when it can be hijacked like that.

Developing business

There is an argument to be made for using an outsource developer to build a ‘minimum viable product', and only start hiring a development team to take over product development once the product has proven appeal in the market.

It’s a seductive idea, and in theory it works, but of course theory never matches practice. In practice the temptation to get the next feature built and then recruit an in-house team is powerful, and few businesses can resist.

Software product code is best not thought of as an asset (built once and then depreciated with minimal maintenance). Product code is more like inventory – constantly going out of date and needing to be replenished.

Because technology is constantly changing, customer needs are constantly changing, and the business is constantly developing a deeper understanding of customer needs – what worked as a product last year will not work this year.

Great software products that we actually use every day understand this and constantly update and improve their products.

Facebook, for example, is constantly experimenting with new features, new interface improvements, new ways of delivering content. Microsoft has been working on the same office productivity suite for more than 25 years now, and still hasn’t got it perfect.

There is a financial incentive to release new versions, of course, but how many people would use Microsoft Word v3 now? To keep its market share, it needs to be constantly updated and ‘fresh’.

A common practice in software product companies is to maintain a backlog of new product features or existing feature amendments that are considered for development. The salient feature of this list is that it never gets shorter.

Product teams can double in size, and the rate of proposed features and changes entering the backlog will increase to match. Creating a great software product involves never-ending development in terms of aligning a code base with customer expectations.

Great product companies have product development as their core capability. They pride themselves on making great products, and this attitude doesn’t blend with outsourcing development.


Subscription Options