Back to EDRs
3 mins read

004-amaru-design-framework

process
accepted

Amaru design framework

Context

Amaru is meant to be(come) a rather large and complex project, spanning over multiple years.

The ambition of the project is to build a new fully interoperable block-producing node for improving the overall performance the Cardano blockchain.

The Amaru node wants to provide a simplified entry point for building things on Cardano by using a modular design and Rust as its main coding language.

Motivation

Given the ambition of the project, we need a structured approach to turn ambitions into concrete goals.

We want to have a unified structure to streamline development, ensure cross-team collaboration, and maintain focus on core objectives.

This framework needs to enable efficient coordination across diverse teams and ensuring that all contributors align with the product’s high standards for performance, security, and resilience.

Decision

Amaru will be using a customised framework adapted to the setup of the project :

Representation of the development framework that will be used throughout the life of Amaru

This representation encapsulates all the phases imagined for running the Amaru project :

  1. Problem framing : DDD : Framing the problem linking together Problem, People, Outcome and Constraints
  2. Solution architecture : C4 Architecture representing the system and the interfaces between each key components
  3. Solution flows and structure : DDD : Bounded context focusing on use cases and structuring the delivery blocks of the solution
  4. Manage release plans & interfaces : Extreme programming build a cycle with a release plan directed towards delivering a demo
  5. Demonstrate : Extreme programming deliver on the features with acceptance criteria and KPIs to measure
  6. Reflect and learn : Lean Startup : Validated learning allocate time to confront the solution to the problem environment and its user
  7. Final solution deliver : Lean Startup : Build, Measure, Learn document the main delivery and discoveries related to the problems, prepare the next maintaining cycle

Consequence

  • This framework will apply to each scopes included in the Amaru project
  • The scope owners have the responsibility to apply, break and update the content of this framework
  • This will provide a documented overview of the product scopes and interfaces

Discussion points

  • We looked at various sources for encapsulating the minimum structure necessary to structure the project
  • We integrated feedbacks of experienced software developpers, project managers, product managers into our approach and kept just the necessary phases