
The answer to this depends on a number of things, but mainly
- How quickly the developers can start work
- How quickly they can do the work
- How many people can work on the development at the same time
- How complex the requirement is
How quickly the developers can start work
You will often find that there is a lead time between asking for some software to be developed and the work starting – most development teams will have a queue of requests that they’re working through, and it’s not always possible to start work immediately. Typically, though, you should expect work to be able to start within a month.
How quickly they can do the work
Modern rapid application development techniques can make software development a lot quicker to do, meaning a lot more functionality can be coded in a much shorter space of time. Agile project management methods typically allow for faster delivery than more traditional project management methods. So – the more up to date the skills of the software development team, typically the faster they can work.
How many people can work on the development at the same time
This may seem obvious – the more people the better – but there is actually an upper limit to how effectively a team can work together on one project.
Jeff Bezzo, from Amazon, famously said that if you can’t feed your team with two large pizzas in a meeting, you’re in trouble! The reason for this is that, the larger the team, the more lines of communication you need – and the more of those, the more time you need to spend telling everyone what you’ve done, rather than getting on and doing it.
In terms of software development teams, this actually means that one person working on their own can usually be almost as quick as two people working together. Three or four developers is usually the optimum size for best productivity.
How complex the requirement is
For very small projects, typically one developer working on their own is going to be the most productive.
For small to medium projects, a team of 3-4 is the most productive and for big projects you’d break the work into smaller segments with multiple small teams, working on one segment each, in parallel.
For most typical projects, you can expect the work to be divided also into phases. This allows for quick delivery of at least the most important functionality for people to start using (typically within 2 to 3 months), with subsequent phases rounding out the application over time.
Typical timescales
In conclusion to the question “How long does software development take?” then:
- You can typically expect a software development team to be able to start work on your project within a month
- Work once started is best done by either one person for very small projects, or small teams of 3-4 people at the most.
- Regardless of size of project, you should expect to have delivery of at least a ‘phase one’ solution within 2 to 3 months