November 30, 2018
5 Reasons Outsourcing Software Development is Right for Business
Custom software development is hard and expensive, and without the right skills and the right people it can be very risky. What’s the answer? Outsourcing software development to skilled and trusted partners.
How is a business to cope?
Software is essential to modern businesses. The days of paper receipts and paper journals are gone, replaced with bookkeeping software, customer relationship management software (we used to call these Rolodexes), and of course the ubiquitous web sites that every business needs.
Some of this can be bought off the shelf, but for many small businesses and many applications, custom software is better.
Small and medium businesses (SMBs) in particular find custom software a hard nut to crack. You may have great ideas, but there are so many questions to answer, and so many ways an SMB can go astray. Trying to pursue a software development project on their own is so intimidating that most companies think it’s out of their reach. As a result, they depend on poorly matched off-the-shelf software, or just go without.
Startups are (pretty much by definition) SMBs; they often depend on custom software, and find themselves depending on a single “hands-on” technical co-founder trying to eke out the time for development while holding down a day job, risking missing the market window for a good idea because they don’t have the resources for development.
So how is a business to cope?
1. Choosing Technology Can Be Difficult
In olden times, an SMB that needed to find technology experts looked in the phone book (remember phone books?) and called the computer companies found there. When I first did this in 1967, I called the three companies in my local Yellow Pages: IBM, NCR, and Univac. (Remember Univac?)
At the time, there were only a few major technology decisions to be made: COBOL, Fortran or RPG, and 80 or 96 column punchcards. (Remember punchcards? Okay, I promise I won’t make that joke again.)
Choosing the Web
Life ain’t that simple now. There are a fantastic variety of technologies to choose among.
- Web-based applications? If so, using straight HTML and CSS with Ruby on Rails, Groovy and Grails, the venerable Java?
- Trendy Javascript-based approaches with Angular, React, Vue.js, or something else? (We could make an entire article out of the different possibilities.)
Choosing Mobile
Or do we need a mobile application? The majority of people use the internet now through mobile apps and tablets, but that doesn’t make the decisions any simpler.
- Progressive web apps that give the same experience whether on the web or in a mobile device? (Warning: “the same experience” is very loosely defined.)
- Hybrid apps?
- True mobile apps using React Native or PhoneGap? Good choices, but with limits on how well they can use the platform on which they run.
- Really native applications? Another good choice, since it can make the best use of the platform’s native capabilities, but it means writing two different applications, one for Apple’s iOS and one for Google’s Android.
Then There’s the Back End
And that’s just for the customer-facing part of the application. There are still more decisions to be made: How to store your data — a SQL database like PostgreSQL or a NoSQL solution like MongoDB? Or go “serverless”? Amazon AWS, Microsoft’s Azure, or Platform-as-a-Service (PaaS) providers like Heroku? Plan on managing your own services, or look for a platform that can take on those tasks for you?
I could go on with this — you may think I already have — but I think I’ve made the point: there are enough choices that even looking at the list is intimidating.
It’s a technology jungle out there, and just like in the movies when you go into the jungle, you really need a native guide.
2. Finding Expertise Can Be Hard
But then, how do you find a native guide? It may seem like there are millions of technology experts — until you try to find one and hire one. Real experts aren’t common, and hiring one is expensive.
It’s similar to when you asked Mom for a kitten: once you have a kitten you have to feed her, take care of her, clean her litter box. To hire a technology expert, you need to plan on paying them (a lot) and having new work for them when the first project is complete.
That’s assuming you can hire one. The market is tight and SMBs aren’t always the most attractive employers for the real experts.
Frankly, if you were really strong on the technology, you wouldn’t need an expert, but then you have another problem yet. Say you find someone: are you going to know if you have a real expert or just a good talker?
3. Finding and Managing Developers
Let’s assume that you find your expert. Even the best expert is just one person, and there are limits to what that one person can do in a day or a month. You need worker bees to work as a team, the developers who will take the expert’s decisions and implement them. Once again you run into a tight market, and once you hire developers you now have a whole room full of kittens to care for.
Some people will suggest the answer is to go offshore. It’s not always a bad a suggestion, but it’s not nearly as easy as it sounds. Hiring offshore developers has often not turned out well. Offshore development often runs into some difficult problems:
- There is often a language barrier.
- Offshore development means developers are in widely different time zones: 11 1/2 hours difference for India, 8-10 hours for Eastern Europe. This makes management and interaction difficult.
- Turnover within offshore contracting firms can mean that what started as an expert team quickly becomes a team of, well, not so expert developers. This is sometimes difficult to detect from 10,000 miles away.
Outsourcing software development within the US is often a better option: developers and customers share a common language, they’re in the same time zones (or at least within an hour or two), and cultural issues don’t mask technical skillset mismatches.
4. Managing Cost
The other major worry for any business is custom software development costs.
The hard truth is that good software development is expensive, and the even harder truth is that bad software development is even more expensive.
Without experience, it’s all too easy to take an unworkable approach and find out too late that it is unworkable. You need someone who’s been through the wars, in the trenches and in the HQ. to make good custom software estimates, and make the right decisions to deliver.
Offshore development is often suggested as a means of reducing costs by moving development to lower-cost parts of the world. However, as we’ve already mentioned, offshore development has a lot of downsides.
Development doesn’t need to go offshore to take advantage of lower-cost areas. Developers working remotely inside the US lower overhead and other costs while providing advantages like being in a nearby time zone.
If you’re interested in getting a free outsourcing software development estimate, we’re here for you, just fill out our questionnaire!
5. Managing Risks
All of this adds up to the fact that all software development has risks, and some early mistakes can make those risks much greater.
You can mitigate the risk, by finding real experts, not just in the technology but in applying technology that’s transparent, understandable, and makes you aware of problems early on. The current state of the art for this is a collection of techniques clumped together as agile development.
Agile development means valuing the people involved — particularly the customer —over rigid processes, working software over unproductive documentation, and close interaction with the customer to refine the requirements while delivering software regularly and repeatedly. Agile development is characterized by delivering partial systems in a rapid cadence for feedback from the customer, providing quick response to changes as understanding of the system grows.
Making a Connection for Outsourcing Software Development
So far, this is coming together to make a horror movie or Stephen King book, but it doesn’t have to be that way. The solution to all these problems is to use a firm that is expert in the technology, and skilled as a partner for companies who are outsourcing software development.
So when you’re making your decision, make sure to look for a firm that:
- Has broad experience and can guide you through the jungle of technology selection.
- Has deep technical expertise to make the technical decisions that you can’t. (Be honest: if you could make these decisions yourself, you wouldn’t be worried.)
- Has a deep bench: experienced developers who can work together (and have.) Then you don’t need to find them yourself.
- Can identify the risks and work to mitigate them.
- Can manage the development in a transparent way with understood costs and risks.
All of these needs are best managed with a partner experienced with outsourcing software development engagements.
Conveniently, we know of one. Contact us at Flint Hills Group for a free estimate and a free discussion of your ideas and how to achieve them.
Charlie Martin
Consulting Software Engineer
Charlie Martin is a consulting software engineer and writer in Erie, Colorado, with interests in systems architecture, cloud computing, distributed systems in general and innovative applications of blockchains in particular. He is available for consulting through Flint Hills Group.
Charlie Martin
Consulting Software Engineer
Charlie Martin is a consulting software engineer and writer in Erie, Colorado, with interests in systems architecture, cloud computing, distributed systems in general and innovative applications of blockchains in particular. He is available for consulting through Flint Hills Group.