2020 State of Performance Engineering report: (1) Culture

Updated:

Chapter 1: Culture of performance engineering

‘Leading Business Change Guru’인 Torben Rick에 따르면, 기업문화는 비즈니스의 여러 측면을 형성하고 있는데, 이러한 비즈니스는 ‘Application Performance’에 대해 생각하고, 관리하고, 구현하기 위한 방향성을 포함하고 있습니다. 또한, 기업문화는 구성원들이 Performance Engineering에 접근하는 방법과 그들이 수행하는 업무 효율성에도 영향을 미칠 수 있습니다. 이와 동시에, Performance Engineering은 비즈니스 및 기업문화의 성공뿐만 아니라, 구성원과 비즈니스가 일하는 방식과 관련한 전략에 대해서도 영향을 미칠 수 있습니다.

이번 Chapter에서는 ‘Application Performance’가 어떻게 Value를 얻게 되는지와, 조직차원의 다양한 계층에서 어떻게 반영되는지에 대해 알아봅니다. 차례대로, ‘Culture of Performance’가 우리의 비즈니스에 미치는 영향에 대해 검토하고, Performance Engineering에 대한 접근방법이 완벽을 기할 수 있도록 권고사항을 제시합니다.

Where does application performance fit in business priorities?

한 기업이 소프트웨어 결함(a Software Glitch)을 대외적으로 공개하는 것은, 주주가치(Shareholder Value)를 생각보다 많이 훼손시킬 수 있습니다. 2018년 BBC에서는 한 페이지를 로딩하는데 1초가 증가할 때마다, 사용자의 10%가 자사의 웹사이트를 떠난다는 분석결과를 보도하였습니다.

At the BBC we’ve noticed that, for every additional second a page takes to load, 10 per cent of users leave. This is why, if the BBC site is slowing down due to load, certain features will automatically switch off to bring the speed up again. These will be low-importance things – such as a promo box at the bottom of a page – that are expensive on the server and few users will miss.

Source: https://www.creativebloq.com/features/how-the-bbc-builds-websites-that-scale

‘Poor Application Perofrmance’는 구성원의 생산성을 낮추고, 고객 경험을 저하시키며, 프로세스 효율성을 감소시키고, 불필요하게 자원을 전용하며, 전반적인 비즈니스 성과를 감소시킨다는 점을 우리는 모두 인지하고 있어야 합니다.

최근 빈번하게 발생하고 있는 소프트웨어의 실패들이 비즈니스와 경력 모두를 위험에 빠뜨리고 있음에도, 이번 설문조사의 결과는 스스로를 속이고 있는 상황을 보여주고 있습니다. 많은 회사들이 자사의 애플리케이션들이 성능에 의존적인 상황임에도, 이들 중 일부의 회사들만이 성능을 개선하고 지원하기 위해 의욕적으로 투자하고 있다는 것을 보여주고 있습니다. 놀랍게도, 전체 응답자의 21%만이 ‘Application Performance’가 브랜드 자산(Brand Equity)의 필수적인 요소라고 대답했습니다.

이러한 ‘단절(The Disconnection)’은 시간압박, 예산제약, 전략적 이슈들과 같은 운영상의 이슈로 인해 발생할 수 있습니다. 다시 말해서, C-Level의 인식부족이 재무적인 영향 이상의 결과를 초래하는 것입니다. ‘Poor Performance’가 발생시키는 실제적인 비용은 돈, 시간 및 기업 이미지의 손상이 모두 조합된 결과입니다.

‘Good Performance Engineering’의 중요성에 대해서는 오랜 세월동안 이미 잘 알려져 왔습니다. 이에 대한 증거로는 2006년 Amazon 직원과의 인터뷰를 그 예로 들 수 있습니다. Amazon은 수많은 테스트를 통해, 웹사이트에서는 1초 미만의 지연조차 상당한 수익 감소를 초래한다는 사실을 발견해냈습니다.

This conclusion may be surprising – people notice a half second delay? – but we had a similar experience at Amazon.com. In A/B tests, we tried delaying the page in increments of 100 milliseconds and found that even very small delays would result in substantial and costly drops in revenue.

Source: http://glinden.blogspot.com/2006/11/marissa-mayer-at-web-20.html

보다 최근 사례인 2018년 Google Research에서는, “페이지 로딩 시간이 1초에서 10초로 지연되면, 모바일 사이트의 ‘이탈(Bouncing)’의 가능성이 123%까지 증가한다”고 말하고 있습니다. 최종 사용자는 회사가 서비스 플랫폼을 만드는데 드는 노력에 대해 거의 공감하지 못합니다. 그들은 단지 잘 작동하기만을 원할 뿐입니다.

