<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Intigral Middle East</title>
    <description>The latest articles on DEV Community by Intigral Middle East (@intigral).</description>
    <link>https://dev.to/intigral</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F8651%2F54a7bae1-2928-40d2-aef5-dc88bebb4a83.png</url>
      <title>DEV Community: Intigral Middle East</title>
      <link>https://dev.to/intigral</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/intigral"/>
    <language>en</language>
    <item>
      <title>Improve your DX to boost team productivity</title>
      <dc:creator>Satadru Bhattacharjee</dc:creator>
      <pubDate>Wed, 10 Apr 2024 17:29:41 +0000</pubDate>
      <link>https://dev.to/intigral/improve-your-dx-to-improve-team-productivity-42fo</link>
      <guid>https://dev.to/intigral/improve-your-dx-to-improve-team-productivity-42fo</guid>
      <description>&lt;h2&gt;
  
  
  What is DX (Developer Experience)
&lt;/h2&gt;

&lt;p&gt;In simple terms, "DX" stands for &lt;strong&gt;&lt;em&gt;"Developer Experience."&lt;/em&gt;&lt;/strong&gt; 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. &lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F35i1lkektebt37zicb8y.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F35i1lkektebt37zicb8y.jpeg" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Image Credits : &lt;a href="https://addyosmani.com/dx/"&gt;Addy Osmani&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How it's important for &lt;a href="https://www.intigral.net/"&gt;Intigral&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;As a leading OTT app provider in the MENA region, Intigral's OTT Platform is powering 2 leading OTT apps &lt;a href="http://web.stctv.com/"&gt;STC TV&lt;/a&gt; and &lt;a href="http://web.jawwy.tv/"&gt;Jawwy TV&lt;/a&gt; for 15 different countries and it's integrated with major telcos in the MENA region.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h3&gt;
  
  
  Some of the challenges in the development cycle
&lt;/h3&gt;

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

&lt;h3&gt;
  
  
  Overcoming the challenges - &lt;strong&gt;&lt;em&gt;First Principles&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is &lt;strong&gt;&lt;em&gt;First Principles&lt;/em&gt;&lt;/strong&gt; ?
&lt;/h3&gt;

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

&lt;p&gt;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 &lt;em&gt;solving the same problems again and again&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the &lt;strong&gt;&lt;em&gt;First Principles&lt;/em&gt;&lt;/strong&gt; is implemented in project
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;&lt;em&gt;Continuous Improvements&lt;/em&gt;&lt;/strong&gt; - Step by Step approach
&lt;/h3&gt;

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

&lt;p&gt;"DX" has played a pivotal role in this journey. It has helped the web team adapt to the process with &lt;strong&gt;&lt;em&gt;guards&lt;/em&gt;&lt;/strong&gt; in place, which empowers the team to ship confidently and eliminate friction.&lt;/p&gt;

&lt;h4&gt;
  
  
  What are the &lt;strong&gt;&lt;em&gt;Guards&lt;/em&gt;&lt;/strong&gt;
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Monorepo&lt;/strong&gt; - no more standalone code repos for design, dev testing, Ops team.&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Eliminated&lt;/strong&gt; the Design hands-off process&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automation for manual tasks&lt;/strong&gt; - no more copy &amp;amp; paste 
between multiple code repos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Easy Project Onboarding&lt;/strong&gt; - 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.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unified coding standard and linting rules&lt;/strong&gt; - 1 repo 1 
coding standard for the entire team&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4itxn4a4wsz19hwrdu1g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4itxn4a4wsz19hwrdu1g.png" alt="Image description" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Unit Testing&lt;/strong&gt; as part of the PR approval process.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsdhw93gdnser9ihhdg8n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsdhw93gdnser9ihhdg8n.png" alt="Image description" width="800" height="126"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Web component Library - for supporting Web Apps
&lt;/h3&gt;

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

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fabe4ju76vgouu4ykg5hh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fabe4ju76vgouu4ykg5hh.png" alt="Image description" width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Data Domain (DD) Library - for supporting multiple web clients
&lt;/h3&gt;

&lt;p&gt;As part of the project restructuring/refactoring efforts, we have developed a Data Domain (DD) Library based on the &lt;a href="https://medium.com/expedia-group-tech/onion-architecture-deed8a554423"&gt;Onion Architecture&lt;/a&gt;. &lt;br&gt;
The primary objective of this DD Lib is to create a &lt;strong&gt;&lt;em&gt;separation of concern&lt;/em&gt;&lt;/strong&gt; from the UI Logic and the Business Use Cases including the Network calls are handled inside this separate lib.&lt;/p&gt;

&lt;p&gt;This architectural pattern has significantly reduced the Bugs peaking in the UI Layer and reduced the bugs fix cycle to 50%&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Data encapsulation&lt;/em&gt;&lt;/strong&gt; - This fully Unit tested lib is responsible for providing data and handling use cases.&lt;/li&gt;
&lt;li&gt;High Unit Test coverage with a layered architecture.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Documentation
&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;A significant challenge inherent in documentation is its tendency to become quickly outdated, rendering it less reliable over time.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnokzvqqqjsijz50iqphm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnokzvqqqjsijz50iqphm.png" alt="Image description" width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The foundational principle of commencing with First Principles lies in taking the &lt;strong&gt;initial step&lt;/strong&gt;. 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.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>frontend</category>
      <category>development</category>
    </item>
  </channel>
</rss>
