Articles in the Posts category

Mon 16 December 2024

Fishbowl Dev CoP

Experimenting with a New Developer CoP Format: Fishbowl Discussions

Fri 13 December 2024

Journal 8 - What is the value?

The real question is not about the tech-cool factor or simplicity; it is all about uncovering the true value.

Fri 29 November 2024

Journal 7 - Embracing a New Mindset for Empowerment!

Exploring innovative automation strategies to empower engineers with the right tools and support, exactly when they need them.

Wed 27 November 2024

Working Agreement for Technical Event Speakers

Tips and tricks for preparing as a technical event speaker, from preparing your message to engaging your audience effectively.

Wed 20 November 2024

Why is the Closed Date field empty in my work items?

More importantly, what is the issue and how do we resolve it?

Fri 15 November 2024

Rotting Pull Requests - Detection And Actioning

Explore the root cause of un-actioned pull-requests, how to detect and remedy (Part 1).

Wed 13 November 2024

Journal 6 - Empowerment through automation and artificial intelligence

Reshaping the way we work, creating new opportunities to empower engineers by reducing repetitive tasks, enhancing productivity, and enabling focus on high-value activities.

Sat 26 October 2024

Why Automation Needs People to Truly Thrive

While automation is an essential ingredient for DevOps, it is not a silver bullet.

Wed 23 October 2024

Agile Planning with Azure DevOps

Recalling the recent agile planning session hosted by common engineering during the +1 innovation and planning iteration.

Sat 19 October 2024

Azure DevOps Pipeline Blueprints - Open Source Software Sync 20241019

Refactor the building code calls.

Wed 02 October 2024

DevOps Vancouver Meetup Learnings

Insights gained from hosting six community meetups this year: the positives, negatives, and challenges.

Mon 30 September 2024

Artificial Intelligence - AI-900 - Quick Reference Poster

A consolidated poster / cheat sheet of my AI-900 study notes.

Fri 27 September 2024

Artificial Intelligence - AI-900 - Guiding Principles

"Guiding principles aim to ensure responsible and ethical AI development and deployment." - ChatGPT GPT-4o

Fri 27 September 2024

Artificial Intelligence - AI-900 - Bots

Conversational AI workloads - no longer part of AI-900 certification!

Fri 27 September 2024

Artificial Intelligence - AI-900 - Common Machine Learning Types

"AI machine learning (ML) refers to the subset of artificial intelligence focused on developing algorithms and models that enable computers to learn from data and improve their performance over time without being explicitly programmed." - ChatGPT GPT-4o

Fri 27 September 2024

Artificial Intelligence - AI-900 - Common Workloads

"Common workloads in AI and machine learning include data processing, model training, inference, natural language processing, computer vision, recommendation systems, time series forecasting, and robotics/automation tasks." - ChatGPT GPT-4o

Fri 27 September 2024

Artificial Intelligence - AI-900 - Generative AI

"Generative AI refers to a subset of artificial intelligence that creates new content—such as text, images, audio, or video." - ChatGPT GPT-4o

Fri 27 September 2024

Artificial Intelligence - AI-900 - Natural Language Processing

"Natural Language Processing (NLP) is a branch of AI that enables computers to understand, interpret, and generate human language." - ChatGPT GPT-4o

Fri 27 September 2024

Artificial Intelligence - AI-900 - Vision Workloads

"Vision workloads in AI refer to tasks that involve processing and analyzing visual data, such as images and videos." - ChatGPT GPT-4o

Mon 23 September 2024

Stop the Confusing Language Madness in IT!

Using a common language in IT helps avoid misunderstandings, conserves time, and enhances teamwork.

Fri 30 August 2024

Journal 5 - Unlocking the Potential of Generative AI

Explore GitHub Copilot's potential to revolutionize code quality, collaboration, and productivity.

Mon 19 August 2024

Azure DevOps Pipeline Blueprints - Open Source Software Sync 20240816

Improving the configuration file user experience.

Wed 17 July 2024

Embrace the Future - Use Automation and AI to Elevate Your Engineering Career!

The era of manual testing and coding to a specification is nearly over!

Fri 12 July 2024

Unleashing the Power of Teamwork: Key Takeaways from Collaboration Ceremonies and Events

Fostering a culture of continuous improvement and innovation through events

Mon 08 July 2024

Revolutionizing Quality Assurance: Unleashing the Power of Automation and AI