Sogeti

Source: www.thinkwithgoogle.com

이탈(Bouncing)의 정의

구글애널리틱스에서 이탈(bounce) 의 가장 쉬운 정의는 ‘누군가 웹사이트를 방문했다가 아무 일도 하지 않고 떠났다’ 는 뜻 입니다. 예를 들어 첫번째 페이지 뷰 이후 다른 페이지를 조회하지 않았거나 아무런 상호 작용이 없었다는 것 입니다.

이탈률(Bounce rate)은 단일 페이지 세션 수를 총 세션수로 나눈 비율로, 단일 페이지뷰 이후 상호작용을 하지 않고 이탈한 세션의 비율을 뜻합니다.

Source: https://www.d-mention.net/blog/insight/634/

빠르고, 안정적이며 신뢰할 수 있는 소프트웨어가 2020년 현재의 핵심적인 기대사항입니다.

‘Application Performance’에 대한 신뢰는, 곧 비즈니스 전체에 대한 신뢰를 의미합니다.

Application performance is key, yet addressed tactically rather than strategically

대부분의 조직들이 ‘Application Performance’의 측정을 전통적인 ‘Load and Stress Testing’으로만 제한하고 있습니다. 이러한 제한을 제거하는 한가지 방법은 비즈니스 성과를 컴퓨터 시스템의 Performance와 연결하는 것입니다. 본질적으로, 비즈니스 이해관계자는 측정가능하고, 실용적이며, 유용한 핵심 비즈니스 측정지표를 세부적인 수준까지 도출하기 위해, 적극적으로 협력할 필요가 있습니다.

이러한 조직 환경에서는 기술 직원들이 당면하는 과제가 비즈니스 이해관계자들의 관심을 받을 수 있게 됩니다. 일반적으로, 더욱 실용적인 접근방법은 사업조직(The Business)이 초기 토론을 리드하고, CTO(Chief Technical Officer)가 후속 토론과 함께 조직 전반에 걸친 필요한 변화들을 주도하는 것입니다. 이것은 그들이 Performance Engineering에 대해 목소리를 내기 위한 권한, 범위 및 영향력을 부여하게 됩니다.

이에 따라, 사업조직과 CTO는 Performance Engineering이 그들의 비즈니스 목표 달성을 위해 어떻게 도움을 주는지, 또한 이것이 현실화될 수 있도록 Performance Engineering의 효율성을 극대화하기 위해서는 그들이 어떻게 도와야 하는지에 대해 모두 이해하고 있기 때문에, Performance Engineering을 대표하는 구성원은 활동의 대부분이 보장된 상황에서 수월하게 개선활동을 수행할 수 있게 됩니다.

Sogeti

설문 응답자의 25%는 ‘System Performance’가 그들의 비즈니스 성과에 직접적으로 연결된다고 답변했습니다. 이러한 ‘연결(Connection)’은 공동 유대감을 제공하고, 회사가 세부 비즈니스 요구사항 및 비즈니스 로직에 적합한 ‘Application Performance’에 대한 접근방식을 결정하게 하며, 그에 맞게 적용할 수 있도록 도와줍니다.

업계 선두에 있는 응답자의 20%는 Performance가 비즈니스를 성공적으로 이끄는 원동력이라는 믿음을 가지고 있습니다. 이러한 조직들은 종종 SDLC(Software Development Life Cycle) 전체에 걸쳐 Performance를 측정합니다. 예를 들어, Architectural Standpoint, UI Level, API Level 및 Data Level에서 Performance를 고려하고 측정하는 회사들이 있습니다.

Performance와 연관성을 지닌 Healthy Indicator는 회사 전체의 구성원들이 다양한 토론에서 진정으로 고려하는 주제에서 도출됩니다. 예를 들어, 소프트웨어 개발팀이 그들의 작업에 적절한 Performance관련 측정지표를 포함시키는 것을 돕기 위해, Agile ‘story’ Level을 사용할 수 있습니다. Performance가 가시적으로 측정되고, 그 결과가 비즈니스 전반에 걸쳐 자유롭게 사용될 수 있을 때, 이것을 ‘입증신호(Corroborating Sign)’로 받아들일 수 있습니다. 이 보고서의 뒷부분에서는 Performance를 보편적으로 사용하고 있는 기업들의 몇가지 예를 소개합니다.

Incidents remain the greatest driver of change

