Skip to content

Conclusions

Working on this project proved to be a great challenge for us, especially because of our non-technical academic background. We found it difficult to remain coherent along all the process of design and trying to integrate all the notions from the course was not easy.

During the planning phase, we found it very useful to conduct an event storming session, which allowed us to develop a common knowledge and understanding of the business domain.

Along the way, we encountered some difficulties related to the business domain specifically but fortunately, we could rely on the opinion of some domain experts who work in the emergency sector. Indeed, we were able to take some relevant decisions about the design of the system thanks to their expertise.

Also, tracking the project using GitHub was quite hard initially as we approached it at a technical level for the first time. On the other hand, we had the possibility to explore the potential of GitHub to store, manage and track projects, both developed individually and in team. Overall, we agree on the added value that this project gave us, allowing us to see in practice the importance of the techniques studied during the course, by applying them in a real world scenario.

Domain Driven Design

Concerning the Domain Driven Design, we started with a long planning session in which we tried to pin down all the concepts to have a clear holistic view of the whole system. After having identified the domain, we were able to map the context of work, identifying all the entities involved in the system.

The design of bounded contexts was identified as the most challenging aspect of DDD, whilst the analysis process carried out with the tools and the philosophy transmitted during the course felt quite natural and effective since the beginning. Furthermore, developing a ubiquitous language for the project turned out to be extremely useful to align the team and provide a common understanding.

DevOps

To implement DevOps in our project, the first step to undertake regards the effective integration of people, processes, and tools to obtain a single entity. The purpose is to encourage collaboration and align IT goals with business strategy.

Then, it is essential to adopt an end-user-centric process to deliver a service that exceeds users' expectations regarding time, functionality, and performance. In this regard, DevOps aims at achieving efficiency by leveraging end-users feedback for constant improvement.

A key practice used in DevOps is automation: through automation, it is possible to save valuable resources in terms of cost, time, and efforts of developers and testers.Continuous integration is the key to a successful DevOps strategy. It enables developers to build software in small, regular steps by immediately identifying defects and rendering feedback.

Future Improvements

After having discussed in group about potential future improvements, we identified two features that could enhance the user experience:

  • Gamification
  • Emergency Progress Status

Gamification refers to the application of game-design elements, in non-gaming contexts, to educate, entertain and engage users. Here, the idea would be to introduce gamification elements to stimulate learning and training experiences towards health, first aid and emergencies' management.

The Emergency Progress Status, on the other hand, regards an additional feature which allows first responders receiving the help request to see the status of the emergency. More in details, they would be able to see the number of people who accept the request, their movements in the map and they would have the possibility to contact them.


Last update: November 13, 2022 14:50:29
Created: September 9, 2022 11:04:00
Authors: Francesca Neri