Why so expensive? How the budget of an Android app is formed
What can think the client after getting the project budget?
“Oh, it’s so expensive – I read in Internet that Android application can be developed within 3 hours, and a studend has made a website for me for $200…”
“Fine, that budget fits my expectations…”
“Wow, too cheap! Seems that they will do that in bad way and will disappear…”
It would be good to guess the capabilities of a client… and more those latter clients. For those clients we can propose the project quality control and decrease of risk. However that is another story.
So, how the project cost is calculated?
Indeed, everything is easy. As in any other production sector, the cost of application development is the standard hour price multiplied by the count of hours required for the development of the application.
The standard price hour is determined by the qualification of the specialists and is closely related to a monthly salary of the programmer.
Is $30/hour a big or a small value? If you compare it with the cost of automobile repair works, then, as a rule, the automobile repair works cost more. The standard hour price in automobile service includes the capital costs of the elevator and electrical instrument. Also, the standard hour price of the qualified programmer includes the “costs” of the utilities and libraries developed earlier, as well as the knowledge of architecture patterns and algorithms.
Since used instruments (knowledges and skills) allow to reduce the development time, the development by qualified programmers may even reduce the project budget. In any case, the development by qualified programmers will get a product of high quality.
Preliminary cost estimation
If the development company received from client only a few lines of the project description (in the best case, we get some pages of text), it is very difficult to guess the project cost. However we need to do such job. The project cost may be roughly estimated by calculation of the modules, database objects, and UI forms (screens). As a rule, such calculation underestimates the budget and one should multiply the result on a coefficient (from 1.5 to 3 depending on how large is the project).
As a rule, the project including Android application consists of multiple modules (the Android application may be however the primary module). There may be an administrative module, which controls content and users, project website, version for iPhone, embedding privileged Android apps into the firmware, and many others.
The more modules are in the project, the more accurate architecture design is required for successful development and subsequent start and support of the project. It is necessary to design the database, interfaces between modules, and the architecture of all modules. As a rule, the architecture designer is the most experienced specialist, and the cost of the architecture design may reach 30% of the whole project budget.
Architecture errors may cost very high in the future. Therefore, when we include the architecture design costs in the mobile app business plan, we finally save the client’s money and increase the quality of the product.
Good design is the face of the project, it is not recommended to cut design expenses. The more detailed is the design description, the less is the price of design works. As a rule, the most expensive thing is the idea.
The coding, which is usually the only thing which is taken into account when the project is estimated, costs only a half of the project budget. All budget comes to coding only in very small projects.
The expense of Android application development depends on the number of developers. The less the number of developers, the better. However it is not possible in large projects. The interaction of developers and idle time due to waiting each other causes additional expenses. We are minimizing and regulate the interaction of developers by the rule “one developer – one module” and by describing interfaces between modules before starting the development.
Testing and debugging
There will be errors. It is normal for any complicated product, and also for Android application. The count of errors is minimized by testing of the application on the developer side after the end of the development, before delivery of the application to the client. We apply different types of tests:
- Unit-testing of algorithms and functions;
- Testing of the user interface;
- Testing of the module interaction;
- Load testing.
A part of tests are automatic. Some tests should be made manually by the tester.
When the project is going into operation, the technical support is required. It may be done by the client (in this case, good technical documentation and training are very important), or by the developer (the number of standard hours should be reserved).
Explanation of costs
We provide the client with the explanation of the project budget, with the explanation of the delivery terms and, if necessary, with the project schedule. If some items are doubtful, we are ready to discuss the documents with the client.