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. Because each project requires different time for the development, each will have a different cost as well. In cases of really small projects, it is easier to know approximately how many hours it will take us for the development. For large projects however, we prefer to break them down into smaller Phases and give prices for each of these Phases. I will explain below.
Some clients come to us with a brief description of their idea for a mobile application and ask us “How much will it cost?”. This is when we explain to them, that often we can give some price ranges for the development, but even they can be most of the time… uncertain. Even if a customer comes with a detailed technical description of their project, the answer will be the same – probably we will spend a lot less time on specifying the details with the customer, as we will already have quite a lot of information, but again, we would need time to develop the project.
First of all, we have to identify how complex is the idea for realization. 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, so we can get to know as many details as possible about their project (in other words how many bricks do they want to have in their construction). Getting to know 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 their application is a small one, we could develop it in a month and we could give them an approximate cost for it. However, the more complex the project is, the more difficult it is to give even 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 app, 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. When customers provide us with a detailed technical description – the “LEGO building instructions” in our case – it is easier for the developers to identify how many and what kind of bricks they will need for the construction of the app. 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 an app that does not work with the latest software update.
Having all these in mind, it is not possible to give a fixed bid, unless we speak for a really, really small project. Of course, there are some small and simple projects for which is it easier to tell how much approximately they will cost and how long will their development process take. However, if the project is more complex, let’s say a social media or a retail app, it is not possible in some cases to even know an approximate cost since the beginning. As mentioned earlier, software development depends on a lot of factors – technology constantly changes and is being updated, also it depends upon the developers and their productivity in a specific day or time, their experience so far and many other.
Instead of giving you a fixed bid and thus 100% misleading you in terms of time and cost of development (we don’t want that, it’s not good either for you, either for us), we break the large projects into smaller Phases, where you, as a customer, also participate in the development process.
In other words, if your project is a LEGO jeep, for example, first we will start with the foundations of that jeep. After they are being built, you will pay for them and 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.