Automation and Artificial Intelligence in Quality Assurance

Fri 21 June 2024

Unproductive Communication - The Silent Productivity Killer That Drives Me Crazy

Stop the context-less "hi, hello, ping, pong, ..."

Mon 17 June 2024

Automate Azure DevOps work item state transitions like a Pro

Maintain your backlog by changing the status of work items according to the status of their subitems.

Fri 07 June 2024

Exploring the future Software Development Lifecycle (SDLC) flow

Looking for Insights and Feedback from other pioneers of continuous SDLC improvements.

Mon 03 June 2024

Decoding the Acronyms: MMP vs. MVP vs. POC

MMP, MVP, and POC: Understanding Their Differences and Choosing the Right Approach

Fri 10 May 2024

Technology Framework Monitor - Open Source Software Sync 20240510

Shake Off the Dust: Our TFM Software Spring Cleaning!

Fri 03 May 2024

Why Metrics?

Why should I be concerned about metrics as long as my code works?

Wed 10 April 2024

Azure DevOps Pipeline Blueprints - Open Source Software Sync 20240405

Adding a new blueprint - webapp.

Tue 02 April 2024

Technology Framework Monitor - Open Source Software Sync 20240322

The broader our scanning efforts, the more technical debt we uncover, enabling proactive resolution.

Mon 01 April 2024

Azure DevOps Pipeline Blueprints - Open Source Software Sync 20240322

Second update to complete the 101 simplification.

Wed 20 March 2024

Azure DevOps Pipeline Blueprints - Open Source Software Sync 20240318

Constantly think about how you could be doing things better.” - Elon Musk.

Mon 11 March 2024

Back to Basics: Open Source Software (OSS)

Raising awareness of our open-source projects for knowledge sharing.

Wed 06 March 2024

Back to Basics: Dealing with Technical Debt

Breaking Free: A Guide to Tackling Technical Debt Head-On

Fri 01 March 2024

Cheat sheet to migrate generic v1 templates to v2

Questioning the recommended approach to upgrades and the use of generic templates.

Mon 26 February 2024

Back to Basics - Engineering

The notion of developers relying on testers to validate changes can be so startling that it feels like my head might explode.

Fri 16 February 2024

Back to Basics: Why are we moving to v2 CI/CD Blueprints for Azure Pipelines?

Understanding why we are disabling classic Azure Pipelines and embracing YAML-based Azure Pipelines.

Mon 12 February 2024

Back to Basics: Pull-Request (PR) Validations

Why run a validation build in your pull-request?

Fri 09 February 2024

Back to Basics: Kanban

"Kanban" is Japanese for "visual card" or "signal."

Mon 05 February 2024

Back to Basics: WIP Limit

Dealing with a Kanban Board meltdown, by controlling the work in progress.

Wed 31 January 2024

Back to Basics: Batch Size

Balancing noise and agility with smaller batch sizes.

Mon 29 January 2024

Why Bugs are NOT Technical Debt

why software bugs should not be categorically considered technical debt.

Wed 24 January 2024

Why Mutant Testing?

What is Mutant testing and why is it so valuable?

Fri 19 January 2024

Why release on demand?

Exploring the deployment rings, continuous delivery and deployment, to discuss release on demand.

Tue 16 January 2024

What are all those Warning and Information outputs from a build and why should I care if its not an error?

Reasons why is it important to pay attention to all the warning and information message generated when compiling your code.

Wed 20 December 2023

DevOps Vancouver Meetup - Engineering Empowerment Session Preparations

Help us prepare our meetup session to ensure we cover what is interesting for YOU!

Mon 18 December 2023

Unraveling the Merits of Dependency Injection in Modern Software Development

Dependency Injection aligns seamlessly with the SOLID principles.

Mon 04 December 2023

Mastering Software Development: A Deep Dive into Trunk-Based Pull Request Workflow

How to implement a pull request workflow within the context of a trunk-based development.

Wed 22 November 2023

Is Agile Dead?

Innovation podcast with Marius De Beer

Sun 12 November 2023

GitHub Copilot for Business FAQ

Frequently Asked Questions (FAQ) that have been mushrooming during our evaluation phase. Part 2 - FAQ.

Wed 01 November 2023

GitHub Copilot for Business Setup

Getting started with GitHub Copilot - Part 1: Setup.

Mon 02 October 2023

Embedding a Quality-Driven Engineering Mindset in Our DNA

