How to make well-architected work for organisations (2)
Tags: aws, cloud, cloudskills, architecture
Published: 2022-06-16 11:15:54

<!-- wp:columns -->
<div class="wp-block-columns"><!-- wp:column {"width":"100%"} -->
<div class="wp-block-column" style="flex-basis:100%"><!-- wp:coblocks/highlight -->
<p class="wp-block-coblocks-highlight"><mark class="wp-block-coblocks-highlight__content"><strong>Security Cost OpEx Reliability &amp; Performance (SCORP) Process Cycle - part 2</strong></mark></p>
<!-- /wp:coblocks/highlight --></div>

<!-- wp:paragraph -->
<p><em>This article is the second in a series - <a href="https://theserverlessedge.com/2021/05/how-to-make-well-architected-work-for-organisations-introducing-the-scorp-review-cycle-part-1/" target="_blank" rel="noreferrer noopener">part </a>1 gives an introduction to the well-architected framework.</em></p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 id="h-how-the-process-works">How the process works</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Now that we have established the need for well-architected in an organization and the need for a lightweight process to drive improvements, let’s deep dive into how that process, the SCORP process, works in practice.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":570,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="https://theserverlessedge.com/wp-content/uploads/2021/05/Screenshot-2021-05-14-at-10.26.11-1024x606.png" alt="SCORP Well-Architected Process Cycle" class="wp-image-570"/><figcaption>Figure 1 — SCORP Process Cycle</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>In Figure-1 I have tried to model the process cycle. It is based around two main cadences.</p>
<!-- /wp:paragraph -->

<!-- wp:columns -->
<div class="wp-block-columns"><!-- wp:column -->
<div class="wp-block-column"><!-- wp:list -->
<ul><li>Target a well-architected review (WAR) Benchmark each quarter</li><li>Target a group SCORP Team Dashboard review each sprint</li></ul>
<!-- /wp:list --></div>

<!-- wp:paragraph -->
<p>As you may realise, the <strong>quarterly well-architected review (WAR) process</strong> is a standard review of the team’s workload with a Solutions Architect. This is aimed to be a thorough deep dive into each of the five pillars and is described above.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>SCORP Review Process</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The <strong>SCORP review process</strong> is aimed at facilitating more frequent reviews of the team’s operational metrics. The frequency is aimed at frequent cross-team collaboration to share experiences, practices, approaches and learnings in relation to developer operations and production workload performance. <em>“Learning from the mistakes of others.” </em>But also learning from their successes, of which I can tell you are many.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The rationale for the frequent 2-week cycle is the following:</p>
<!-- /wp:paragraph -->

<!-- wp:columns -->
<div class="wp-block-columns"><!-- wp:column -->
<div class="wp-block-column"><!-- wp:list -->
<ul><li>Why solve the same problems in every team? A problem shared is a problem halved. But creating situational awareness into Engineering Excellence across all teams is a potent force for good.</li><li>Connecting developers and teams. Ideally, we should be working together to improve and gain more economy of scale. Teams should be helping each other improve.</li><li>Maintain emphasis on the good fight, issues with the operation and performance need to be surfaced with regularity, and sometimes that means pushing back or creating space in the development backlog for improvement.</li><li>Build the passion for excellence/fuel curiosity, get ideas out into the open, celebrate the small wins, generate pride in a good job.</li><li>The process can be used as an Alignment tool for architecture to remain engaged at the team level.</li></ul>
<!-- /wp:list --></div>

<!-- wp:heading -->
<h2 id="h-the-scorp-review-process-flow">The SCORP Review Process&nbsp;Flow</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>With the solid rationale above for the 2-week collaboration cycle, we have to make the process work. This is a high-level description of the flow and how it currently works for us today:</p>
<!-- /wp:paragraph -->

