Friday, May 8, 2026

Scrum vs. Kanban: Choosing the Right Workflow for Your Team


This post compares Scrum vs. Kanban to help your readers decide which workflow fits their remote dev environment.


Scrum vs. Kanban: Choosing the Right Workflow for Your Team

In the world of Agile development, two heavyweights often dominate the conversation: Scrum and Kanban. While both aim to increase transparency and efficiency, they approach the "how" very differently.

Whether you are a SharePoint developer or working in a .NET shop, choosing the right framework can be the difference between a smooth release and a chaotic sprint. Here is a quick breakdown of how they stack up.

Comparison Overview

FeatureScrumKanban
CadenceFixed-length iterations (usually 1–4 weeks).Continuous flow; no fixed timeboxes.
Release MethodologyAt the end of each sprint (or continuously if the team is mature).Continuous delivery or at the team's discretion.
RolesSpecific defined roles: Product Owner, Scrum Master, and Developers.No required roles (though some teams keep existing ones).
MetricsVelocity (how many story points were finished in a sprint).Cycle Time (how long one task takes from start to finish).
Change PolicyChanges during a sprint are strongly discouraged to protect the commitment.Changes can be made at any time; new tasks are added as soon as a slot opens.

Which one should you use?

  • Go with Scrum if your team needs structure, clear roles, and a predictable rhythm to deliver complex features in a specific timeframe.

  • Go with Kanban if your work is more reactive—like support, maintenance, or high-volume production tasks—where the priority shifts daily.

Pro Tip: Many modern remote teams actually use Scrumban, a hybrid that keeps the structure of Scrum meetings while utilizing the visual flow and flexibility of Kanban boards!


Would you like me to adjust the tone of this post to be more technical, or perhaps add a section on how to implement these in Azure DevOps?

Saturday, January 24, 2026

Remove Blank Lines Using TextPad

 Cleaning up those gaps in TextPad is a classic task. Since you are dealing with URLs, you definitely want to keep the text intact while ditching the empty space.

To remove blank lines in TextPad, you’ll need to use Regular Expressions (regex). Here is the step-by-step breakdown:

The Find and Replace Method

  1. Press F8 (or go to Search > Replace).

  2. In the Find what box, type: ^\n

  3. Leave the Replace with box completely empty.

  4. Under Conditions, make sure the Regular expression checkbox is checked.

  5. Click Replace All.

Monday, January 12, 2026

Quick Checklist: Where to Set All Tenant‑Level Contacts Now

 

1. Technical Contact

admin.microsoft.com → Org settings → Organization profile

2. Privacy Contact

Same page as above

3. Security Contact Email

entra.microsoft.com → Identity → Protection → Notifications

4. Billing Contact

admin.microsoft.com → Billing → Billing accounts

5. Break‑glass accounts (recommended)

Entra → Users → Create → No MFA, long password, Global Admin

What language does Power Automate use?

Power Automate and Logic Apps both use the same language, Workflow Definition Language (or WDL). The nice thing about Azure Logic Apps and Power Automate, though, is that there’s a fancy front end that allows you to generate most of the code without hands-on-keyboard.


Here’s an example. I built a small little flow that uses the Mailchimp connector trigger to find when a new contact is added to one of my lists (hint, hint). It then takes the outputs from the trigger and sends me a little message on Microsoft Teams telling me a new user signed up.






In the screenshot above, you can see that the Parse JSON action has received the results you entered when you created it. Of course, it's more accessible.


In this next screenshot, though, the Parse JSON didn’t quite work as I needed it to. When there’s nested objects or arrays sent into an action, you’ll get that stupid “For each” loop added around your object. Power Automate / Logic Apps both assume that you need to handle a case where there’s more than one line returned, and they try to help you out. In these cases, you might have to do some custom workflow definition language expressions.




So, in the “List contacts” thing, I already said I just wanted 1 result, so I knew I’d only get one contact. To avoid Logic Apps throwing in a “For each” loop, I just pointed to the first item by putting a “[0]” between the value array and contactid field. Boom – no “For each” loop anymore. Anyway, to keep it simple, Power Automate and Logic Apps use the Workflow Definition Language. Most people probably won’t ever need to know that or type it out, but it’s cool to understand. Check out the learning paths to know more.

Tuesday, July 1, 2025

MS Fabric Demo Sandbox : Contoso Energy


Contoso Energy and Microsoft Fabric Demo Sandbox Options

No "Contoso Energy" dataset exists for Microsoft Fabric, but the Contoso retail dataset is widely used for training. Below are options for demo data and sandboxes for personal learning, formatted for Blogger with relevant Microsoft links.

Contoso Demo Data

Overview: The Contoso dataset, focused on retail, supports Fabric’s lakehouse and BI workloads with SQL, CSV, or Delta formats.  