An engineering mindset that prioritizes quality is crucial for producing robust and reliable solutions.

Tue 19 September 2023

Let us Elevate Our CI/IaC/CD Azure Pipeline Flow Together!

Streamline Your Process: Isolating the Provision and Deployment Steps for Efficiency?

Sun 17 September 2023

Software Engineering Standardization

Software Engineering Standardization

Wed 23 August 2023

Navigating Azure DevOps Complexity: Harnessing Objects to Simplify YAML Template Parameter Management

Seizing the chance to enhance and optimize our CI/CD/IaC pipelines.

Wed 02 August 2023

Why do we care about infrastructure-as-code (IaC)?

Our vision is *aC, but to avoid boiling the ocean, we will focus on an overview on IaC today.

Mon 31 July 2023

Innovation podcast with WorkSafeBC and Microsoft

An informal conversation around innovation with Bill, Omar, Sebastian, Sarav, and Todd

Sun 23 July 2023

Water Cooler Talk - Why Azure Devops is not a silver bullet

Yes, I LOVE Azure DevOps, but it is not the answer to the universe.

Wed 19 July 2023

Water Cooler Talk - Why is WSBC such a cool place?

At a recent water cooler we chatted about why WorkSafeBC is such a cool place to work for.

Wed 14 June 2023

Engineering Practice & Processes

Software Engineering Practices & Process

Mon 05 June 2023

Azure Boards Tips - Retain hierarchy with filter

Why does the hierarchy view [not] vanish when selecting a filter?

Fri 26 May 2023

Configuration and/or Dependency Management

What am I missing? Is this not a common dependency challenge?

Thu 25 May 2023

BCIT Computer Systems Technology Industry Sponsored Student Project (ISSP)

Today we have open-sourced our Technology Framework Monitor (TFM).

Fri 28 April 2023

Why bother with governance?

Why bother with governance when no-one can find it?

Fri 14 April 2023

Shift from project to product thinking

The problem is not with projects but with project-focused thinking

Wed 12 April 2023

What keeps us awake at night - Technical Debt

Empower engineering without compromising security

Sun 02 April 2023

Azure Boards Tips - Stop messing with our backlog!

A few useful "did you know" tips when using Azure Boards.

Fri 31 March 2023

Fail, Learn, Reset, Transform!

“Success is not final, failure is not fatal, it is the courage to continue that counts.” – Winston Churchill

Wed 15 March 2023

Engineering Practice Layering

Application Layering - Separation of Concerns Architecture Principle

Mon 06 March 2023

Automation Bad Day

Clearly yesterday was a bad day.

Wed 01 March 2023

What about ChatGPT?

A question that made me speechless at a recent Navigating the Future event.

Wed 22 February 2023

Azure DevOps Pipeline OSS v2.1 Flow

Two pull requests with pipeline updates for your perusal.

Fri 17 February 2023

Engineering Practice Naming Conventions

Naming Convention Nuggets of Knowledge and Best Practices

Wed 15 February 2023

Azure DevOps Transient Faults

Be careful not to annoy Azure DevOps with your automated maintenance jobs!

Fri 03 February 2023

Azure Devops simplicity to rule them all

Keep Azure DevOps setup simple and avoid a lot of pain and waste!

Wed 18 January 2023

Engineering Practice Nuggets

Nuggets of Knowledge and Best Practices in Software Engineering

Fri 13 January 2023

Pull Request empowered by engineering practices

Pull Requests (PR) enable us improve built-in quality, engineering practices, and streamline our continuous integration pipelines.

Wed 11 January 2023

Fail, Learn, Reset!

"Failure is a good option. If you are not failing, you are not trying hard enough." - Elon Musk

Wed 28 December 2022

Azure Pipelines Conditional Logic

Make your YAML pipelines more versatile with conditional expressions.

Fri 23 December 2022

Azure Boards Tips for Operations Teams

A few useful "did you know" tips when using Azure Boards for Operational-type teams.

Fri 09 December 2022

Azure Pipelines Blueprint QA Integration

WHERE and HOW to integrate quality assurance into our OSS pipeline blueprints.

Fri 02 December 2022

Azure Boards Tips

A few useful "did you know" tips when using Azure Boards.

Tue 08 November 2022

Our open-source pipeline blueprints have landed!

Lifting the hood of our consistent, standardized, and self-service based Azure Pipelines.

Wed 12 October 2022

