• Tomasz Soroka

Don’t lose your money - check what is important before the start of your project development

If you are thinking of creating your own application, one of the first questions you ask yourself is how much it will cost you. Perhaps you have a great idea, but due to lack of experience, you are not able to even estimate how much you should invest in creating a new application. Or maybe you have already sent inquiries to several software houses and received estimates that differ significantly from each other?

Before you go from idea to implementation, you should check if you are ready to start the development of your new application. I will tell you about all the things that you should remember before starting development that has a direct impact on the budget of your application.

You will learn, among other things:

  • What things should you do before starting application development and why is it so important?

  • How does this affect the app's budget?

  • What budget should you allocate for the first version of the application and why should it not be too large?

Finally, I will share with you a checklist that will help you quickly estimate the budget of your new application!

Before we get into the things you should keep in mind before developing your application, we need to answer an important question: Why is it so important? Why shouldn't you start development too soon?

The answer is simple: the technology companies and developers you hire to build your solution are experts in their field - software development. When you are going to develop an application,

most of the time you are not doing another Jira or any other developer tool. So your developers need to understand what you are going to do and why.

They need your know-how to provide you with good quality software. Before starting development, the entire team should plan exactly what to do and each team member should understand it the same.

Therefore, it is very important that before starting cooperation with a software house, you know exactly what, how, why, and for whom you want to create. And what's more, that your idea should not be based only on hypotheses. You need to have verified and proven user needs that your application has to solve. Thanks to this, you will minimize the risk of launching an application on the market that no one will want to use and save a lot of money.

So what should you do before starting development?


Regardless of what idea you have for your application and what user problems it is supposed to solve, your potential users are already somehow dealing with this problem, they have some process of managing it, their habits. Your solution must streamline this process, solve their problem in the best way possible for them. Only then do you have a chance of success?

Both you and your entire team should have a good understanding of the current user process, understand how it works, how your users are doing it today, and how it will change, including the software that the team is going to develop. A team that has a good understanding of users' needs and the current process will also provide you with valuable advice on developing and building your application.


Another very important thing that you should remember before starting development is preparing mockups of your application. Why? - It's easy. One picture is worth more than a thousand words. This is very important especially in cases where your solution is to have a User Interface and your users will interact with it. Prepared mock-ups can be simple boards, nothing complicated, but it is important to remember that they should be prepared before starting development work.

Having mock-ups, you should consider flow. How users will interact with your solution, what they can do on the login screen, where they can move, etc. It's about how the user uses the product. When you combine mockups with how you use the app, you get a more complete picture, and your team can show you if you have any gaps, what can be improved, and so on and so on. You should collect such data before starting development.

But the input data needs to be ready before development can begin.

And it certainly shouldn't be that you start the first sprint, and only then do you look for answers about the needs of your users, how to use the application and what you really need to do. Why? Because it's a waste of money. And it's not a little money.


Another very important thing that you should remember when starting development is to gather the requirements and acceptance criteria. A very common and very good solution is to prepare the so-called user stories. This is the typical way of gathering requirements, and you probably know how it works.

Your team will help you define the user's story. Remember, however, that users' stories do not define everything. A very important element of preparation for development is collecting the so-called Acceptance Criteria. Thus, acceptance criteria are responsible for confirming that something is delivered. Let me give you an example to illustrate it better:

As a registered user, I want to see a list of my articles in the application (user stories), But thanks to the acceptance criteria, we can really tell when we can say that this requirement has been delivered as it should.
The acceptance criteria for these user stories may be as follows: the requirement will be met when, after logging in to the user's panel, the user, after clicking on "My articles", will see a list of all his articles.

This is an example where we're using behavior-based programming, so we're using examples to define these criteria. Another method is to use the BDD (Behaviour Driven Development) methodology. In BDD we use what we call scenarios where we describe exactly with a few words some way to do it when the user story is finished when we see when we can say the development is complete.

Thanks to the collected requirements and setting acceptance criteria, your developers will, firstly, know exactly what you expect from them, and secondly, they will be able to quickly check whether they have delivered what was expected.


The last thing you should remember before starting development is the domain of your solution. The team, the software company you hire to build your application, in most cases, their primary task and responsibility will be to provide you with high-quality software. So they are experts in this particular field.

The domain of your solution may be completely different. You can represent the beauty industry, logistics, or hotel industry. You are an expert in your field and your team will not necessarily have experience in this field. Therefore, it is your responsibility to provide them with everything they need to do the job, to better understand your industry and its specificity.


In summary, before you start developing your application, you should prepare for it. These preparations will allow you, firstly, to find the right company to build the application, and secondly, they will save you a lot of money that you will lose on creating an application that does not respond to users' problems and is based only on your hypotheses. Or fixing poor quality software, created by a team that doesn't understand what you want to create and why.

Therefore, before starting development, you should:

  1. Get to know the needs of your users

  2. Prepare mock-ups and flow

  3. Write down user stories and collect acceptance criteria

  4. Provide your team with the necessary knowledge about your solution domain and the industry you represent

All the points mentioned above can be improved during the process of building and developing your application. But you should never start with an application with just an idea in mind or a single page of description. And if you do, you can be sure that you will lose a lot of money. Even with an agile approach, the results will not be as good as they could be.

As promised, I am sharing with you a checklist that will help you quickly estimate the budget of your new application, it's worth knowing before starting work, right?

I keep my fingers crossed for your projects!