How much will it cost to Develop your App Idea?
When you have an idea of your App or SaaS project, you can feel uncertain about what to do next. Recognizing how much time and money it will take to develop it can help you feel more confident. It is critical to understand what resources required to create an app to determine whether it worth pursuing or not.
Recently I worked with one of my clients, and I helped him to estimate the duration and cost of his project. I want to share with you what steps I took to assess a project. You can follow through and get an understanding of how you can estimate your project.
A bit of context
My client came to me with an offer to build his saas application idea. He wanted to launch an on-demand services application. So I needed to create a project architecture and hire a team of developers to build it.
I started with project discovery and estimation. A project plan and estimate were necessary to decide whether the project would worth the time and money.
Project Discovery
Before jumping into project estimation, I needed to have a clear idea of what we are going to build. I started from the creation of a document that will contain info necessary to keep all parties on the same page.
This project document included Core Application idea, Goals of the Project, and Project architecture. Creating this document gave me a deep understanding of what is necessary for launching the application. And when you have a clear understanding, it is far easier to convey your idea to another person.
Project discovery started from formulating a core idea of the applications.
Getting clear on the idea
I had several calls with the client and carefully listened to him. Then I wrote down in Google Docs project idea from my point of view.
To clarify the concept further, I answered these questions:
- Whom this application going to serve?
- What pain points will it solve?
- How will the application solve these pains?
After answering the questions, I got a solid vision of what, for whom, and why we are developing this project.
Identifying project goals
When having a clear idea of what we need to build, I moved to the defining goals of the project. There are many ways how to make an application. And having goals and priorities systems would help us to decide what approach is better for us.
For example:
- Should we hire one Full-stack developer or two Developers (Backend and Front-end Developer)?
- Should we develop in-app chat or use 3d party solution?
It is quite challenging to decide until you know your priorities.
After talking to my client, we formulated our goals and priorities for the project. It sounded like: “Launching an MVP only with core features as fast as possible.”
Priorities:
- Speed of getting an app to the market
- Stability of the app to prevent technical issues be a problem for onboarding Users
- Scalability of the application, readiness for fast iterations
With our top priority of speed, it would better for us to hire two developers though it is a bit more expensive.
Defining the feature list
Then I worked on defining a features list. I did it after identifying goals because, with clear priorities, it is easier to separate core features from nice-to-haves.
I created a document where I described the whole structure of the project in the form of the entity capabilities. I think this approach would make it easier for developers to estimate the project.
For example:
Customer
- Authenticate/Authorize
- Register account
- Log in
- Recover Password
- Register with Social Media accounts
- Manage Profile
- Edit Photo
- Edit Personal Info
- Manage Bookings
- Create Bookings
- See a list of upcoming bookings
- Delete booking
And in this fashion, I described capabilities for other entities like Specialists and Admins.
Creating Job Post
With project ideas, goals, and architecture in place, it was time to work on the job posts. In my case, the top priority was delivering a project as fast as possible, so I decided that we need to hire three developers (Front-end Developer, Backend Developer, and Mobile App Developer). So I created three job posts on Upwork.
In each job post, I included our App idea, our goals, and a short version of architecture. You can take a look at one of them below:
Hello guys! We are building an on-demand labor service providing app. The goal of the app is to remove unnecessary complexity of hiring specialists for simple tasks like door knock fixing, cleaning, dog walking, etc.
As part of the project, we need to build a Web Application which will consist of:
- Landing Page for marketing an app
- Onboarding Process for Specialists
- Admin Panel
So we are looking for a Front-end Developer with who will develop it and Integrate with Backend API. You will need to develop a web application using Next.js, React, and TypeScript. The Expirience of working with JWT Authentication will be plus.
The functionality of the web app you will need to develop:
- Develop a Landing Page for the app with a link to App Store and Playmarket to download an app
- Develop a form for application to become a specialist
- Authentication
- Log in
- Sign up
- Specialist Onboarding
- Integration with Backend API
- Admin Panel
- Specialists Mangin Table
- Tasks managing Table
- Settings
Technologies required: React, Next.js, Redux or Mobx, TypeScript.
The Expirience of building backend API using Node.js or Express would be a great plus.
We need to develop the Web App as fast as possible, so we are looking for a developer who can commit 30+ hours per week.
Also, please would be ready that we will ask you to estimate a project and introduce a development roadmap. Please start your proposal from the word “Ficus,” any bid without this word we will skip.
The Web App Design and details about functionality I will provide in a direct message!
I am waiting for your proposals.
Have a beautiful day!
You can notice that I ask applicants to start their proposals from the word “ficus” otherwise, I will skip the bid. With this little hack, I sort out developers who read our project description and can listen.
Interviewing developers and getting a final estimate
As a result of each of the job posts, I received, on average, ten viable proposals from the developers. I contacted these developers, chated with them, provided all necessary information, and asked for a detailed project estimate.
When estimates were ready, I compared and calculated an average time and cost for the project. Since we usually tend to be overoptimistic in our calculations, I added 20% to the average estimate to get more realistic values.
Result
By the end of these steps, I had a clear vision of the project architecture and the idea behind it. Also, I had an approximate time and cost it’s going to take to launch the project. And as a bonus, I got a list of developers who were ready to take on the project and start development.
This way, I showed to you how I went from an idea to tangible things and having more certainty.
---
Thanks for reading! :)
I am Vova Pilipchatin, a freelance Software Engineer and Web Developer.
If you are enjoyed this article, please follow me on Twitter.
There I share what I learn about developing web apps, launching SaaS projects and building a freelance business :)