Test Environment Management in a hybrid world

Test Environments are a critical component of any software development lifecycle.

Fri 30 September 2022

Built-in Quality

Ensuring that our solutions meet quality guardrails and governance from ideation to deprecation.

Wed 28 September 2022

Servant stewardship of guardrails

You can chose between governance, policies, or standards, or collaborate with us through guardrails.

Wed 21 September 2022

Our road to OSS Blueprints - Suppress CD when pipeline runs within Pull Request

A glimpse at our OSS progress and how we use the same pipeline in and out of pull requests.

Fri 16 September 2022

Accelerate DevOps with GitHub Book

"Enhance software delivery performance with GitHub Issues, Projects, Actions, and Advanced Security" - Michael Kaufman

Fri 09 September 2022

Positive energy goes a long way to encourage innovation

"Every person in your company is a vector. Your progress is determined by the sum of all vectors." - Elon Musk

Wed 07 September 2022

Visualizing work item dependencies in Azure Boards

We want to plan and manage dependencies across multiple teams areas, providing awareness of the dependencies in a simple way.

Fri 02 September 2022

Trunk-based branching strategy without the bells and whistles

Keeping it simple and avoiding the soul quenching politics

Fri 05 August 2022

Automation and the great unknown

Inadvertently restricting access to thousands of pipelines with a simple automated task group insertion.

Fri 29 July 2022

Automation Mayhem and Angst is normal

Doing a manual and mind-numbing task twice or more? Automate!

Fri 27 May 2022

Stop the email overload!

Our quest to optimize email and associated WASTE

Tue 24 May 2022

Can government agencies be innovative?

How WorkSafeBC changed my perception.

Fri 29 April 2022

Improving DORA metrics

We would like to plan how to track and empower engineering to increase deployment frequency, and reduce lead time for change, MTTR, and change failure rates.

Fri 22 April 2022

Journal 4 - Why are we a (the) place to work for?

Safe and healthy workplaces. Compassionate and responsive service.

Wed 06 April 2022

Common Engineering - To Standardize or Not to Standardize, view from a directors point

Which is better, standardization or experimentation?

Fri 01 April 2022

Why we use pull requests with our trunk-based branching strategies

Busting a few process myths around branching strategies and pull-requests

Mon 28 March 2022

WHY are we pushing consistency and standardization?

Balancing autonomy with consistency and standardization.

Wed 09 March 2022

Stop the meeting overload!

My personal crusade to optimize meetings and associated WASTE

Fri 04 March 2022

Continuous Delivery in the enterprise

Continuous Delivery is no silver bullet and requires persistence, discipline and effort.

Fri 25 February 2022

DevOps Analytics Strategy

Objective, Method and Maturity model for business analytics across an enterprise.

Fri 18 February 2022

Understanding key metrics for a healthy DevOps mindset

Without real-time evidence, OODA never comes to life.

Tue 15 February 2022

Having a sound Technology Adoption Process is pivotal to innovation

Selecting a new process or product without surprising or blindsiding anyone.

Fri 28 January 2022

Journal 3 - Explore the trajectory of our Common Engineering (Ce) ecosystem

Looking at our common engineering team through the management (leader) lens

Wed 26 January 2022

When should we automate tests

This article is gist of brainstorming session among Quality Assurance (QA) team.

Tue 25 January 2022

Work-about-work

Avoid the overhead of work-about-work and adopt real time collaboration

Mon 24 January 2022

Selling technical excellence is the most challenging job

Technical excellence is best practiced by collaborating in real time

Mon 17 January 2022

Make your pipeline badges more compact and meaningful

Tired of cluttering your dashboards with duplicated waste?

Tue 11 January 2022

The problem with big batches

Improve the predictability of delivering business value by reducing the utilization rates

Wed 05 January 2022

Make yourself interruptible

Adopt humble approach when creating software products by making yourself open to interruptions

Thu 30 December 2021

DevOps value proposition

DevOps introduces simultaneous focus on expectations, architecture, design, testing, building, releasing, and running the system

Fri 24 December 2021

How to tame your vacation email traffic

How to ensure you are not confronted by hundreds of emails when you are back-to-work.

Thu 23 December 2021

How to minimize queueing

Adopt the humble approach to only work in smallest possible batches with limited work-in-progress

Thu 23 December 2021

Exploring the concept of mob-ownership

We succeed or fail as a team (mob), not as individuals!

