Best Practices on Azure DevOps Boards & Pipelines

DevOps is the union of people, processes and products to enable continuous delivery of value to our end users.
This session will cover both organizational and technical points from our DevOps transformation at Miba – a real world company in the engine and automotive industry.

Where did we start?
• A typical hierarchical organization with separate teams for Network, Infrastructure,
• Work was passed from one team to the next via tickets (which often ended in ping-pong and misalignment)
• Long lead time and missing transparency towards business users

What do we aim for?
• Speed: from idea to result
• Flexibility: to adapt to market changes
• Closeness: to customers

How we organize our teams and get closer to our customers?
• We introduced 20 product teams with total over 100 members, that have end 2 end responsibility for their solutions
• One product owner per team that prioritizes work in the backlog in Azure Boards based on the value (business case vs hypothesis)
• Enterprise Architects were established that align the business strategy with the IT delivery organization and build roadmaps (portfolio plans) together with the product owners
• Dashboards in Azure DevOps are used for:
○ Team transparency (velocity, cycle & lead time, value generated)
○ Customer Integration (status & collaboration)
• Suppliers were integrated via Azure AD B2B and are either in sub-teams or direct team members
• For distributed teams also Azure DevOps add-ons like Retrospectives & Estimates are used to support classic agile methods over distance

How do we achieve flexibility & speed?
– Azure DevOps enables us to plan our work and keep track via build & release pipelines
– Azure CLI is heavily used to quickly provision services in Azure from a Release Pipeline (steep learning curve)
– We switched to Azure services to host existing tools based on various technologies
○ Azure Container Registry + Azure Container instances (e.g. python & R Shiny applications)
○ Azure App Services (.NET Core Apps, Java Spring, Fortran Web Job)
○ Azure Application Insights
○ Azure DevOps deployment agents to deploy on-premises
○ Azure AD (B2B, App Proxy)
– What changes in architecture and development patterns did we take?
○ Decouple monolithic applications to smaller and easier to deploy apps
○ Move some legacy apps to SaaS platforms
○ Complex UI requirements are now built custom instead of an inflexible low code platform to ensure quicker releases and easier test automation
– First harmonize the development & deployment process and then the technology stack – rewriting everything in the beginning is not the answer

Benefits of Attending this Session:

  1. How to setup Azure Boards supporting 20 teams with 100+ people with aligned roadmaps
  2. How to setup Build & Release pipelines for different technologies (Azure CLI, Docker, Java Spring, Python, .NET Core, …)
  3. Architectural considerations for a value driven delivery organization where you can quickly react on feedback
Share this on...