우리는 조직들이 Performance Engineering에 접근하는 방식에 있어, 행동으로 이끄는 두가지 촉진요소를 발견했습니다. 첫번째는, 해당 조직이 중대하면서도 심각한 Performance Issues를 지속적으로 경험해왔다는 것입니다. 두번째는, Performance Engineering이 기업 문화로 스며들 수 있도록 영향을 미치는 구성원들을 통한 것입니다. 보통 이러한 구성원들은 그들의 전문성을 해당 조직에 참여하기 이전부터 확보하고 있으며, 기존 관행을 개선하기 위한 방향성에 대해 동료들의 생각을 확장시킬 수 있도록 영감을 주는 실질적인 동기부여 사례들을 공유합니다.

첫번째 촉진요소의 좋은 사례는 미국 지역은행의 고객에 대한 COVID-19의 영향과 관련한 것입니다. COVID-19 이전에 이 은행은 시스템의 Performance에 대해 크게 고려하고 있지 않았습니다. 그러나, 생활과 재정 측면에서 COVID-19의 영향을 이미 체감하고 있는 고객들에게 COVID Hardship Website를 확장함으로써, 온라인에서의 (재정지원 관련) 업무 처리 영역을 강화하고 좋은 사용자 경험을 제공하고자 하는 과정에서, Performance의 중요성을 현실적으로 인식하게 되었습니다.

‘Good Performance’에 대해, 직접적인 비즈니스 성과지표를 넘어 기업문화의 한 요소로서 가져가야할 추가적인 이유들이 있습니다. 예를 들어, Better Systems Performance는 구성원들이 보다 효율적이고 효과적으로 일하는 것을 가능하게 함으로써, 업무 의욕을 개선할 수 있습니다. 회사는 소속 구성원들에게 많은 관심을 가지고 있다는 것을 보여주기 위한 방안으로 시스템 성능 개선에 투자합니다.

Sogeti

현재 일부 비즈니스에서는 공급자와의 계약에서 성능 요구사항이 포함되고 있습니다. 이러한 요구사항들은 보통 공급자가 성능 요구사항을 만족시키지 못하게 되면 적은 금액을 받게되는 패널티를 적용하게 됩니다. 예를 들어, 대규모 통신회사는 스마트폰 선도 제조업체가 신규 단말기를 출시하는 날로부터 특정 기간 내에, 일정수준 이상의 스마트폰 판매량을 달성하는 것에 대해 합의합니다. 내부적으로는, 중요한 판매 기간동안 성능 이슈 발생시 Safety Margin을 제공하기 위해, 더욱 엄격한 Internal Performance Metrics을 설정할 필요가 있습니다.

Application Performance Incidents는 종종 사전에 해결되었어야 하는 조직 실패(Organisational Failures)의 결과물입니다. 특히, 개별 Microservice의 개발에 대한 책임이 있는 팀들이 가진 과제들 중 하나는, SLA, SLOs, KPI, Targets and Penalties와 같이 많고 다양한 지표들에 대해 어떻게 책임과 오너십을 가질 수 있게 만드는가에 대한 것입니다. 또 다른 과제는 그들의 Code에 대해 어떻게 적절한 성능 측정지표를 식별하고, 비즈니스 측정지표와 매핑시킬 수 있는지에 대한 방법을 찾는 것입니다. 보통 그렇게 하는 것이 연관된 경험으로부터 Benefits를 얻을 수 있게 만드는 반복적인 프로세스입니다.

Let’s defragment our measurements

Performance Engineering의 문화는 또한 Technology, Process 및 Activities가 측정되어야 함을 의미합니다. Application Performance는 Customer Satisfaction (human), Business Oriented (financial), Analytical (journeys and tunnels) 및 Technical (transactions per second) 등과 같은 것을 사용하여 숫자로 추적할 수 있습니다. 또 다른 보완적인 접근방식은 Performance가 DoD(Definition of Done)의 일부인지를 확인함으로써, Performance가 작업이 적절하게 완료되었는지 여부를 결정하는데 포함되어 사용되고 있는지를 보는 것입니다.

성숙한 대부분의 조직들은 Technology-facing Metrics 뿐만 아니라, 그들의 소프트웨어가 비즈니스 관점에서 어떻게 작동하고 있는지에 대한 평가를 반드시 진행합니다. 하지만, 현재 조직들 중 일부만이 실제로 그렇게 수행하고 있습니다.

