Outsourcing software development — a guide
A couple of years ago I wrote a blog post on my personal website outlining how to outsource software development to a third party company. I’ve decided to flesh that blog post out and create a more comprehensive guide.
The guide consists of four parts, and will cover the entire process a business or individual can follow to find a proficient and friendly software development team to build their next big idea.
A few assumptions we make about your software project before we dive in:
- We assume your project is a tad more complex than just a simple WordPress marketing website. Ideally something that drives a core part of your organisation’s back office, or a new Software as a Service (SaaS) start-up looking to create a Minimum Viable Product (MVP)
- Your budget is at least £20k, perhaps significantly more
- The timescales for your project are measured in months or perhaps even years
- You know a little about the process of software development but you’ve not worked in the industry and you are reliant on your software development partner to guide you through the process
If this is largely in keeping with the project you’re looking to undertake, you’re in luck! This guide is going to effortlessly work you through the process of:
- How, and more importantly when, to start your search for a software development company (this post)
- Defining the high level requirements and roadmap for your project (coming soon)
- The initial call or meeting with your potential software partners (coming soon)
- Creating a prototype or MVP minimises your project risk (coming soon)
- Onboarding with your chosen software company, including how to avoid getting contractually screwed! (coming soon)
- Kicking off the project and maintaining control of your project (coming soon)
When to start your search
NOW! Perhaps even yesterday.
Okay so yesterday might be a tad difficult without the help of Marty McFly but you get the idea.
The best software development companies are booked up months in advance. They all have to strike a perfect balance between having enough staff on board to satisfy customer demand, and not over hiring as great developers are incredibly expensive. To give you an idea, the average annual bill for a software development company’s staff is usually 50% of all expenditure.
So don’t be surprised if when you first contact a software company their opening question is “What deadlines does your new software project need to meet?” If you respond with “I need this ASAP” or something similar you’ll potentially be classified as a problem client from the outset, which might see one of your preferred suppliers decide not to do business with you.
Skills your typical software company will offer
Not all software development companies are created equal, and they will all have strengths and weaknesses according to the skills their staff possess. Before you begin your search it’s important that you understand the high level services software companies offer. Most will offer a subset of the following, and a quick review of their “meet the team” page will uncover the types of skills you can expect to find lurking within a company.
Business Analysis
Business analysts (BA), or “developer whisperers” as I like to call them, are a special breed of person. They’re able to take the most outlandish customer requirements, and convert those needs into a structured brief that developers can use to build something that resembles the original requirements.
The reason we say resembles is that all customers will have needs that are about the software outcome that is created and the time and cost that outcome is provided within.
This handy video diagram does a fantastic job of saying without words what I am getting at:
https://www.atlascode.com/wp-content/uploads/2017/04/good-fast-cheap-video.mp4
Software development can be good and fast but never cheap. Or, fast and cheap but never good. Got it? Good.
Only the UK National Health Service is capable of paying over the odds for bad software that isn’t delivered very fast (or indeed, at all). Don’t be the National Health Service.
Anyway, a business analyst will work with a customer before their project gets anywhere near the developers to ensure that expectations are managed and the promise of fast, cheap AND good is never made.
You need a BA for your project if you are not familiar with how to structure requirements for developers. A BA will ask you the right questions, convert your answers to developer speak. More technical BAs will even prototype some aspects of your software to show you what the end result could look like. In our experience prototypes are a great way to bring a customer’s vision to life ahead of any development.
Development
Let’s face it, you want software development and so software developers are pretty essential. Developers build the guts of the system or website, and are the cornerstone of any successful software project (and don’t they know it!).
A company will have a collection of developers in their ranks, each developer will carry their own strengths and weaknesses but broadly you’ll find that developers fit into the category of:
- High end — this includes CTOs (Chief Technical Officers), technical consultants, senior programmers. These guys are the most proficient but come at a cost. What you pay for in experience you will potentially save in time as this level of developer can churn out great quality code very efficiently.
- Mid level — programmers who are no longer junior but still only have one to three years of experience. Not as expensive as high end but still good value for money on the right projects.
- Junior — programmers just starting out usually given very low end jobs to increase their skills and knowledge. The least proficient but usually the cheapest labour available and great for lower level tasks that you wouldn’t want to invest in high end developers to work on.
Regardless of the proficiency of the developer it’s not always the case that you’ll have regular contact with them. Not only are they typically locked away in a basement (we joke, sort of), broadly speaking developers tend to do their best work in peace and quiet without interruptions. As a result, you’ll find that business analysts, and later in the project, account/project managers are your primary port of call for staying in the loop.
UX (User Experience)
User experience, as the name suggests, is the role of one or more people in a software company that are purely devoted to making sure the experience that users have when using software built by their developers is a good one.
Developers and user experience experts are not the same! If you come across a company that has a developer on their team with “UX experience”, run for the hills. They’re probably not a great developer, nor are they likely to be very good at UX.
You see, development is pretty objective. It consists of logic, statements of fact, maths, rules and so on. UX on the other hand is somewhat subjective. The role of a UX person is driven first and foremost by empathy with the users of the software. Trust us when we tell you that developers tend not to err on the side of empathy for their users.
A User Experience specialist is an empathist first and foremost. They exist as an advocate for the end user that will be left using the software long after the developers have moved on to their next project.
In an ideal world every software project undertaken would have dedicated UX expertise applied to ensure the end product is as user friendly as humanly possible. UX is particularly important if you’re writing software that is customer facing rather than a system that will only be used internally.
Testing
If developers are the rock stars out on stage jamming out to their adoring fans, the testers are the unsung heroes of the gig. They’re stagehands who work tirelessly behind the scenes to ensure that the developers do their best work, and customers are provided with software that meets the original requirements.
If you come across a software company that doesn’t have some form of testing department, prepare yourself for disappointment ahead of time. Developers never, ever, write software that is bug free, they’re too close to the action to spot their own mistakes. So it’s absolutely essential that testers are available to double check with a more objective eye.
Testers don’t just test the functional aspects of the software, depending on the type of project being undertaken they’ll also ensure that the software is:
Secure, as in stringent security standards have been followed and the software can only be accessed by people with the relevant credentials Works across the devices, platforms, and browsers that the customer requires
Well documented to ensure that in a couple of years’ time we can all recall with a level of accuracy why certain decisions were made
Repeat after me — good testers are essential to the success of your software project. Don’t leave home without one.
Project/Account management
We’ll err on the side of project manager for this section but you’ll sometimes come into contact with an account manager who is also a project manager. We prefer project managers, as their primary job is focussed on the delivery of projects. Account managers can sometimes have sales targets to meet, which won’t always be aligned with the customer’s wallet — if you know what we mean?
A good project manager is the lubricant in the engine that is the software development team, including the business analyst, developers and testers. A superb project manager also knows who to bribe when she needs to call in a favour to get something extra special done for the customer. For this, Bourbon biscuits are a currency most developers understand the value of:
The main role of a project manager in relation to software development is to report on progress. Project managers are there to report on actual progress versus expected progress, and manage expectations from project start to completion.
Project managers will also handle conflict resolution which is almost inevitable on any project of a certain size. A good software development team is only ever enhanced in terms of their ability to deliver on customer needs by a good project manager.
How many software companies should you make contact with?
So you’re now equipped with the list of skills you know you want your software development partners to provide. Just how many should you approach? Well, obviously there’s no real maximum and you can speak with every single software company in the UK or beyond if you wish — but to kick off we would recommend that you make contact with three to five.
Geographically speaking, where possible, find a local software company. It’s not essential but being able to pop over to the software company’s offices from time to time can be useful, and vice versa of course.
Where to find good software development companies
Good is entirely subjective, so before we describe locations let’s define what good actually means. A good software company:
Has been in existence for a number of years and looks like they’re going to be in existence for years to come
Employs people with the skills to produce what you need to build (see above!) Has provided software to previous customers similar in size or industry to yours
Is capable of providing testimonials from said customers
We would recommend the following approaches for finding a software company, in order of most ideal to the least ideal:
- Speak with companies in your industry who might have had similar needs to yours and see if you can obtain a recommendation
- If you know what type of technology you’re looking to use, there are often partner schemes software companies can subscribe to. For example, we use Microsoft .Net technology and are a Microsoft partner, so we’re listed on the Microsoft Partner UK website.
- Use business forums such as www.reddit.com/r/business or www.ukbusinessforums.co.uk to solicit recommendations
There are - Google for “ software developers” without the quotes. Obviously, if you live in the middle of the countryside you might want to swap with . Being in close proximity of your software developers isn’t essential, but face to face meetings are often useful, especially if this is your first software project. Make the distinction between companies that are paying for their Google listings (sponsored adverts) and those who appear organically. Those paying to appear on Google in the form of sponsored listings are more likely to be pro-actively looking for work.
Short-listing software companies
Once you have a list of software development companies you’ll want to shortlist them. As much as it pains me to say this in 2017, do not write off a software company based on their website alone. You’re looking for software development here, not a design company right? So within reason don’t let a website that isn’t to your particular taste put you off making an enquiry. Unless of course good design really is core to your project requirements.
Aside from that, these are the things you should focus on when you’re short listing down to the companies you’re going to make contact with:
- What examples of work (aka case studies) can you look at, and more importantly have they performed the type of work that you’re looking for?
- What type of customers do they typically work with? If you’re a start-up chances are you don’t want to choose a company that seems to solely work with big name brands, you perhaps might not be able to afford them
- What technologies do they use? Are those technologies capable of producing what you need?
- How big are they? A small team might be fine if you only need a simple app. If you’re looking for a backend system to manage millions of pounds of inventory you want a sizeable team (5–20 people) dedicated to your project.
Using the above indicators to guide you, build a shortlist of at least five companies that you’re going to reach out to. You should then contact them with the brief, budget and timescale you already have either via e-mail or through their contact form. Some of the larger, more established, software companies will have you complete questionnaires on their website before they will speak with you. Don’t be put off by this; companies with a solid and proven workflow for creating good software are most likely to create what you need. They’re also less likely to waste your time.
Don’t expect an immediate response to your enquiry, but next business day or indeed the day after that is reasonable. You will tend to find that you receive an initial response, followed by a more detailed response in 24–48 hours. Based on their feedback you will soon whittle down your initial candidates to two or three that you go into more detailed dialogue with.
In the next post we’ll explore how to hold more detailed conversations with your shortlisted companies to decide upon a final provider.
Originally published at www.atlascode.com on April 20, 2017.