Working with Git-enabled Workspaces in Fabric (Series)

The primary goal of this series is to show you how to working with Git-enabled Workspaces in Fabric using two approaches: Sandbox Workspace for Each Developer or Tied to Specific User Stories.

Working with Git-enabled Workspaces in  Fabric (Series)

Setting the stage

In modern software development, the ability to work concurrently and independently is crucial for maintaining agility and efficiency; Fabric Workspaces are designed to provide a collaborative environment where teams can organize, manage, and share their data and analytics resources. These workspaces function as containers for all Fabric artifacts, including datasets, dataflows, reports, dashboards, and notebooks.

In my proposed DevOps-enabling setup for Fabric, there are two distinctive groups of workspaces, one group will be used to develop data product’s features (Feature Development workspaces) while the other will serve as deployment environments (Dev, Test, Prod) for these features (Environment Deployment workspaces)

  • Environment Deployment workspaces. There will be three per workspace layer: Dev, Test & Production; access to this environment should be managed by the Business domain and/or data owner.
  • Feature Development workspaces. These will be used to perform development-like activities, these are commonly referred as “Sandboxes”; these environments should be version-controlled (Git-Integrated).

In this context we can either... Create a Sandbox Workspace for Each Developer, that is, each developer would be responsible for attaching this git-enabled workspace as needed for the features they are assigned or Create Sandbox Workspaces Tied to Specific User Stories, this would enable developers to work on specific user story-based sandbox workspaces.


Which one we should use 🤔? Long story short... both 😅, an hybrid approach! Where key developers have their own sandboxes for experimentation, while collaborative tasks are handled in story-specific workspaces, in this series I will suggest how to work with both approaches outlining pros/cons of each 😁👍

Approach 1. Sandbox Workspace for Each Developer

The following are the main characteristics of this approach:

  • Developers have full control over their workspaces, tailoring their workspace to their preferences and needs.
  • Developers can maintain a consistent environment, free from changes made by other developers working on different features reducing the time spent on configuring and setting up new environments.
  • Developers can experiment and innovate without impacting others.

Approach 2. Sandbox Workspaces Tied to Specific User Stories

The following are the main characteristics of this approach:

  • Workspaces are created with the specific requirements of a user story in mind, ensuring relevance.
  • More efficient use of resources as workspaces are created only when needed.
    Reduces duplication of effort as the workspace is aligned with specific tasks.
  • Each workspace has a clear and defined purpose, which can improve focus and productivity.
📆
To be defined