When UX and developers reinvent the digital product, from substance to form!

In the world of digital product development, collaboration between UX and development is often more of an ideal than a reality. Yet, it is precisely from this synergy that the highest-performing products are born—those that not only meet user needs but also give meaning to the work of those who create them. This article is a case study on how strengthened collaboration between UX and developers can transform a struggling product and breathe new life into a team.

The starting point: A product in peril and a team under pressure

Our story begins with an essential digital tool for store managers and department heads at Decathlon. Designed to optimize economic performance and time efficiency, this tool is used by approximately 20,000 people across 78 countries.

Since 2017, the team working on this product has operated in silos, with a superficial agile culture. The specialized developers (front-end, back-end, data) work on micro-tasks without an overall vision, leading to endless delivery delays and an accumulation of technical debt. As an example, and one of the triggers for what follows, a feature estimated to take three weeks to deliver took almost a year (and even then, it was unstable!). 

On the product side, the problems were just as glaring: low adoption, forced use by users due to a lack of alternatives and pressure from management, and above all, unreliable availability. Loading times were excessively long, and the application was frequently inaccessible at key moments, causing considerable user frustration. Finally, the tool's complexity made it difficult for both new developers and new users to grasp. The conclusion was clear: the link between developers, the product, and users was fragile, if not nonexistent.

The transformation strategy: Autonomy and knowledge

Faced with this critical situation, the Mayday team, an internal Decathlon initiative known for its pragmatic approach, intervened. 

The solution couldn't be purely technical. A pivot was needed, a holistic approach to restore balance. The support team, composed of four developers and a UX researcher, stepped in. The strategy revolved around two main axes: improve the team's autonomy et increase user and product knowledge.

1. Develop team autonomy through agility and Software Craftsmanship

The goal was to move from a “project” culture to a “product” culture, where the team would feel fully responsible for the value it delivers.

  • New team lineup: The team needs to evolve towards a full-stack and full-task culture. The idea is to break down interdependencies by encouraging versatility and the ability to lead projects from design to production. 
  • Strengthening team collaboration and enabling skills development: Pair programming sessions are organized to share knowledge and best practices. Collaborative code reviews help standardize conventions and improve code quality.
  • Self-organization of team rituals: Agile rituals are being revisited to restore their purpose. The daily meeting is becoming a progress update on deliverables in production rather than a simple task report. Regular retrospectives are being held to identify and resolve team issues. A backlog refinement workshop is scheduled weekly to specify and assess the maturity of the topics to be developed.
  • Integrating a Product Owner (PO) with a 360-degree view: A new Product Owner has joined the team, bringing a holistic vision that integrates user needs, regulatory constraints, and corporate strategy. Their role has become crucial in channeling and arbitrating requests, learning to say "no" when necessary, and prioritizing development with the team.
  • Flow enablers: Practices such as WIP limits (limiting work in progress) and the "stop starting, start finishing" approach allow for a focus on completing tasks. As previously mentioned, pair programming promotes skills sharing and complementarity.
  • Continuous delivery: The simplification of code branches (trunk-based development) and the automation of tests (moving from manual to almost fully automated) have significantly reduced time to market, enabling multiple daily releases if necessary. This is "non-event delivery," where the tools allow for seamless deployment from the developer's workstation to the user.

2. Increase user and product knowledge

The UX researcher's role was central in imbuing the team with the reality of users and in understanding the product from the inside.

  • Direct immersion with users: The first step was to organize user interviews to which the developers were invited. This direct listening helped to create a connection and give meaning to everyone's work.
  • Implementation of usage analytics: Prior to the intervention, no analytics tools were in place. Trackers were deployed to understand actual user behavior on the product. An accessible naming convention workshop was held so that everyone, including developers, could review and interpret this data.
  • Production status monitoring: Beyond usage analytics, a dashboard was created collaboratively to track errors and production availability rates. This allowed the team to understand the product's health and make informed decisions, such as identifying whether problems originated within the team or with external partners.
  • Enhanced Design Thinking approach: The approach was based on an enhanced Design Thinking model, integrating the entire team at each stage:
    • Understanding needs: Interviews, analytics.
    • Validation and scoping: Formalizing insights, sharing with the whole team.
    • Ideation and construction: Collaborative workshops with the team (worst ideas, crazy eight, brainstorming, feature values, …).
    • Continuous modeling and testing: A/B testing was implemented to compare two versions of the product and observe usage statistics. The feature flag allowed a specific version of the product to be offered to a sample of users to gather qualitative feedback. Collaboration between UX and development teams is essential here, with developers making interface modifications and UX designers guiding these changes and managing user interactions.

The goal for UX is not to become indispensable, but to facilitate feedback from the field and to ensure that seeking answers from users becomes second nature for all developers. It's about ensuring that the viability (by the stakeholders), the feasibility (by the developers) and the desirability (by UX) are taken into account from the beginning of the process.

Initial results: A transformed product and team

The actions taken had a profound impact on the team and the product.

From a team that simply performs tasks, we move to a team that delivers value and gives meaning to its daily work. It has direct interactions with its users and is equipped to challenge emerging needs rather than merely being a executor. Time to market has been significantly reduced. The team is no longer just several individuals working side-by-side, but people who communicate and collaborate daily to make informed decisions. 

From a product that couldn't handle the load of too many users, we've moved to a product that's available at all times. Whereas we previously tried to appeal to a broad audience, ultimately delivering little value to each, we now provide definite value to the identified priority target groups. The product has become much easier for both developers and users to understand. 

UX-Dev collaboration: A lever for arbitration and meaning

In conclusion, the transformation of the tool and its team is the result of a combined effort. Actions on the developer side strengthened their autonomy (defining rituals, improving the backlog, user support, continuous delivery, feature toggle). Actions on the UX side increased knowledge (audits, observations, interviews, personas, user journeys). But it is the close and continuous collaboration between UX and developers, through joint workshops, shared analytics analysis and testing (A/B testing, feature flags), which made it possible to give meaning to all these actions.

This collaboration is essential for the arbitrationsIt's not about "doing everything", but about choose your battles with a comprehensive understanding of the project and the product. Whether it's adapting the level of support, deciding on code quality, or prioritizing bugs, these decisions are made with a mutual understanding of the technical, user, and business challenges.

We didn't invent anything, but we implemented best practices from Agile and Software Craftsmanship. The most important thing is that we focused on the background and not only on the formsGiving meaning to every decision, every line of code, every user interaction is what transforms a project into a high-performing product and a team into an engine of innovation. By making seeking answers from the field second nature for all developers, and by integrating technical feasibility from the design stage, UX and development can truly collaborate to build products that matter.

Florine AUFFRAIT, UX Designer @UX-Republic

Florine Auffrait, UX Researcher at UX-Republic