I had this meeting, and immediately felt the need to share my experience on this subject, “How much will an app cost to get made ?”. There are various types of similar questions I am faced with, like ” How much will you charge to make this app”, ” What is the best price can you offer” ,”That X agency charges lesser than you”, “Why are you charging much higher, although you are based out of India”, “Why are you taking 20 extra hours for documentation?”, etc.
Please note, that I am not writing this article to sell any of our services but rather point out some intricacies which most of the sponsored posts miss out, and sadly the correct information gets hidden out somewhere. Offshore development is great, but lot of people are taking bad impression of the same, due to fundamental(or management) issues at both the ends. Here is a list of some basic factors which you can also find at most of the places online:
- The cost of the apps is based on complexity, features and platform
- Apps having backend servers will cost more
- Cost varies depending on who is building it: in-house, freelancer, offshore-agency or a high-end agency.
- Budgeting for updates, maintenance, marketing, infrastructure, servers, etc.
But apart from these factors there are few other factors which are crucial in software development (app/game development in the end is a software, even if its targeted for mobile users) and moreover product development:
Code Quality: This is a topic where every dev shop whether small, mid or large. Will just say ” We write the best quality code” “We are one of the best company” “We make the best apps around”. Is there any agency or developer stating that they write second best quality code, whenever I interview a candidate no matter how much experience their resume says, they will either state themselves 7 out of 10, 8 out of 10, 9 out of 10 or, 10 on 10. It becomes difficult to digest the fact that, if there is any benchmark(although it is impossible to have one) or standardized measure for code quality, although people can show accolades, awards and certifications to create a psychology in front of the decision maker that the developer or the development agency is good(depending on the costing expectation), but I would like to point some thoughts here:
- would the developers working on your precious app, be dedicated working to your app only ?
- Would those developers be only working on your app, who were assured to you at the start of the project ?
- How many man-hours would be invested in the app development work ?
- Would the developers working on your app/software have the sense of product ownership, when making it. so that even if something is going to take few extra hours or requires some research they are ready to invest that time/thought, or will they just do their bare minimum job and call it a day ?
- Is there any new release of the third-party library, which came during the project, is that release crucial or not for the project ?
- Is the SME (subject matter expert), always available to assist the development team ?
- Are you being presented a run of the mill code or well tested code work ?
- Is the Project documentation completely thought with and complete in all respects(but remember, project documentation does not mean everything will happen perfectly) ?
- Is the database architecture and project architecture exactly what you required ?
- What are the testing mechanisms in place, unit testing, stress testing, manual testing, etc.
Technical Debt: This is what wikipedia states ” Technical debt (also known as design debt or code debt) is a concept in software development that reflects the implied cost of additional rework caused by choosing an easy solution now instead of using a better approach that would take longer. ” This term supports my previous point about code quality, We have been faced by various projects, sometimes in mid-way or sometimes finished by the previous developer but is it full of so many errors and bugs that the client is in a dilemma to start again from scratch or leave the project all-together. Although, it is not just the developers fault, sometimes the clients also bring in so many last minute changes, leaving the developer with no choice but the make quick fixes and ruin the future of the software. Here are some reason’s of technical debt:
- Timeline pressure: Starting of Development before documentation or before design completion, one thinks this is being done to save time but in reality, it costs more time. sometimes the management suggests to reduce the timeline or create unnatural timeline’s which are accepted by the developers considering the business constraints and opportunity sake. In the end making a bad decision for the app development project.
- Lack of knowledge: The developers involved in the project do not have sufficient knowledge to write polished code. It further can be because of many factors. like developers not trained for the specific technology the project is to be built on. For example once we got an unfinished project, the previous agency was trying to make the game for first time and created blunders in the code, in the end the client decided to redo- the project after considering the miserable situation of the game.
- Lack of product ownership: This is quite seen in outsourced projects, some agencies just prefer to write run of the mill code just to get the work off their shoulders, the developers in these companies are also not inclined towards the project so is the project manager, in the end leaving the project in miserable situation
- Lack of technical leadership: Due to cut-throat pricing specially when clients compare vendors based on cheaper pricing, the agencies end up having poor technical leadership skills. Hence leaving the projects in vulnerable situation, a software company has to have a well thought technical leadership and carefully selected subject-matter-experts to guide the project and approve all those architecture which will define the projects technicalities
- Last minute Change-Requests: Have discussed in detail about this in the topic below.
Do have a read of this, its an excellent resource on software engineering and project management, the discussion about “the Mythical Man-month” is impeccable. In our opinion this is the prime reason for having project delays since the client ends up thinking having as much workforce will is directly proportional to project delivery.
Code Smell: This might sound too much theoretical, but it is true, we see lot of projects like this in our dev shop, where the code had a surface indication while development but due to timeline constraints and not much thorough communication between the client and the agency, the problem was overlooked and software was pushed to production. Leading to uncovering of deeper problems. This in the end leads to technical debt. Some common factors of code smell are:
- Duplication of code, same code present at various places in software/app.
- Complex architectures: Not much time was invested in planning and Documentation which lead to a complex code architecture, although there are possibilities of simpler architectures too.
- Bad documentation: We have practically faced this number of times, sometimes, the documentation is incomplete or inept, which leaves huge amount of un-traced code, making the new developers spending too much of time on just understanding the flow of the code.
Development Paradigm: Sometimes, due to time constraints and technical inability, proper development paradigms are not followed making the project difficult to get ported from one team to another. We follow Agile software development methodology, and when an incomplete project is brought to us for delivery, we end up wasting lot of time in just following the SCRUM framework which could have increased efficiency. instead the end client feels, we are wasting time, rather than showing deliverable’s, at a point, one of our client even ceased the project, just because they thought we are cheating them by “taking un-necessary time in documentation, when that time can be spent in delivering work”. Although, after few months the client came back since one of their adviser suggested that our modus operandi was actually correct.
I hope the above points will be helping you to decide on the next development agency, I did not write this to fare any agency or freelancing against each other, instead my aim was to portray the issues which mostly are on the management end, while selecting an agency or managing a project currently underway.
We are a product development agency, every time we used to feel ousted that we spend time and care for the product for our clients’ even not taking projects at time just to insure fairness for the product being developed. In the end we still used to see some client’s taking bad impression for other agencies before coming to us. I hope this article helps in decision making and cost defining process.
About me: I am Samanyu Chopra, co-founder of Daphnis Labs, we work on Mobile app and Game Development, have extended expertise in Data analytics for NGO, games and app projects.