First contact
Manantial Team · July 16, 2026
1. First contact with the client
The software development process begins when the client reaches out to the company for the first time. This can happen through a phone call, an email, a web form, or an in-person or virtual meeting. The main goal of this first interaction is to get a general sense of the project idea, understand what the client needs, and determine whether the company can offer a suitable solution.
At this stage we don't go deep into technical details; instead, we aim for an overall view of the project. We gather information such as the company name, the line of business, the person responsible for the project, contact details, and a general description of the system to be built. With this information we can prepare the next meeting with more context and focus the questions correctly.
This first contact also helps build trust between both parties, resolve initial doubts, and explain in general terms how the development process will work. At the end, we usually schedule a discovery meeting, where the project goals and the client's specific needs are analyzed in more detail.
2. Discovery meeting
The purpose of the discovery meeting is to deeply understand the problem the client wants to solve and the goals they hope to achieve with the software. At this stage the development team asks questions about how the business currently works, the processes users carry out, and the difficulties they face day to day. We also look at who will use the system and what benefits they expect once the project is finished.
Rather than talking about technologies or programming languages, this meeting focuses on understanding the business. The better the team knows the client's context, the easier it will be to design a solution that truly adds value and solves the identified problems.
3. Business analysis
After learning the general idea of the project, the team analyzes how the company currently operates. We study its internal processes, how employees and customers interact, and the activities that could be optimized with a software system. This analysis lets us understand the environment where the software will run and spot automation opportunities that save time, reduce errors, and make the business more efficient.
4. Identifying users
A key part of discovery is identifying who will use the system. Not all users will have the same functions or the same permissions, so we need to know their responsibilities from the start. We usually identify profiles such as administrators, employees, customers, managers, or suppliers. This information will later be used to design the interface, define access permissions, and set the features available to each type of user.
5. Defining the initial scope
Once the client's needs are understood, we set the initial scope of the project. At this stage we decide which features will be part of the first version of the system and which will be left for future updates. Defining the scope from the beginning helps keep the project under control, avoiding constant changes that affect development time or budget. It also gives both the client and the team clear expectations about what will be delivered when the project is complete.
6. Identifying constraints and risks
Finally, the team identifies the constraints and risks that could affect the project. Constraints include things like the available budget, the delivery deadline, the technologies that must be used, or the need to integrate with existing systems. Risks, on the other hand, can be frequent changes in requirements, lack of client availability, deadlines that are too tight, or dependencies on external services. Spotting these factors early helps plan the project better and reduces the chance of problems in the following stages.