Access: Download from the Microsoft Download Center or use the Contoso Data Generator for custom datasets.

Energy Data: No energy-specific dataset; source public energy data (e.g., Kaggle) for custom scenarios.

Fabric Sandbox for Personal Use

Trial Capacity: 60-day free trial (64 capacity units) at app.fabric.microsoft.com. Ideal for testing Contoso or custom datasets.

Sandbox: Trial acts as a sandbox for building lakehouses and reports. Convert to a Power Platform sandbox via Power Platform Admin Center for advanced needs.

Training: Free Fabric Analyst in a Day workshop on Microsoft Learn uses Contoso data for hands-on practice.

Energy-Specific Alternatives

Custom Datasets: Import energy data (CSV/Parquet) into Fabric trial for analytics practice.

Azure Sandbox: Use Azure’s free sandbox for data integration with Fabric at Azure Free Account, but monitor costs.

Community Samples: Check Microsoft Fabric Samples on GitHub for adaptable scenarios.

Recommendations

Start with Fabric’s trial for Contoso-based practice.  

Use Microsoft Learn’s Fabric modules.

Import energy datasets for relevant training.

Monitor costs if using Azure services!


New for June 2025!

 The [Digital Twin Builder (preview) tutorial introduction](https://learn.microsoft.com/en-us/fabric/real-time-intelligence/digital-twin-builder/tutorial-0-introduction) in Microsoft Fabric provides a hands-on guide to creating operational analytics scenarios using digital twins. It introduces a low-code/no-code tool that allows users to model and contextualize data from various sources—like sensors and control systems—within Microsoft Fabric’s unified analytics platform.


The tutorial centers on a fictional company, Contoso Energy, which uses the tool to improve efficiency, reduce energy consumption, and enhance product quality across its distillation sites. Users are guided through building a scenario ontology and visualizing insights with Power BI.


**Key prerequisites** include:

- A Microsoft Fabric-enabled workspace

- Digital Twin Builder (preview) enabled in the tenant settings

- Power BI Desktop installed (not just the web version)


This feature is currently in preview and is designed to help organizations drive operational improvements such as reducing waste, improving yield, and achieving sustainability goals. Let me know if you’d like a breakdown of the tutorial steps or help setting up a test scenario.

Add ‘Open Bash Here’ into Visual Studio

 With the rise of cross-platform development, the need for Linux tools like bash has become more prevalent, even in Windows environments. Developers often need to run bash scripts for tasks such as deploying services to Azure or managing containers. An integrated bash prompt in Visual Studio, opening directly at a file’s location, can significantly streamline this process. Here we create a script amd config.VS to run it


Why

In a mixed development environment where Windows and Linux tools are both essential, there’s a challenge: Windows uses a different file path structure compared to Linux. When developing on Windows with Visual Studio but needing to run Linux-based tools (like bash scripts), there’s a disconnect — the paths don’t translate automatically between systems. This is where a Linux script comes into play.


Creating the script

To bridge this gap, we created a Linux script that performs path translation. It takes a Windows file path as input, converts it into a Linux-friendly path, and then opens a bash shell at that location.


vi ~/.open-wsl-bash.sh


#!/bin/bash

win_path=$1

# Replace single backslashes with double backslashes

win_path=${win_path//\\//\\\\}

# Translate the Windows path to WSL path

wsl_path=$(wslpath -u "$win_path")

# Navigate to the directory and open bash

cd "$wsl_path" && exec bash

Script Breakdown

#!/bin/bash: Shebang line to indicate the script uses bash.

win_path=$1: Assigns the first argument passed to the script to win_path.

win_path=${win_path//\\//\\\\}: Doubles the backslashes to escape them properly for bash.

wsl_path=$(wslpath -u "$win_path"): Uses wslpath to convert the Windows path to a WSL path.

cd "$wsl_path" && exec bash: Changes to the directory and opens a new bash shell.

This script is an essential piece of the puzzle for a seamless development experience across Windows and WSL environments.


Adding the External Command in Visual Studio

Find the path to wt.exe.

Navigate to Tools > External Tools.

Click “Add” and configure:

Title: Open Bash Here

Command: Path to your wt.exe.

Arguments: --profile "Ubuntu-20.04" -- bash -c "bash ~/.open-wsl-bash.sh '$(ItemDir)'"

Initial directory: $(ItemDir)

Visual Studio: Adding external command

“Ubuntu-20.04” is the name of my Linux Windows Terminal profile. Change it to your Linux profile name.



Conclusion

With this setup, you’ll have a seamless “Open Bash Here” command in Visual Studio that improves the development workflow by providing quick access to a Linux bash environment at the location of your current file.