Mon 20 December 2021

Journal 2 - Why do we need our common engineering team?

Introducing the voice of reason and stewards of guardrails

Fri 17 December 2021

Why can I not just create a working group?

It all depends on the context - [CoE] Working Group

Wed 15 December 2021

Systems thinking and the flow of work

Speeding up software development may not speed up the delivery

Mon 13 December 2021

How to track (and optimize) your email traffic

How to stop the insane volume of emails and WASTE!

Fri 10 December 2021

Replace road maps with sea charts

Adopt more modest planning strategy by treating the journey as if sailing trecherous waters

Mon 06 December 2021

Journal 1 - What is origin of our common engineering team?

Learning about the genesis of our EDO Common Engineering (EDO Ce) team

Thu 02 December 2021

Don’t debug; do TDD instead

Avoid wasteful debugging activities by creating automated tests using TDD technique

Tue 23 November 2021

Plate-emptying is not the same as Done

Maximizing the utilization of the time spent on creating software is a surefire way to drive the team into a brickwall

Wed 17 November 2021

How do we know what our customers value?

We cannot know what customers actually value unless we expose them to our products and services. Here is how to do it in the most elegant way.

Tue 16 November 2021

Streamlining your pipeline using the magic of YAML-base Azure Pipelines

Teleport to the future, to optimize the YAML-based Azure Pipeline approvals.

Sat 13 November 2021

An overview of our key collaboration ceremonies

Taking a step back and digesting this week's storm of ceremony posts.

Fri 12 November 2021

How to increase collaboration

How to improve the flow of teamwork

Fri 12 November 2021

Guidelines to start and terminate the Townhall Events

A super-event to foster systems thinking and the removal of barriers and silos

Wed 10 November 2021

What is our Community of Practice (CoP) and why do we need it?

"People with great PASSION can make the impossible happen" - Elon Musk.

Tue 09 November 2021

What is our Working Group and WHY do we need it?

Union of laser-focused experts collaborating to empower its parent Center of Enablement (CoE).

Tue 09 November 2021

How to create deterministic tests

Quality of automated tests is the most important aspect of continuous delivery

Mon 08 November 2021

What is our Center of Enablement (CoE) and WHY do we need it?

It all starts with people from different disciplines to create a focused competency center and obliterating silos through vibrant collaboration!

Thu 04 November 2021

Do not automate anything unless you automate the tests

Automating critical systems operations without having automated tests is risky practice

Tue 02 November 2021

Streamlining your pipeline approvals, without flooding DevSecOps with noise

Back to the future, to optimize the Classic Azure Pipeline approvals.

Wed 27 October 2021

Quality of Design

Adopt design principles to ensure highest quality of the code design

Mon 25 October 2021

Don’t become an Expert Beginner

How to avoid the trap of getting stuck in an Expert Beginner role

Sat 23 October 2021

Your old and trusted hammer is not always the right tool for the job

“I suppose it is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail.” - Abraham Maslow 1966

Fri 15 October 2021

Cultivate apathy for details to enable refactoring

Give equal care to the code structure as you would give to the code behaviour

Mon 04 October 2021

How to suppress selected logic when running PR validation pipelines

Solving the pipeline-as-code "chicken or the egg" challenge by suppressing selected logic

Sat 02 October 2021

A peek at our Dream Team Working Agreement Poster

As a team we want to create an empathetic, safe, and vibrant ecosystem

Fri 01 October 2021

Why I loathe when engineers use TLAs, such as CD vs CD!

The use of TLAs creates subpar collaboration, unnecessary confusion, and unintended waste.

Tue 21 September 2021

Checkout your git repos at the right time!

Let us explore why the sequence of checkout steps are important in your Azure Pipeline.

Thu 16 September 2021

Track work with POPCORN Flow

Work challenges are opportunities to explore, experiment, and track the feedback gathered from the innovation

Fri 10 September 2021

How is ordering a pizza similar to hexagonal architecture?

How to build a system that interacts with the outside world without knowing the gory details of the outside world

Wed 08 September 2021

Two ways to share your toolbox with your pipelines

Let us review two strategies to share scripts and config files with your Azure (YAML) Pipelines.

Wed 01 September 2021

Why OODA is one of the DevOps genomes

If we unpack the DevOps DNA we will find a prominent genome labeled O-O-D-A.

Wed 25 August 2021

Systems thinking

