How complicated is it really?
To be honest, it is a complicated process to undertake, with a lot of steps involved to get it right. This is true of most professions however, so what is it about software development that often makes people assume that it’s easy and shouldn’t cost as much as it does?
Well, most of us use the internet and software every day in our business and personal lives, we are surrounded by it, and some of us have even grown up with it, so we assume that it can’t be that difficult. But like a gymnast walking a tightrope, or a musician playing Mozart, they can make it look and feel like it’s that easy, like you could do it yourself, and that is a sign of them being very good at their job. Software development is no exception – if an application is that easy to use that you don’t even have to think about it, then they have done a great job.
So whenever we are speaking with our clients about the development process, we often liken it to building a house – code is something that isn’t tangible, isn’t something that we can touch, taste or smell, whereas a house resonants with us. Explaining that removing a line of code will cause another line of code to stop working doesn’t really mean anything to most people, but if you say, if you remove one side of your house your house will fall down, it suddenly makes you aware of what it really means, making the process easier to understand.
Which is exactly what a good software house should be able to do. To take a complex proposition, and make it as easy to follow as possible. But this does take time to master – especially when you factor in that there are hundreds / thousands of software languages out there (no one seems to have an exact number!), and it can often take 5-10 years for a developer to become highly proficient in just a handful of them.
So on any given project, you may need multiple developers working in their own particular language to build the whole, just like building a house – where you would have plumbers, electricians, brickies, architects, and so on, which of course, costs time and money.
Before all of that though, there also needs to be a level of expertise in understanding what coding languages should be deployed on a project in the first place – every project is different, and you need to match what the application will be designed to do, with the languages that are most suited to delivering it.
Then there is the expertise needed for how to host the application and what the infrastructure is going to be to support it – e.g., how many servers are needed based upon how many users are going to be using it, where are these users going to be located, as distance will play a part in where the servers should sit, and so on.
Development is a jigsaw puzzle which requires different people, with different skills, coming together to create the entire picture. With each puzzle piece having to be perfectly placed in order for the final image to be revealed.
It is complicated? Yes! It is worthwhile? When done right, absolutely!
If you have any further questions about software development, or would like to get in touch because you would like us to look at a project with you, please do get in touch on +44 (0) 800 774 7306 or by filling out our enquiry form here.