Open Source on Azure: Dive into Drupal #1

AzureDevOps Sep 2, 2021

This is the 1st of a 3 part article on exploring Azure, Drupal & DevOps through a new website project for the Hampton Hill Theatre.

The site was due a major facelift and as Drupal 7 EOL is on the horizon, the tech stack needed a complete reboot. So for ease of upgrade and flexibility Drupal 9 was chosen with Azure as the cloud platform.

Drupal logo

Drupal is about as open source as you can get for a CMS, it's 100% 🆓, the core code is open (on GitLab & GitHub), API first and has a huge community of developers. It is used across many UK, US and EU governments as well as big name media companies.

Azure is a leading cloud platform from Microsoft, big on security and innovation and has made big inroads into embracing open source technologies. In this case we needed a LAMP stack to support Drupal.

So this small project was perfect opportunity to bring the Theatre's digital presence into the 20's and utilise a DevOps toolchain to deliver the goods!

This is not a step by step coding tutorial on how the site was built but covers the overall approach and will hopefully give you enough insight to generate some useful ideas and inspiration.

The trilogy 👇

  1. Product backlog: The kick off
  2. Drupal & DevOps: Choose your weapons
  3. CI-CD: Rinse & Repeat into Azure

Product backlog: The kick off

In order to get started on any web project we need to create a backlog of things to do and find a decent tool to put it in.

As we are coding and building components we need to track:

  • Product backlog
  • Source code
  • Builds & releases
An image of a ring with the text 'One tool to rule them all'

Enter Azure DevOps (ADO)

Azure DevOps logo

Of course the 'One Tool...' does not really exist but in my experience ADO goes a long way to provide everything you need to track software dev in 1 place. Requirements, Wiki, reporting, code and deployments are all integrated and linked to each other.

Added bonus it's 🆓 for first 5 basic license (power) users and has unlimited free stakeholder license access (clients can view & comment on stuff).

Check out this bite-size video from Black Marble.

Credit: Richard Fennell -

Build the backlog

An image of a man and dog with cards

Many of us have experienced projects where user stories & requirements are, in theory, saved in a tracking tool (Jira, Pivotal Tracker, Trello, Asana etc) only to be told a stakeholder has 'a private copy' buried away in a spreadsheet, word doc, email or even their head. So it's important to keep it all in 1 accessible place.

Azure Boards in ADO proved an excellent starting point to get all the project aims & objectives transferred from a Google Doc into a 'single source of truth' backlog.

As a Certified Scrum Master (thanks to the brilliant Mike Cohn) I opted for the out of the box scrum process which comes with Epics, Features, Product Backlog Items (PBI), Impediments, Bugs and Tasks. You can fully customise all these work items, fields and values if needed (even create custom processes).

An image of a scrum process
ADO backlog - Scrum process

How you slice & dice the backlog is a personal choice for any Scrum Master/Dev Manager/Product owner but starting out with Epics based on Design/Dev/Content/Go Live really helped me plan out the portfolio view of the project.

I broke this down hierarchically with the Feature level e.g Front end, Azure architecture, IaC, Content Types etc but found at times this is not always necessary as you can end up duplicating a feature with a PBI / user story just for the sake of using it. So you could just use Epics & PBI's.

Traversing down into the working backlog (the doing) writing out your PBI's using the User Story syntax ensures it's something your client really needs & wants.

An image of a User Story template

For those new to user stories it's worth checking out this link (only after you've read this blog please 😉):

User Stories and User Story Examples by Mike Cohn
What is a user story? Learn about agile user stories and examples so you can stop writing about requirements and start talking about them.

We're all about Agile so it doesn't matter if you don't have the entire project mapped out yet (in fact don't attempt it). Picking an Epic or 2 to start with should give you enough PBI's to form a first 2 week Sprint. The more granular dev tasks within each PBI can be added later at Sprint planning.

Graphic showing a backlog
ADO backlog - PBIs & Tasks

Scrum Master: Top Tip 💡

If you want to track time spent on development, estimating the PBI's effort by days and it's sub tasks by hours ensures they correlate and you get back useful reporting metrics.

Image of PBI fields
PBI estimated effort in days
Image of task fields
Task estimate & work done in hours

If you like running a tight ship like me, then at the end of each Sprint whip through these with the team:

  • Zero out 'Remaining Work' & update hours 'Completed Work' of all DONE tasks
  • Update the status of all completed PBI's
  • Drag incomplete backlog items and tasks to the next sprint or chuck 'em back in the product backlog

💰 If the project involves billing to a client or project cost code:

  • Update timesheet hours based on completed backlog items & tasks

I prefer T-Shirts

If counting & billing exact hours are not as important to you then 'T-Shirt size' can be a very useful concept to help estimate on effort on PBI's with some sense of time attached.

The Story Points field does not ship out of the box with the ADO Scrum process (comes with the Agile process and User Story work item) but you can add it as a custom field and change the values like below.

Images of text values in a list
Story Points - T-Shirt Size

If you want to instead use pure agile 'Story Points' e.g. 0, 1, 2, 3, 5, 8, 13, 20, 40 & 100, that's an excellent way to calculate effort & Sprint velocity so long as your team first gets up to speed on Agile Scrum & Planning Poker.

Make it Personal

To fully embrace User Centred Design the ADO Personas extension lets you create Personas and link them to work items so you can focus on the people you are developing for. Helps answer the question - Why are we building this thing!?

Image of an avatar with some text

Give me the GANTT

Clients always want dates.

Developers also might want to know when to ship things.

When wearing your project manager hat one of the great new ADO features is Delivery Plans. It creates a timeline making it easy to visualise your end to end backlog and show a helicopter view of what's going down with key dates & milestones.

The timeline relies on start and end dates, so if these have been added to your Epics & Features they will show up, even better your Sprints/Iterations will display so you can see how they slot into the high portfolio level. You can also add dependencies between items.

It is not a full powered Gantt chart but goes along way to bringing project management timelines into ADO, rather than trying to copy it all into something like Project Online.

Screenshot of Delivery plans

The big picture

As we now have all this data in the backlog ready to go we need to report on things. ADO has rich out of the box reporting tools with in built queries to interrogate your data as needed.

Using these queries and extensions you can build dashboards that are Information Radiators, showing everything going on in the project, from team members, overdue/blocked tasks, code commits, pipeline status through to Azure cloud spend.

Screenshot of a dashboard
ADO reporting dashboard

Wrap up

That's it for part 1, hope that was useful. A big focus there on Azure DevOps and how it's a great tool to kick off  your project & backlog.

It has to be said both GitHub and GitLab are enhancing their Issue tracking to get closer parity to Azure boards so watch this space!

Please check out part 2 where we get much more technical in Drupal & DevOps: Choose your weapons - see you then!


Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.