팀들이 독립적으로 업무를 수행한다고 할 때, 예를 들어 한 팀은 User Interface에 대해, 다른 팀은 Data에 대해, 또 다른 팀은 Infrastructure Layers에 대해 각각 작업을 수행합니다. 각각의 팀들이 소프트웨어의 Performance를 측정한다고 하더라도 Holistic Performance는 부재할 수 있습니다.

Performance Engineering을 이해하고 있는 조직의 사례로서, 한 대규모 보험회사에서 API Platform을 제공하고 있는 조직을 예로 들 수 있습니다. 이 조직의 팀들은 개발의 각 부분에서 Performance에 대해 지속적으로 질문하는 법과, 그들의 업무에 명확한 Performance Requirements가 설정되었는지 여부를 결정하는 법에 대해 학습해오고 있습니다.

Sogeti

Question 3에서 ‘End User Focus Groups’을 구성하고 있다고 응답한 비율이 13%라는 점은, 이 결과가 내부 사용자용으로 개발된 앱을 포함하고 있지 않다면, 우리의 경험에서는 매우 놀라운 수치입니다. 사용자로부터 피드백을 수집하기 위해 조직들은 일반적으로 Focus Groups of External Users보다는 설문 조사를 사용하거나 Social Media를 모니터링합니다. 또 다른 접근방식(Weaker Approach)은 User-centric Performance를 직접 측정하지 않는 대신, 통찰력에 기반하거나 Performance에 대해 제출된 Tickets의 수에 따라 측정지표가 도출되기도 합니다.

Disturbingly weak expectations for response times

우리는 사용자의 행동이 측정되는 방식이 무엇이든 간에(Session Depth, Return Rate 또는 Productivity 등), 애플리케이션의 응답성능이 사용자의 행동에 영향을 미친다는 점을 진실로 믿고 있습니다. 하지만, 설문조사에 따르면 설문 조사에 응한 80% 이상의 조직들이 그들의 Mobile Apps의 응답성능이 3초 이상인 경우에도 수용할 수 있다고 답하고 있습니다. 역설적이게도, 자신이 담당한 업무에서는 4~5초 및 10초까지의 응답성능도 만족한다고 응답한 개인들이, End User 입장에서 답변할 때는 더 짧은 응답성능을 기대하고 있다는 점입니다.

Sogeti

Do we treat our users as second-class citizens while we expect a first-class service as users ourselves?

여기에서 기대하는 주목할만한 차이 이상으로 더 많은 것들이 위태로울 지도 모릅니다. 우리의 설문조사에 참여한 대다수 구성원들은 최소 10년이상 업무를 수행해 왔으며, 현재 Senior Positions에 도달해 있습니다. 이 회사들이 적절한 수준으로 남아있기 위해서는, 그들의 비즈니스에 청년 세대들을 구성원으로 유치해야 합니다. 하지만, 많은 청년들은 이제 ‘목적(Purpose)’와 같은 새로운 차원의, 추가적인 기준에 기반하여 일자리를 찾고 선택합니다.

Salesforce는 명확한 목적을 가진 회사의 예가 될 수 있습니다. 그들의 1% pledge(기업이 가진 1%의 지분, 시간, 제품을 기부하기로 서약)와 접근 방식은, 사람들이 회사와 Ecosystem에 합류하기 위한 동기부여 측면에서 효과가 있는 것으로 나타나고 있습니다.

Salesforce

Source: https://pledge1percent.org/

‘Utopia for executives’ 연구보고서에서 Sogeti는 목적(Purpose)에 대해 ‘외부 관점으로서의 방향성(Directionality as an Outside-in Perspective)’으로 정의하고 있습니다. 사회가 빛을 비추고 있는 방향 속에서, 당신은 어떤 ‘목적(Purpose)’에 기반하여 비즈니스를 제공하고 있습니까? 청년들은 Slow Companies에서 근무하는 것을 원치 않습니다.

‘Application Performance’의 문화를 구현하는 것은 전사적 품질 정책에 기반한 경영층 레벨에서 시작하여, 다양한 팀들 속에서 보다 정밀하게 맞추어져 갑니다. ‘Application Performance’는 모든 구성원의 책임이 되어야 합니다. 지금은 기존의 방어적인 접근방식에서 탈피하여, 각각의 조직들이 더 나은 ‘Application Performance Governance’를 준비해야 할 시간입니다. 이를 통해 조직차원의 변화를 잘 이끌 수 있게 되는데, 이 부분은 Chapter 2에서 계속해서 다룹니다.

Source: https://www.neotys.com/resources/research-report/the-state-of-performance-engineering-2020