Give equal care to the code structure as you would give to the code behaviour
Solving the pipeline-as-code "chicken or the egg" challenge by suppressing selected logic
As a team we want to create an empathetic, safe, and vibrant ecosystem
The use of TLAs creates subpar collaboration, unnecessary confusion, and unintended waste.
Let us explore why the sequence of checkout steps are important in your Azure Pipeline.
Work challenges are opportunities to explore, experiment, and track the feedback gathered from the innovation
How to build a system that interacts with the outside world without knowing the gory details of the outside world
Let us review two strategies to share scripts and config files with your Azure (YAML) Pipelines.
If we unpack the DevOps DNA we will find a prominent genome labeled O-O-D-A.
Switch focus from monitoring and measuring activities and outputs to measuring outcomes
Asking yourself why you are performing a set of manual tasks again and again? If yes, automate!
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.
Knowledge must be shared rapidly to enable teams to continuously deliver desired values
Exploring the advantages of Test-driven Development and the concept of self-healing code
First International TDD Conference generated a lot of good interest and traction
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.
Design is not a static construct, it evolves by refactoring as we keep changing the code
What is the relationship between Observe-Orient-Decide-Act Loop and DevOps.
A work-life balance is important, however, I believe that stopping waste and focusing on value is just as pivotal!
Understanding and avoiding gotchas that may keep you up at 2AM, troubleshooting YAML-based Azure Pipelines
Automate a “hello world in less than 1min”, also referred to as our “walking skeleton”.
Understand how to navigate and create content for our technical blog.
Enabling engineering to continuously build, validate, and deploy secure solutions to delight our customers
Summarising the core terminology and lifetime of our pipelines.
Quick overview how our Azure DevOps access level audits and management automation using PowerShell, REST APIs, and Richard's WIKI Updater task.
The importance of properly securing client-side applications has never been more urgent!
TDD explained to non programmers by using the example of writing a short story
The best way to create an engineering revolt is to enforce governance with the big stick.
What does 'extreme' in Extreme Programming stand for? It stands for extreme interruptability and extreme steerability
Speed up the delivery process by avoiding queuing and needless looping
Manage your blast radius through progressive exposure with feature flags
Use Azure Boards to visualise a variety of processes using the Agile process in a single Azure DevOps project.
Summarising the main points of our 2nd generation app-type blueprint-based pipelines.
Any system operation we can perform manually can be fully automated by writing scripts
Snippets of common questions and issues from Azure Pipeline workshops and support calls. Today's snippet includes conditionals, parameters, and triggers.
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.
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.
Why is changeable design desirable and what's preventing us from achieving it
Regular expressions are fundamental to programming
Summarising the main points of YAML syntax, within the context of our generic blueprint-based pipelines.
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!
Duplicated imperative conditional logic leads to proliferation of bugs
Extreme programming keeps going strong 25 years after its launch
Programming computers by feeding them plain text is very slow and needs to be sped up.
Visual example illustrating the fundamental differences between incremental and iterative development process.
This post attempts to give our critics some answers and scratch the surface of the possibilities and values of our new blueprint-based pipelines.
How to find more information on hosted Azure DevOps agents, such as capabilities and IP addresses.
Use feature flags to fine-tune each release in production.
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
Neither the bootstrap nor generic templates are rocket science, and the YAML-based pipelines are as complex as you make them.
WorkSafeBC DevOps 100th sprint celebration coincided with the 20th anniversary of the Agile Manifesto
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.
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.
With the support from all people, YAML templates support our five (5) core goals and pillars of our common engineering system.
The new Azure DevOps YAML pipelines have been the focus of innovation, enabling engineering to treat pipelines as code.
Pipelines enable engineering to continuously deliver value, map and improve their processes and workflows, promoting consistency and reliability across the organisation.
We need to avoid the infamous 2AM call!
Closer look into the principle of least knowledge
Teams share collective responsibility and therefore collectively own the code
Shared area paths can introduce inconsistency and confusion.
How can we find area path with specific text in their name?
Instead of managing permissions for users in Azure DevOps, we use Azure Active Directory groups to fine tune permissions
The "Move to Team Project" feature can reset your work item state and dates
There is a debate around the value of pull requests (PR), fueled by unfortunate misunderstandings.
Simple isn't easy, but it is the only way to build anti-fragile systems
Legacy code is hard to test, so extract methods by writing micro tests
The longer the wait to deploy, the bigger the risk of things going south
Developing a feature without formulating a hypothesis is like shooting in the dark
Change is stressful and risky, but avoing it is even riskier
Any discipline requires serious investment in time
Replace physical modularity with logical modularity