Switch focus from monitoring and measuring activities and outputs to measuring outcomes

Sat 21 August 2021

Automation enables engineering to focus on value

Asking yourself why you are performing a set of manual tasks again and again? If yes, automate!

Wed 18 August 2021

Get rid of redundant tests

Keeping the suite of automated tests lean is an essential trait of quality software engineering. Diligently remove all tests that don't add any value.

Thu 05 August 2021

Cultivate rapid spreading of knowledge

Knowledge must be shared rapidly to enable teams to continuously deliver desired values

Tue 27 July 2021

First International TDD Conference

First International TDD Conference generated a lot of good interest and traction

Sat 24 July 2021

Pipelines - Meet our second-generation app-type blueprints

Our quest for continuous improvement, simplicity, consistency, enablement, and automation has taken us into a realm of Azure Pipelines that amaze even our most critical engineers.

Thu 22 July 2021

Refactoring saves time and increases quality

Design is not a static construct, it evolves by refactoring as we keep changing the code

Tue 13 July 2021

OODA Loop and DevOps

What is the relationship between Observe-Orient-Decide-Act Loop and DevOps.

Sun 11 July 2021

Stop the context switching, reduce waste, and focus on value

A work-life balance is important, however, I believe that stopping waste and focusing on value is just as pivotal!

Thu 08 July 2021

Gotchas when sharing variables with Azure DevOps stages and jobs

Understanding and avoiding gotchas that may keep you up at 2AM, troubleshooting YAML-based Azure Pipelines

Mon 05 July 2021

Self-service automation - A dream turns into reality

Automate a “hello world in less than 1min”, also referred to as our “walking skeleton”.

Fri 02 July 2021

Our quest to share our knowledge with the world, keeping it interesting and informal

Understand how to navigate and create content for our technical blog.

Sun 13 June 2021

Quick Reference Sheet for Pipeline Terminology

Summarising the core terminology and lifetime of our pipelines.

Wed 02 June 2021

Manage your Azure DevOps User Access Levels through automation

Quick overview how our Azure DevOps access level audits and management automation using PowerShell, REST APIs, and Richard's WIKI Updater task.

Fri 28 May 2021

Client-side expressiveness and security

The importance of properly securing client-side applications has never been more urgent!

Tue 18 May 2021

Can we enact governance through engineering-friendly manifestos and guardrails?

The best way to create an engineering revolt is to enforce governance with the big stick.

Wed 12 May 2021

Extreme Programming (XP) provides options

What does 'extreme' in Extreme Programming stand for? It stands for extreme interruptability and extreme steerability

Fri 07 May 2021

Start together work together finish together

Speed up the delivery process by avoiding queuing and needless looping

Wed 05 May 2021

Enable Agile, Kanban, Scrum, or SAFe with Azure DevOps

Use Azure Boards to visualise a variety of processes using the Agile process in a single Azure DevOps project.

Fri 30 April 2021

Quick Reference Sheet for Application-type Blueprint-based Pipelines

Summarising the main points of our 2nd generation app-type blueprint-based pipelines.

Thu 29 April 2021

Introducing the Automation Working Group

Any system operation we can perform manually can be fully automated by writing scripts

Wed 28 April 2021

Azure DevOps Experimentation - YAML Conditionals, Parameters, and Triggers

Snippets of common questions and issues from Azure Pipeline workshops and support calls. Today's snippet includes conditionals, parameters, and triggers.

Mon 26 April 2021

How to share variables amongst Azure Pipeline agents

As per documentation, output variables can be used across stages in an Azure YAML-based pipeline. I will share a few turbulent moments we experienced while troubleshooting this feature in one of our pipeline blueprints.

Fri 23 April 2021

Part 8: Pipelines - From CI to CD and beyond in one pipeline

Continuous Deployment is a pivotal ingredient of a healthy DevOps mindset and our ability to delight end-users with continuous value. It is the holy grail of our profession.

Thu 22 April 2021

Only changeable design is good design

Why is changeable design desirable and what's preventing us from achieving it

Tue 13 April 2021

Quick peek into regular expressions

Regular expressions are fundamental to programming

Tue 13 April 2021

Quick Reference Sheet for YAML and Generic Blueprint-based Pipelines

Summarising the main points of YAML syntax, within the context of our generic blueprint-based pipelines.

Mon 12 April 2021

