Innovating Agriculture Software with Isagri, Aardling, and DDD

field2

With the help of Aardling, Isagri ran two pilot projects to improve their software quality, modernise their technology stack, and create better communication between business and engineering. Domain-Driven Design - with its focus on modelling, visualisation, and collaboration - proved essential for this transformation. 

Isagri is an agriculture IT provider that builds innovative technologies for farmers and agribusiness companies. Since starting in 1983 in France, they’ve expanded worldwide, and offer solutions for crop and livestock management, weather, ERP, accounting & finance, and, of course, being French, vineyard management.

To stay innovative, some of their older software needed an overhaul. Isagri wanted to move the client accounting software to a set of SaaS services. Another project was to build a new module for the technical and economic management of livestock farms.

I’ve been a fan of Maxime Sanglan-Charlier’s blog and conference presentations on Domain-Driven Design (DDD), so I wanted to work with him. And I already knew Aardling as the organisers of the Domain-Driven Design Europe conference.

stephanie nicolet

Stéphanie Nicolet

Software Architect at Isagri

Lead by Maxime, Aardling supported the pilot team migrate their Fixed Assets module to a SaaS model. He conducted a series of workshops with Isagri’s domain experts and the development team, to do a deep Domain Discovery. Building on that, Maxime ran refinement workshops to define the contours of a loosely coupled architecture. For the livestock management module, he ran a series of business and technical workshops, involving Product Owners, business stakeholders, and engineers.

Rich use cases

Isagri has expanded into a vast range of business use cases for farms across the world so an approach that catered to this growing complexity was essential.

Our software is intended to support farms in the long term, at least several decades. We need to build applications that are resilient, maintainable, and scalable. Choosing Domain-Driven Design was the obvious choice, it’s not something we do for fun or because it’s fashionable.

Stéphanie Nicolet

The pilot projects allowed Isagri to experience DDD in the real world and move beyond just theory. Applying rigorous software modelling was new for the teams and required them to step out of their comfort zone and adopt new ways of working.

Maxime’s calm nature and pragmatic approach suited us well. He used existing methods, such as EventStorming and the DDD Starter Modelling Process, but mostly he adapted the approach beyond ready-made recipes.

Stéphanie Nicolet

vineyard3

Maxime introduced ways of visualising complex cases with elaborate models, and set up a more collaborative development style across engineering and business units. Isagri began to align on shared vocabulary, which, according to Stéphanie, had never happened before. The large number of people involved made it challenging, but gradually, as the group built a shared understanding of the intricacies of the problem, Maxime moved on to working with smaller groups, making fast progress on detailed domain models and architectural choices. Eventually, the focus shifted to delivering the end product. With the clear requirements and domain models, the work went swiftly.

Facilitation and Visualisation

One of the first major insights for Stéphanie’s team was this focus on visualisation.

We weren't used to working this way and quickly realised how effective it was! It was by visualising that we became aware of certain very important things. For example, by creating C4 architecture diagrams, we were able to refine our Minimum Viable Product. We tended to go off in all directions, and putting the information on diagrams helped us to refocus on the essentials.

Stéphanie Nicolet

The team became aware of the richness of the Fixed Assets module. They had clearly underestimated the scope of the problem. Maxime helped to prioritise the critical parts of the module and focus on the modelling and engineering. This broke the team out of analysis paralysis and helped to lower the cognitive load.

Working as a collective was the big revelation. Learning together, with the business and the technical teams was greatly beneficial. Maxime allowed us to take a step back from what we were doing, and to differentiate between theory and reality on the ground. We sometimes got stuck trying to create the perfect but unattainable solution. Maxime showed how we could make certain tradeoffs that balanced fast delivery and long-term quality needs.

Stéphanie Nicolet

field3

Getting Management on Board

There were some hurdles: management had some concerns about whether Aardling’s DDD-centered approach would be fruitful. DDD as a software design methodology is still largely unknown outside of engineering circles. Early on it was clear that management would have to be reassured.

Aardling’s Ricardo Santos worked with Maxime to define the context and scope. Then Stéphanie and Maxime met with the management, to present how this project would bring a positive impact.

This meeting went well. Maxime alleviated management's concerns by reassuring them with a down-to-earth presentation that aligned all stakeholders on the objectives. It was important to have a check-in from everyone before starting.

Stéphanie Nicolet

The mission was clear: modernise the technology, cover complex use cases with a deep understanding of the needs, build high quality software that is sustainable over the long term, and deliver innovations to customers faster.

It paid off:

We brought everyone together, people who usually don't talk to each other or rarely. Bringing together the business and the technology teams was a breakthrough that did a lot of good! And we have certainly learned to focus better on the essentials to get faster progress. The feedback we've had has been excellent.

Stéphanie Nicolet

Next steps

Stéphanie is already looking to use the multitude of tools and techniques on the next projects at Isagri.

Facilitating this type of workshop is not simple. This is also one of the reasons why we called on Aardling: we tried some experiments for ourselves but it was pretty confusing.

We will still need more experience before being completely autonomous on the subject, and we must not underestimate the value of facilitation.

Stéphanie Nicolet

Aardling’s work didn’t end there.

We’re advocating for bringing Aardling into more projects within our company. Maxime has already worked with a second team in Isagri, and we are hopeful of continuing our collaboration on our various future projects. I would 100% recommend Aardling to other companies, especially if they want to seriously invest in Domain-Driven Design.

Stéphanie Nicolet