November 23, 2023 | 3 min Read

Navigating the Architectural Katas O'Reilly Challenge: Neurocom's Team Experience

The Challenge

Neurocom proudly participated in the Fall 2023 Architectural Katas Challenge organized by O’Reilly. This engaging event served as a platform to familiarize ourselves with the O’Reilly platform and its content. The Katas Challenge, a live online event, provided teams with the opportunity to collaboratively solve real-world software architecture problems.

Originating from Japanese martial arts, a “kata” is an individual training exercise that emphasizes proper form and technique. In the realm of software architecture, the challenge aimed to practice deriving architectural characteristics from domain-targeted descriptions.

Our specific challenge involved assisting a new startup in building the next-generation online trip management platform, named Road Warrior. Armed with a set of requirements, our task was to provide a software architecture solution within the defined constraints.

The Approach

Our methodology for approaching architectural design issues began with the meticulous gathering, definition, and categorization of system requirements. This included both functional and non-functional requirements, with a focus on the latter to determine architectural drivers.

Functional requirements outlined the desired system behavior, encompassing actors, use cases, and user flows. However, we stressed that these functional requirements alone did not determine the architecture; this role fell to the non-functional requirements, often referred to as “-ilities.”

To assess non-functional requirements during the challenge, we utilized a dedicated worksheet. This tool guided us in evaluating and selecting the top three architectural characteristics, aligning with the identified non-functional requirements.

Architecture Characteristics WorkSheet

The extraction of architectural drivers, essential to the design process, involved analyzing project requirements to unveil hidden non-functional requirements. Constraints, representing the boundaries within which we operated, played a crucial role. Balancing non-functional requirements and constraints shaped our architectural drivers, ultimately leading to the selection of a hybrid architecture for our system.

Architecture Style Guide

The Proposed Solution

The holistic view of our system involved domain space decomposition, breaking down the complex system into independently deployable artifacts called Quantas. Each Quantum represented a problem domain with its own architecture, facilitating independent management and design.

System wide architecture

The system-wide architecture, consisting of five Quantas, reduced system complexity, allowing each Quantum to be managed independently. We documented each decision through Architecture Decision Records (ADRs), providing clear rationales for our choices.

Architecture Decision Records

Note that a comprehensive architecture solution should consider factors beyond core decisions, including deployment options, development viewpoints, cost analysis, and architectural risks.

What we have learned

Reflecting on our experience, we highlight the importance of clear architectural documentation, informed decision-making, specialized diagrams, and effective communication. Collaboration and communication emerged as vital components for a shared vision among team members, reinforcing the impact and accessibility of our ideas.

As a culmination to our journey, we invite you to check out our architectural solution for the katas challenge, where key aspects of our innovative approach are highlighted.

Are you interested in learning more about how Neurocom can help you implement these strategies in your projects? Contact us today to schedule a meeting.