Est. reading time: 6 mins
How to estimate the cost of web application development for your company?
Web applications differ significantly. One can be a very simple tool that can be built in several hours but, on the other hand, an application can become a large project which will develop for many years. We all know sites such as Allegro, Amazon, eBay etc. The below list of what needs to be taken into consideration when estimating the cost of an application will be useful for a system of any size, regardless of its type.
Say you are after a system for a medium-size company. The software should include elements of CRM, ERP and MES. Realistically, it can have any set of functions that your business requires. The way the cost is calculated is analogous.
Web application has only a few limitations:
-
the system requires internet access (which does not seem to be a limitation in 2020),
-
the application cannot be installed on a phone or a computer, it can only be accessed through a browser.
Other requirements can be met.
HOWEVER: The fact that any requirement can be met does not mean it will be worth the cost. You have to ensure the benefits of having a certain function will save you more money than the function will cost.
Web systems include:
-
CRM – customer relationship management
-
ERP – enterprise resource planning
-
Ecommerce – web platforms used for commercial transactions
-
MES – manufacturing execution system
-
DMS – document management system
-
HRM – human resources management
-
any other system that has multiple dashboards for people performing different roles
How to estimate the cost of a web application?
Below you will find the basic elements that will be considered when you ask for a quote for web application development. Additionally the list includes software guarantee, maintenance, future development of the tool, and the staff training.
Quote for web app development
Make sure you consider all the below elements when you ask for a quote. Also ask each of the software houses you consider for their list of factors that increase the cost. Compare the lists and ensure each point is clear to you and you know what you are going to get for the money you pay.
Web application graphic design
If your web application is going to be used by your customers, it should appeal to them. It is worth to find a good, experienced graphic designer. This person needs to understand UX and UI and be able to adapt the target group’s point of view. The graphic designer’s responsibilities should be clearly defined:
-
logo
-
visual identity across the website and the dashboards
-
document templates
-
design of social media sites
If the software is only to be used within the company, the visual aspects cease to be a priority. What is significant then is to improve workflow as much as possible. A number of clicks required to complete a task that is performed repeatedly should be analyzed. The 3-click rule should apply to get any information you require from the system. You can expect that an experienced software house will show you ready dashboard templates. The cost of graphic design will differ so opt for the option that is best for you.
Requirements analysis
What does your team need? A simple question with a very difficult answer.
To make the analysis, it is worth to speak to a professional from outside of your company unless you have a person in your team who is qualified to make it.
When analyzing your requirements, think about the whole business. What could be done better, faster, and what you don’t need to do altogether.
Think about your whole team. Do not omit any roles you might think will not benefit from the new software. A web application can greatly improve the workflow in areas that don’t seem to be that obvious at first. Open up to new possibilities and ask software developers for advice. Ask what else you could streamline using the most innovative web technologies.
Find software houses that completed projects similar to yours and stay away from companies who cannot prove their experience. You certainly don’t want a software house to learn on your project.
Requirement analysis should be very detailed. If you have people in your team who are qualified to do it, use their expertise. If your team lacks such qualifications, hire a professional from outside of your company to ensure you get the most detailed view of the project budget.
Functions
Functions are the key element when estimating the application cost. All the functions that you need have to be clearly defined and presented to the software house. Web development specialists will certainly support you and your team but you are the people who know your business the best. It is worth to organize a few meetings within the company and think which processes you want the web application to support. Write down all the modules you want the system to have. E.g. if you run a language school, those can be:
-
users – team
-
classrooms
-
teachers
-
groups
-
customers
-
customer payments
-
teacher payments
-
certificates
-
agreements
In each module, decide what further options you need. E.g. it could be:
-
how many people can groups have,
-
what are the ways to bill customers
-
how many agreements do you want to create with one click
-
what are potential scenarios for a group?
-
Can a group of students not start a course?
-
Can a student switch groups? If so, what happens with the way you are going to bill them?
-
What are the rules when giving a customer a discount?
-
If a teacher commutes to where the classes are held, do they get a financial benefit for that? If so, how is it calculated?
There are lots of scenarios such as the above and those need to be foreseen and described.
Status in the web application
All records within the application will have their status. By record we mean:
-
customer
-
task
-
order
-
project
-
reservation
-
user, etc.
The most simple status will be active/inactive. In many cases, it may be worth to provide more options of a status. In more complicated cases, you may want to use more than one status at the same time.
E.g. when an agreement with a customer is made, such a document will show two independent pieces of information.
-
Agreement status: draft, quote, pending acceptance, accepted
-
Delivery status: ready to send, sent, signed, archived
Of course, these are only examples but a status should clearly define what is happening with a certain record and what should be done next (and by whom).
Processes in the web application
When analyzing the processes and how those can be optimized, it is necessary to write down all the options. If there are a lot of scenarios that rarely occur, those should be skipped. However, you should have one custom scenario that will allow you to facilitate work with the rare cases.
E.g. if you have a CRM system for management of return of faulty or damaged goods, you will have several scenarios to work on. You have to think about variants of the process when the customer fails to send in:
-
the proof of purchase,
-
the description of the issue,
-
the return address,
-
their expectations on how to resolve the issue, etc.
Each scenario means additional work for the programmers, so it is important to choose the truly relevant cases in order to fit in the budget.
Synchronization between the web application and external systems
Synchronization between your application and external systems is not necessary but it can prove really beneficial. The aim of this step may be saving time or improving the application potential.
Say, you run a manufacturing company and you add your invoices and GRNs to your accounting software. There is no point in doing the same job twice and add it again to your bespoke manufacturing execution system. It is worth to synchronize the two systems to avoid doing the same task twice.
Integration with SMS software can improve data exchange within the team and between your business and its partners. The application can automatically send texts or emails to your chosen contacts whenever necessary. E.g. a HR company can use this facility to remind applicants about their appointment the following day.
Web application capability
Estimate how many records your application will hold in 3 years. Ask the software house if they can create a database of this size and provide access to it. Check how fast the application works having e.g. 100 000 customer profiles. See if you can test it within the price you are paying or if it will generate extra cost.
Speak to the software developers and decide how the tables should work to load quickly and efficiently. Together see where the application can work slower due to the volume of calculations.
Software ownership
It is difficult to set some rules when it comes to web application ownership rights because each software provider has their own. Read the agreement carefully or ask a lawyer for help you understand what your position is in this respect. Check what your options are with the provider you are considering and with others. It is crucial to see if you will own the code and databases and whether those aren’t encoded by any tools. What is of equal importance is to have the right to develop the application further in accordance with your needs and using the service of your chosen software provider or other team.
Server maintenance
Ask yourself if you want to pay a global cloud service provider, one of well-known local businesses, or maybe you prefer to maintain your own server in your office. Each of the solutions has pros and cons and will be priced differently.
If you want to maintain a server yourself, you need to consider the cost of hiring an external professional to take care of the server thoroughly or having your own staff do it.
Server maintenance is also directly related to personal data processing. Ensure everything is done in accordance with the existing law.
Backup copies
You have to have them and there is no leeway. The more often they are created, the better.
Mind that a backup copy is one thing but recovering the system from it is a different story. It is recommended to try running this process to ensure that it will be possible to do quickly it if there is such a need in the future.
It is a key test if you keep in mind that any application outage entails financial loss for your business. If the process is not tested beforehand, the system recovery may take several days or turn out to be impossible for some reason.
Software guarantee
When you ask for a quote for web application development it should take software guarantee into account. Check how long the warranty lasts. If you get the source code, your agreement will certainly state that the code cannot be changed if you want to keep the warranty. Make sure the team who has access to the code refrains from introducing any changes.
It is crucial to check what the estimated response time from the web application provider is if you report an issue. Your agreement should state what can be considered an issue to be raised.
Post-warranty web application maintenance
Web application maintenance is a wider term than software guarantee. The guarantee only covers the application itself. Application maintenance will also include the whole server infrastructure. To ensure the system works correctly, 3 elements are required:
-
Internet access,
-
server infrastructure,
-
application.
Depending on what server you choose, the pricing will be different. Like with software warranty, also in the case of post-warranty maintenance, you should check what the response time is and how many hours the provider has booked for your project each month.
Future application development
The major advantage of web applications is the freedom of development. Learn how an application development process looks like. Ask for an agreement template which will be the amendable base for your agreement.
It is best if your company is the only decision-maker when it comes to the application development. To achieve that, you have to choose a software house that will transfer the application ownership rights onto you. You have to avoid a situation where you have to depend on one company. Their policy in terms of dealing with your business may change, which is a risk not worth taking.
Ask how you will be able to raise ideas or needs and how the software provider will go about them. It is worth to clarify how the time spent on further development and maintenance will be priced.
It is difficult to foresee the cost of further development of the application because even you cannot know what you will need in the future. Getting to know the price for a man-hour gives you a certain view on that but what is most important in this respect is the efficiency.
Web application documentation
There are two types of documentation. The first one is the code documentation for a new team of programmers who may potentially take over. The other type is the documentation for the application users.
Software documentation for programmers
This type of documentation will probably never be used. It sometimes happens that application maintenance is taken over by another company but it is difficult to find cases where this would happen more than once.
If it is documentation for synchronization, certainly, it will be used quite often.
Software documentation for users
You can ask to have the documentation prepared, however, from our experience, it is rarely used by the users in reality. Another downside of the documentation is the fact that it has to be updated from time to time. If you change something in the application, the documentation has to be updated too. We don’t want to say whether it is worth to have the documentation or not but what need to be pointed out is that it will entail certain cost and will somewhat delay the completion of the project as it is also a time-consuming task.
A good alternative to having documentation written is to have a module added to the application so that your team can make notes on how to use the application and where they can list the rules or procedures that are relevant when using the application. It is more than software documentation as it will not only have the instructions on how to use the application but will also cover areas such as procedures for the team to apply in certain situations.
Automated web application testing
Generally speaking, applications should be tested automatically. There is no need to elaborate on the types of tests and their exact aim. What is relevant is that you should speak to several web application providers to see what types of tests they run and compare those. Make sure that the agreement clearly states you will receive the coded test routines along with the application.
If you want your application to develop and change as you go, it is even more important to focus on the way the tests are designed. The most significant ones are:
-
unit testing,
-
black-box testing,
-
responsive web design testing – for Ecommerce.
The more tests you require the higher the final price.
Staff training
Note that your bespoke web application will be one unique system that no one else in the world will have. That means you will not be able to find answers to your questions about the application or resolve your doubts using Google.
The length of training will depend on the size of your team and staff rotation, which will affect the price.
No matter how qualified and committed to work your staff is, they need to be able to ask for support of a professional who knows and understands the code. It is irrelevant how often such a situation may take place: your team cannot be deprived of the chance to get explanation of the way the system works.
With applications that are constantly developing, one element can have a history of different ways to use it so it is not a good idea to follow what was remembered from the design stage, especially that while a certain element was discussed there may have been dozens of ideas on how it could function.