It all began when you had an idea for a new software product or service. You thought this should be easy for someone to build. Then you took your idea to a few development houses for quotes and received vastly different quotes! What happened? How can the quotes be so different., perhaps even orders of magnitude different!
The first thing you need to ask yourself is: Did they all quote the same product?
Often the answer to that is No!
You need to be sure you describe the same project to each company you are speaking with. Often your ideas about a software product will change during your conversations. If your requirements for your project are not nailed down before asking for a quote, each company may have a completely different understanding of your project. This can be an issue because their concept of the project is not the same.
Companies should ask a lot of questions about your project to get a complete understanding of what you want to build. Sometimes these questions trigger thoughts about your project that you may not have considered. This is great for your understanding of the project, but other companies you are interacting with may not receive this new information. The questions ask and your answers can have an enormous impact on the quote you receive.
During your discussions about your project, companies may have suggestions for features or recommendations for development that can affect the cost. A native mobile application for Android or iOS can provide better performance than a hybrid app. However, if you desire to support both platforms, a native approach will require two code bases to be developed. The quotes you receive will reflect these differences.
One way to ensure companies are quoting the same project is to provide each with a written requirements document that defines the functionality of the app. This also avoids scope creep and some of the variance you get when a company quotes a project based on a verbal or out-of-hand description.
Any software company quoting your project is trying to estimate the effort involved in producing your project. It all comes down to how many development hours will be required to produce the feature set you need. If all bidders have the same understanding of the project, the quotes should be similar. However, there will still be differences. These differences are based on the technologies used, the labor cost, and the companies overhead. The labor cost depends greatly on the country the developer is in and the quality of code they write. Poorly written code may be cheap up front, but you’ll eventually pay for it as adding features and fixing bugs becomes much more difficult. Don’t be too eager to use foreign developers unless you speak their native language and understand their customs. While the world is becoming more connected, communicating your ideas is hard enough with someone who natively speaks your language. Adding cultural and communications differences only complicate the process. Adding additional costs with each miscommunication.
Also, size matters. The size of the company quoting your project has a large hand in the cost. Large companies have higher overhead, tend to pay their employees more and provide them more benefits. This all costs money. Your money!
Small companies can be more efficient and provide more pure development hours because they have less overhead. However, smaller companies often lack resources. Developers and managers at smaller companies tend to wear many hats and are often limited by their various responsibilities. This means your project may take longer to complete. Though you will only be billed for the development hours so the cost remains lower than larger companies with higher overhead.
Freelance developers can have great success with smaller projects as they can be very efficient. They often handle everything required to build your project on their own. They have little overhead, as there is no need for managers or communications specialists. However, if a project requires thousands of development hours, a single resource will take a very long time to deliver your project. Also, a single developer will not be an expert in all phases of development. A programmer typically will not have the skillset to create as slick a user interface as a designer will. One way to handle this is to hire a separate designer for your project. Often freelance developers have a few designers they work well with. If you consider a freelancer you should ask if they have a designer in mind if the user interface for your project is important.
After you choose a development house or freelancer what should you expect? Do they go off and create your product and then hand it over to you when complete? Let’s hope not! The best developers will use some form of interactive process. The development process will require your input on regular bases. You should expect to be to make yourself available for questions, and clarification, and approvals. Not doing so can extend the delivery time!
The agile development process is the most popular and possible the most efficient. The agile process requires that small amounts of work be done in short periods called sprints. Sprints may be as short as a couple of days to as long as a month. The length of a sprint depends on the team, their workload, and the complexity of your project. However, for most projects, you can expect sprints to be from one week to one month. At the end of a sprint, you should be required to view, comment, and approve the work completed. It is essential to realize that the work completed is not the finished product. The agile process is an iterative one. Each sprint is a single cycle of the development process. The application will become more refined and more functional with each iteration. It is imperative that you take part in the development process or you may not get the product you expected as written requirements can be interpreted in many ways.
Your participation isn’t optional, it is required for the best outcome. Postponing meetings or skipping them altogether will delay your project and may increase costs as issues may be found later in the development process and require additional work to correct. When working with small businesses or individuals the number one complaint of development houses is the failure of the client to participate in the development process. This often leads to costs overrun and delayed delivery.
All in all, you must weight the cost against other factors that are important to you. Your best bet is to fully understand and document your requirements, understand the level of effort needed to build your application, and educate yourself on the technical approach being proposed to build your app and any other factors that will drive costs. You must become informed and select a developer you can team up with to make your project a success!