Part 7: Pipelines - There is more! Simplicity and enablement, courtesy of the app-type blueprint-based YAML pipelines

Do you want to own two or seventy five dozen lines of pipeline code per application? The choice is yours!

Thu 08 April 2021

Synchronized 'if' statements considered harmful

Duplicated imperative conditional logic leads to proliferation of bugs

Wed 31 March 2021

Extreme Programming 25 Years Later

Extreme programming keeps going strong 25 years after its launch

Fri 26 March 2021

Code-as-text

Programming computers by feeding them plain text is very slow and needs to be sped up.

Fri 19 March 2021

Incremental and Iterative Development – what’s the diff?

Visual example illustrating the fundamental differences between incremental and iterative development process.

Sat 13 March 2021

Pipeline-as-code wrapped with Pull Requests

This post attempts to give our critics some answers and scratch the surface of the possibilities and values of our new blueprint-based pipelines.

Fri 12 March 2021

Find the capabilities and IP addresses of an Azure DevOps agent

How to find more information on hosted Azure DevOps agents, such as capabilities and IP addresses.

Fri 05 March 2021

Workflow-as-code

Configuring complex workflows that govern Continuous Integration and Continuous Delivery must only be allowed by making changes to the YAML source files; GUI tools must be prohibited

Tue 02 March 2021

Part 6: Pipelines - Gotcha! The generic blueprint-based YAML pipeline simplicity

Neither the bootstrap nor generic templates are rocket science, and the YAML-based pipelines are as complex as you make them.

Thu 28 January 2021

Part 5: Pipelines - Blueprints to fuel consistency and enablement

Think of blueprints and associated templates as re-usable LEGO blocks, ranging from a bag of "do it yourself" blocks, to complex and detailed kits, such as the Imperial Star Destroyer.

Wed 13 January 2021

Part 4: Pipelines - Magic of queue time assembly

We can use the power of the new multi-stage YAML pipelines to make even our most critical security engineers smile from ear to ear.

Mon 04 January 2021

Part 3: Pipelines - Basic building blocks as templates and sprinkling on telemetry

With the support from all people, YAML templates support our five (5) core goals and pillars of our common engineering system.

Mon 21 December 2020

Part 2: Pipelines - Introduction, variables and why spaces matter

The new Azure DevOps YAML pipelines have been the focus of innovation, enabling engineering to treat pipelines as code.

Sat 19 December 2020

Part 1: Pipelines - Why bother and what are our nightmares and options?

Pipelines enable engineering to continuously deliver value, map and improve their processes and workflows, promoting consistency and reliability across the organisation.

Sat 24 October 2020

Shift LEFT and RIGHT to take yourself off the humbling 2AM calls

We need to avoid the infamous 2AM call!

Sat 24 October 2020

Don’t let your code talk to strangers

Closer look into the principle of least knowledge

Thu 22 October 2020

Collective code ownership

Teams share collective responsibility and therefore collectively own the code

Thu 22 October 2020

The clash of Azure DevOps Kanban fields and Shared Area Paths

Shared area paths can introduce inconsistency and confusion.

Wed 21 October 2020

Searching for common nodes across area paths

How can we find area path with specific text in their name?

Tue 20 October 2020

Use Active Directory Groups in your unified classic CI CD pipelines

Instead of managing permissions for users in Azure DevOps, we use Azure Active Directory groups to fine tune permissions

Tue 20 October 2020

Use the move to team project feature with caution!

The "Move to Team Project" feature can reset your work item state and dates

Mon 19 October 2020

Pull Request is your friend not foe!

There is a debate around the value of pull requests (PR), fueled by unfortunate misunderstandings.

Mon 19 October 2020

Benefits of boundaries

Simple isn't easy, but it is the only way to build anti-fragile systems

Fri 16 October 2020

Why extract methods when modifying legacy code?

Legacy code is hard to test, so extract methods by writing micro tests

Thu 15 October 2020

Benefits of frequent deployments

The longer the wait to deploy, the bigger the risk of things going south

Tue 13 October 2020

Hypothesis-Driven Development

Developing a feature without formulating a hypothesis is like shooting in the dark

Sat 03 October 2020

The cost of avoiding change

Change is stressful and risky, but avoing it is even riskier

Thu 17 September 2020

How does it feel to write software when doing TDD?

Any discipline requires serious investment in time

Fri 04 September 2020

Feature-flag Driven Development (FFDD)

Replace physical modularity with logical modularity