DEV Community

Cover image for Improve your DX to boost team productivity

Improve your DX to boost team productivity

What is DX (Developer Experience)

In simple terms, "DX" stands for "Developer Experience." It refers to how easy and pleasant it is for software developers to work with a particular tool, framework, or platform. Just like User Experience (UX) focuses on how users interact with a product, DX focuses on the experience of developers who are building that product.

Good DX means developers have clear documentation, helpful error messages, easy-to-understand APIs (Application Programming Interfaces), and efficient tools that help them write, test, and deploy code smoothly. In essence, DX aims to make the developer's job easier, more efficient, and more enjoyable.

Image description

Image Credits : Addy Osmani


How it's important for Intigral

As a leading OTT app provider in the MENA region, Intigral's OTT Platform is powering 2 leading OTT apps STC TV and Jawwy TV for 15 different countries and it's integrated with major telcos in the MENA region.

As part of this offering and to bring the best "User Experience (UX)" to end-users, we need to iterate the ideas quickly and promote the best offering to clients with the best onboarding experience.

Some of the challenges in the development cycle

  • Distributed team across the globe (Dubai, Riyad, Ukraine, Pakistan, India, Germany)
  • People rotation and replacements which leads to non-avoidable onboarding and knowledge transfer process
  • Continuous Project re-prioritization and KPIs adjustments based on market feedback and competitor analysis
  • Maintainability of a large number of Use Cases across 2 apps and different telco bundles
  • Tech depts - Feature Vs Improvements prioritization

Overcoming the challenges - First Principles

To tackle the challenges 1 year back we started to adopt the First Principle practices and started treating "DX" as a core feature to build into our Dev Sprints along with the Feature Epics.

What is First Principles ?

  • Fast is better than slow
  • Friction must be zero from the start
  • Allow developers to take incremental steps
  • Enable developers to learn by doing
  • Decide for me, but let me have the final say
  • Fight uncertainty, don't leave the developer hanging
  • Show code in context, not just a "hello world" app
  • Create magical moments using secret sauce

Purposefully eliminate speed bumps. You really want to create pathways that encourage developers to apply their energy more precisely on creativity, ingenuity and app logic instead of solving the same problems again and again.

How the First Principles is implemented in project

Continuous Improvements - Step by Step approach

For a product with more than a Million existing customer base, we have adopted a Continuous Improvements approach to refactoring, like introducing a new Web Tech stack in a step-by-step approach without impacting the planned deliverables.

"DX" has played a pivotal role in this journey. It has helped the web team adapt to the process with guards in place, which empowers the team to ship confidently and eliminate friction.

What are the Guards

  1. Monorepo - no more standalone code repos for design, dev testing, Ops team.
  • Eliminated the Design hands-off process
  • Automation for manual tasks - no more copy & paste between multiple code repos.
  • Easy Project Onboarding - Any new developer can setup the developer matching in 10 minutes with 1 automation command compared to the previous manual process of setting up the dev environment with different servers and lengthy setup process.
  • Unified coding standard and linting rules - 1 repo 1 coding standard for the entire team

Image description

  1. Unit Testing as part of the PR approval process.

Image description

Web component Library - for supporting Web Apps

  • Reusable, Testable & Modular component Lib
  • Increase the reusability
  • Storybook integration with Visual testing for multiple resolutions and localizations
  • Theming support - Can adopt and test with new theming in an isolated approach
  • Rapid UI Use case adaption - Decreased the feature completion timeline by 40% and UI bugs by 70%

Image description

Data Domain (DD) Library - for supporting multiple web clients

As part of the project restructuring/refactoring efforts, we have developed a Data Domain (DD) Library based on the Onion Architecture.
The primary objective of this DD Lib is to create a separation of concern from the UI Logic and the Business Use Cases including the Network calls are handled inside this separate lib.

This architectural pattern has significantly reduced the Bugs peaking in the UI Layer and reduced the bugs fix cycle to 50%

  • Data encapsulation - This fully Unit tested lib is responsible for providing data and handling use cases.
  • High Unit Test coverage with a layered architecture.

Documentation

Effective documentation practices are indispensable for the seamless operation of DX principles. Without them, the collaborative efforts of developers can quickly become encumbered, leading to inefficiencies and potential conflicts among team members.

A significant challenge inherent in documentation is its tendency to become quickly outdated, rendering it less reliable over time.

To address this issue, our strategy involves the implementation of the auto-generation of documents from code. Coupled with comprehensive code comments, this approach proves to be a transformative tool, enabling developers to efficiently search, reference, and repurpose information as needed.

Image description

Conclusion

The foundational principle of commencing with First Principles lies in taking the initial step. In the backdrop of continuously evolving dynamics and emerging web standards, it is crucial to adapt to new benchmarks continually. For developers, there is no greater satisfaction than witnessing the deployment of their work in live environments, with Developer Experience (DX) serving as a pivotal aspect of fostering and development.

Top comments (0)