<!-- wp:columns -->
<div class="wp-block-columns"><!-- wp:column -->
<div class="wp-block-column"><!-- wp:list -->
<ul><li>All ten teams are represented by the teams Principal Engineer and Delivery Lead/Scrum Master.</li><li>The Architect facilitates the session.</li><li>If not already fully automated, then before the session, the Principal Engineer will prepare their team’s SCORP report/dashboard for review.</li><li>The review lasts around 90 mins to 120 mins. Each team takes 10 mins to talk through key trends, typically focusing on previous reports’ deltas.</li><li>The Architect will go through any high-level ‘Notice To All Developers” (NOTADs). These are things like enterprise impacts, security mandates or things like changes to the pipelines etc.</li><li>We will review current DevOps actions for each team as well and getting a quick summary of progress. If there are items that come up during the review that the team wants to research, they will follow up.</li><li>For deeper dive topics that come up frequently (i.e., testing methodology, review of analytics tool setup and cfg), These get added to the portfolio summary. The Architect or Principal engineer will then typically set up a future tech share on the topic.</li></ul>
<!-- /wp:list --></div>

<!-- wp:heading -->
<h2 id="h-the-role-of-the-well-architected-facilitator">The role of the well-architected facilitator</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The facilitator has an important role. On a purely mechanical level, the facilitator has the responsibility for keeping the cycle on track, no mean feat when you have ten squads. This requires discipline and the process to be used wisely, i.e., knowing what to pack and what to get into. The facilitator ideally is an architect with plenty of experience in <a href="https://aws.amazon.com/marketplace/solutions/devops?trk=ps_a134p000004f6OVAAY&amp;trkCampaign=AWSMP_sol_aoc_x_DevOps-Home&amp;sc_channel=ps&amp;sc_campaign=ps_google_sitelink&amp;sc_outcome=Marketplace&amp;sc_publisher=Google&amp;sc_category=Business%20Applications&amp;sc_country=UKIR&amp;sc_geo=EMEA&amp;sc_detail=devops&amp;sc_matchtype=e&amp;sc_segment=475407611667&amp;sc_content={ad%20group}&amp;sc_medium=MKT-P%7CPS-GO%7CNon-Brand%7CDesktop%7CPA%7CDevOps%7CMarketplace%7CUKIR%7CEN%7CText%7Cxx%7CB2B&amp;s_kwcid=AL!4422!3!475407611667!e!!g!!devops&amp;ef_id=Cj0KCQjwlMaGBhD3ARIsAPvWd6iBcnDVQODEceDlqdu94eC_65ZfckMxeoqfp-bB05oFwnH9f2VAgCAaApucEALw_wcB:G:s&amp;s_kwcid=AL!4422!3!475407611667!e!!g!!devops">DevOps</a> and the well-architected framework, but they also need to be in a position of authority and have some influence on the team’s ability to prioritise their work. </p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3>The rationale for the facilitator role</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The rationale for this is the following:</p>
<!-- /wp:paragraph -->

<!-- wp:columns -->
<div class="wp-block-columns"><!-- wp:column -->
<div class="wp-block-column"><!-- wp:list -->
<ul><li>The facilitator has to ask questions? They should be comfortable directing the team to look at an area that is maybe not trending well, i.e., cost, performance response times etc. but realistically with continuous improvement in mind.</li><li>The facilitator should always be attempting to connect the engineers and teams. I.e., if one team has an amazing BDD technique and another could benefit from it, then the facilitator should suggest them pairing up.</li><li>They should constantly be evolving the SCORP process. It has to be a value add for <strong>all</strong> the engineers and teams. If something is not working or adding value, then the facilitator has to address it.</li><li>The facilitator should always be attempting to generate interest in what the teams are trying to achieve, whether in the review or post review with product owners or management.</li><li>They will celebrate the successes and wins of each team with the group, no matter how small. Progress is progress! Teams and engineers should leave feeling like a million bucks when improving.</li><li>They will facilitate a positive sharing environment where all voices get heard. Failures are never negative. They are an opportunity to learn and become better as we do!</li></ul>
<!-- /wp:list --></div>

