This is a general idea of everything related to a project that you carry out for the company Grupo Puntacana. In this post, I will talk about the problem the company had, how the web application was designed, how we implemented it, the architecture we used and how the project continued.
Grupo Puntacana is an association of several companies, which is managed by Frank Rainieri and his family, the association has an airport, several hotels, different franchises, among other things.
The problem that the company had.
Due to the nature of the company, the majority of employees are operative (housekeepers, gardeners, cooks, security, etc ...) it was necessary to evaluate these collaborators in order to have a control of how the company's competences are, both to improve them and to maintain them.
Before doing the web application, the whole process of evaluation of collaborators was done through an excel sheet that solved the need causing little inconvenience to those who used the excel sheet. At the time, it was requested to make a web application where it could be more agile to do the whole process of evaluating the operative collaborators of the company.
How did you design the web application?
The idea came from a solution that the company had to evaluate all that were administrative collaborators, this solution towards everything that was needed for the collaborators. The operative collaborators had not been added because it was very expensive.
What we did was to take the whole form of how the data structure of the purchased solution understand that structure, and already with that knowledge make our own solution to say it in some way.
What architecture do we use?
At the time I had read a lot about Clean Architecture, this is an architecture shared by Uncle Bob, where he shares how he understands that they should structure the projects.This is the link to the publication.
What I love about this architecture is that the logic of the business is inside a layer that does not matter the library, or development tool that you use, everything is fine in the background and the interfaces (like Uncle calls them) do not touch the logic of the business.
At the time of coding with that mentality was fascinating, it was only to encapsulate the logic of the business in small functions that later unit gave a rule, when I had to try those small functions I was super comfortable.
One of the things that usually happens in the development of very large systems is the constant change of business rules, with this architecture it was not a problem because it was only commenting on business rules that were discarded at the time and adding new or otherwise, edit those small rules.
How do we implement the web application?
The moment arrived in which the web application was seen mature in terms of the functionalities that we needed to evaluate the operative collaborators, in a meeting surgi the idea of starting with one of the companies in the first place, it happens that one of the companies He was about to close his work cycle and it was at that moment that the evaluations were sent to him. The organizational development manager proposed us to start with them as a pilot.
This was our validation to see if what we had conceptualized and developed met the need that was posed to us.
I remember that moment, we all believed that something would go wrong, that something had escaped us. We prepared everything in case something went wrong to be able to solve it on time, there were many hours of tests that I did so that everything went as we expected.
After a while of launching the evaluations the supervisors began to use the tool, ask questions, to send emails and it was at that moment when we felt the heat of the users using the application.
I only remember that moment when I entered the application and from one moment to another the evaluations began to end that step. It was very gratifying that moment, I could not believe it myself, I felt proud of what God had allowed me to build with the help of my coworkers. I remember my immediate manager telling me "Wow I thought we would have a lot of problems with the application and it was not like that, good job".
With what do we continue?
Part of what we continued doing was to evaluate what we had and how that would adapt to the other areas that had a little more complexity. We met with these areas and other use cases arose that we had not contemplated. We put them on paper and gave them shape to then continue with the development of the application.
In the second part of this publication I will tell you, what were those other cases of use, how we developed it, how we implemented it and how well or badly we did it.