Exaud Blog
Blog
Exaud Meets: Inside Our Team’s Project Journey
Learn in this interview how the team created this meeting app, from beginning to end. Posted onby Exaud
Introducing Exaud Meets: an internal project developed by a few members from
the Exaud team. In this interview, discover how this team brought this
versatile meeting application to life, from inception to execution.
What sparked the idea for this project?
André Lopes: Exaud has been working on some Unity projects in the past, and
given that at the time we were transitioning between projects, we ended up
taking some time to prepare the foundations for new projects with similar
requirements, such as authentication, multiplayer and video calls. We ended
up choosing a meetings application as the base idea for applying
requirements to a well-structured application focused on testability and
reusability. To back this application, we also used a backend using NextJS,
which was also something we wanted to use as our foundation for future
projects.
Gil Moutinho: I believe it was the experience that many team members have
with Unity and 3D applications, along with our past involvement with meeting
apps and creating metaverses.
Can you describe the technologies and methodologies used during the
project’s development process and how they contributed to its
success?
André Lopes: We used Unity engine as the game engine, Photon PUN for the multiplayer layer, and Agora to manage video calls. For the backend we used a NestJS Typescript server deployed on AWS using EC2, Cognito and Amazon RDS. We developed this project using SCRUM, which allowed us to refine our development process through constant review and feedback about our improvements, failures and brainstorming. All assets were created by our design and modeling team. The interface designs were created in Figma and represented pixel-perfectly in Unity, while the models were created in Blender in the most optimized way for game engines. Both designs and models underwent approval phases before implementation.
Gil Moutinho: From all the technologies and methodologies we used, I would
like to emphasize full SCRUM with sprint plannings, reviews, and
retrospectives, which some members of the team had little experience with;
the pipelines we created in Bitbucket to automate CI/CD, run tests and code
analysers, and upload builds; and all the documentation made for features
and processes. These are all good practices that should always be present in
every project.
What were some of the main challenges encountered throughout the project,
and how did the team overcome them?
André Lopes: During the retrospectives after each sprint, we discussed the problems that we had. One problem discussed multiple times was how the code review was being handled. Usually, the code review was the bottleneck of our development process. In the beginning, the code review was mostly done by the Team Leader, which was sometimes blocking the progress of tasks. Over time, we started delegating code review to a few people that were confidently pointing out mistakes and improvements that could be made. We also started asking all Developers to always take some time to do code review on their peers’ code as a way to accelerate the feedback.
José Ribeiro: Another problem was adapting to unit tests that had not been
created in other projects at an early stage. Sometimes the estimates for the
tickets did not account for these tests, which caused the ticket delivery to
take longer than expected.
Gil Moutinho: Maybe consistently following the architecture we chose was
challenging. Sometimes, as the project progresses and requirements became
more complex, it wasn’t as straightforward as it was initially.
Additionally, tasks like implementing unit tests and CI/CD in Unity weren’t
as easy as in other technologies. However, with teamwork and patience, we
managed to overcome all these issues. It was good that we were given
valuable time to improve as engineers and learn how to use new things.
Thank you to the team, including André Lopes, José Ribeiro and Gil Moutinho,
for sharing their thoughts in this interview. Check out a few screenshots of
Exaud Meets.