<!-- wp:paragraph -->
<p>It is a challenging role to fulfil, but it is a super important one to ensure the success of the process cycle.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 id="h-scorp-process-cycle-day-zero">SCORP Process Cycle Day&nbsp;Zero</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Having tried to facilitate similar processes earlier in my career, the most significant learning that I had was that “Y<em>ou need to meet the teams where they are at</em>.” Some teams will have been together for an extended period of time and have great DevOps with high levels of automation and insight. Other teams will not; they may be newly formed, or for one reason or another might not have had the time, expertise or capacity to achieve the operational maturity of some of the more experienced teams around them.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>You also need to make sure that management and the business are aware of the well-architected initiative’s aims and goals. This is because it does require investment from the teams in terms of participation, but sometimes doing the right thing involves slowing down from time to time which is sometimes not a straightforward conversation when it comes to meeting delivery timelines.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>SCORP Docs</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Before entering into the cycle, I had several meet-ups with the Principal Engineers and Delivery Leads for our squads. This is important as its aimed at getting the teams and lead engineers to own the SCORP Review Cycle. They have to buy in and feel like they have a stake in the process. During this time, I worked with them to agree on the following things:</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Ways of Working Agreement</strong> — Frequency of the cycle, Safe Space Commitment, attendance, length of meeting etc. All the typical things you would tend to find in a working agreement.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>The SCORP Report Template</strong> — The SCORP report template structure was the task that we, the group, spent the most time on. The SCORP Report contains all the critical operational metrics relating to team and workload performance. The insights to be collected and reviewed via this template had to be influenceable and impactful to all teams and structured around the five pillars of the Well-Architected Framework. In the beginning, we agreed for each team to begin collecting these metrics using a Confluence wiki page. It might be quite controversial, but I told the teams upfront that having to manually update their wiki page every two weeks with the key metrics was part of a rather devious plan that annoys them enough to invest in automating these insights. Luckily this has been the case.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 id="h-a-sample-scorp-report-dashboard-template-for-well-architected">A sample SCORP report/dashboard template for well-architected</h2>
<!-- /wp:heading -->

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s4odx4g8k0t1t0efdwcj.png)

<figcaption><em>Sample report format.</em></figcaption></figure>
<!-- /wp:image -->

<!-- wp:heading -->
<h2 id="h-wrapping-up">Wrapping Up</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Becoming a High Performing Team takes time and effort. It requires investment in your craft, learning from your successes and failures but also the successes and failures of others. The process is certainly not perfect, and it will evolve and change, but that is what I would expect as the software industry is constantly changing and evolving.&nbsp; To borrow a term from Jeff Bezos we are well on our way to creating our own operational FlyWheel.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>SCORP Operational Improvements</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Now that we’re observing our trends regularly, we are beginning to observe some positive changes. I wish that I could share more quantifiable data, I will endeavour to do that with future write-ups, but in Qualitative terms, all teams involved in my SCORP Review Cycle have made significant operational improvements. I have summarised some of my favourites and most impactful below:</p>
<!-- /wp:paragraph -->

<!-- wp:columns -->
<div class="wp-block-columns"><!-- wp:column -->
<div class="wp-block-column"><!-- wp:list -->
<ul><li>The majority of teams have produced automated dashboards (DataDog, Splunk etc.) We are now tracking significantly more data points than we were three months ago.</li><li>We have seen a significant focus on performance improvements. All squads have reduced response times through activities such as performance tuning.</li><li>The collaboration around test automation has been phenomenal. Once we saw that integration testing was an issue across all teams, it became a safe topic of discussion, and the innovation began. BDD is now starting to take hold across the teams.</li><li>Security is front and centre. We have seen much more investment in activities such as threat modelling and the facilitation of mitigations of identified threats.</li><li>From an operational excellence perspective, we have had a sub-community form around observability and workload release confidence.</li><li>The progress is clear to see in subsequent WAR reviews.</li></ul>
<!-- /wp:list --></div>

<!-- wp:heading -->
<h2>Conclusion</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>As an architect, I couldn’t be happier or prouder of the team’s contributions. We are well on our way to meeting the goals of my original hypothesis. I have never been in any doubt about what we could begin to achieve through a bit of investment in continuous improvement but seeing it, in reality, is quite rewarding. I would recommend that any technical leader implement a SCORP review Process Cycle based on Well-Architected to drive engineering excellence within their organisation.</p>
<!-- /wp:paragraph -->