How Much Will It Cost – The Uncertainty of the Software Development Cost explained by the LEGO approach
How much will a software development cost? Probably what lead you to this blog post in the first place was the research on that topic. Probably you would like to develop your own mobile application or another software solution and you want to know what is a reasonable amount that you should invest in it. Or probably you are just being curious. No matter the reason, I will tell you the answer of how much will a software development cost. And the answer is that an exact cost can’t be estimated. I will explain why below.
In order to illustrate the software development and its complexity, we, in DigiMark, like to use as an example what we call the “LEGO approach” of software development. LEGO is quite similar to software development – keep reading to find out why.
If you are a LEGO fan, you know that there are four types of LEGO sets in terms of complexity – age 1-5, age 4-7, age 5-12 and age 7-16. If you didn’t know, well, you already do now. Each of these LEGO sets differs upon the bricks that are included in the box and the complexity of the construction. In other words, the LEGO sets that are for age 1-5 are quite simple and they consist of fewer parts compared to a LEGO set for age 5-12 and so on. You get what I am talking about. Also, the amount of time you will spend on building each of these LEGO sets will quite differ.
a LEGO for age 1-5
Let’s say you have bought LEGO sets for all age groups and you start with the one for age 1-5. You can build it in less than half an hour. However, if you take the LEGO set for age 7-16, it will take you quite more time. You may be able to build it in a day, but you cannot be sure exactly how much time it will take you, as there are many LEGO bricks and also you have to carefully review the building instructions in order to know which part goes where. Or, imagine that you have to build a LEGO of 10,000 bricks or more – it will be even more difficult to say exactly when you will finish building it.
a LEGO for age 7-16
With the software development, it is quite similar – there are small, medium, medium-large and large projects.
Each of these projects is different in terms of complexity of development and also requires different time for development. And because of that, also the cost of each project will differ.
That is why we have to identify how complex is the idea for realisation from the beginning. In other words, is this idea a LEGO set for age 1–5 or for age 5–12 or more? That’s when we usually have a meeting with our customer, in order to know as many details as possible about their project (referring to the LEGO example — how many bricks do they want to have in their construction).
Knowing as many details as possible helps us identify whether the project will be small, medium, medium-large or a large one. In other words, if the software is a small one, we could develop it in a month or two and we could give an approximate cost for it. However, the more complex the project is, the more difficult it is to give an approximate estimation of it. Also, the larger the project is, the greater the possibilities are that throughout the development some questions will pop up and some details will need to be clarified. After all you want a great, high-quality software, don’t you?
After specifying the initial details, we have to check our LEGO building instructions and to see what kind of parts we will need for the construction. Some customers provide us with a detailed technical description — the “LEGO building instructions” in our case — and it is easier for the developers to identify how many and what kind of bricks they will need for the construction of the software. However, most of the time there are no such building instructions — customers come to us only with an idea and we have to figure out what will be the components of this idea and how many components there will be. In this case, the building instructions are in the head of the developers and the designers, and they have to spend some time in order to clarify and specify them, so they can make sure that these “bricks” are the “bricks” that the customer wants in their LEGO construction.
And, having in mind that there are constantly newer and newer software updates, our developers have to update the “building instructions” as well. I doubt that you will be happy to pay for a software that does not work with the latest update.
When it comes to larger projects, we simply break them into smaller Phases, in order to avoid any uncertainties around the project and also to give our customers a final version that they and their end users would love.
Imagine that you, as our customer, would like a “LEGO jeep” project. We will not build the jeep that we think you want and then give it to you once it’s ready. Instead, we will build it step by step. First we will start with the foundations of the jeep. After they are being built, you will give us feedback — maybe you would like something to look different. Then we will start building the doors, put on the tires and so on — and you will have to pay for each part once we have completed it.
Having the advantage to monitor the whole development process, you are able not only to give us constantly feedback but we are also able to react on time. Let’s say that you want bigger seats in the jeep — it will be easier to rebuild them once we have built them, rather than once we have built the whole jeep. Also, we are able to constantly get the end user feedback. Maybe you liked the seats as they were built initially, but your customers prefer bigger seats and they won’t purchase the jeep otherwise. That is how breaking a large project into smaller phases gives you the final result which matches the needs of the end users and which determines the success of your project.
Yes, software development can be a quite complex process, with many questions and uncertainties which can appear during the development process. That’s why it is crucial the complexity of the project to be established since the beginning, and as many details as possible to be cleared out. There isn’t one approach which will “fit” each project — the approach must be customised for each project individually, in order optimal results to be achieved. That’s why we love the LEGO approach — because we believe that it perfectly outlines the complexity of software development.