A Good Leader - Software Engineering at Google

2022. 6. 13. 23:56ETC/Software Engineering

본 포스팅은 Software Engineering at Google의 Leading at Scale 내용을 정리한 내용입니다.

 

 

해당 내용은 O'reilly에서 출간하고, 저자에 의해 공개된 Software Engineering at Google을 바탕으로 참고하여 정리한 내용입니다.

내용이 재밌기도 하고 기록하고 싶은 내용이 많아서 몇 가지 정리해볼 예정입니다.

 


이번 장(chapter 6)의 원래 이름은 Leading at Scale이다.

즉, 규모있는 조직을 이끄는 방식에 대해 다룬다.

 

 

결국 누구나 한 팀의 리더가 된다.

이것이 본 장을 정리하려는 이유이다.

필자는 해당 책의 모든 내용을 정리하지 않고, 스스로 판단하기에 오래 보고 싶은 내용들을 정리한다.

 

본인의 의지와는 상관이 없을 수 있게도 경력이 쌓이게 되면 한 팀을 이끌어 나갈 수 있는데,

이런 면에서 알아두면 좋을 것 같아 정리하기로 판단했다.

또, 팔로워의 입장에서 해당 내용들을 알아두며 리더의 입장을 이해해보고 싶기도 했다.

음.. 상대방을 이해하는 일부터 시작해야 서로의 방향성이 같아지지 않을까 싶다.

 

 

이제 본론으로 들어가보자.

 

이 장을 시작할 때, 훌륭한 리더로 성장하기 위한 리더십을 3가지 소개한다.

이를 "The three Always of leadership" 이라고 부르며, 번역본에서는 "3A 리더십"이라고 한다.

 

3A Leadership은 "Always Be Deciding항상 결정하라", "Always Be Leaving항상 떠나라", "Always Be Scaling늘 확장하라" 를 의미하는데, 이름에서 보이다시피 Always가 3번 반복되어서 The three Always 라고 표현하며, 3A라고 표현한다.

각각의 의미를 알아보자.

 

 

Always Be Deciding

항상 결정하라

 

리더가 되어 팀을 관리할 때에는 기존 보다 더 넓은 관점에서 많은 것들을 결정해야 한다.

엔지니어링 문제해결 보다 더욱 더 거시적인 관점의 전략을 짜야 하게 된다.

이 전략 사이에서 트레이드오프들을 정확히 찾아내어 판단하는 역량이 요구된다.

 

리더는 "나무들 사이로 숲 전체를 보면서" 목표 지점까지 팀원들을 안내해주게 된다. 

이 과정을 'Identify the Blinders', 'Identify the Key Trade-Offs', 'Decide, Then Iterate'의 세 단계로 나눌 수 있다.

이를 각각 '눈 가림막 찾기', '트레이드오프 찾기', '결정, 그리고 반복'으로 해석해본다.

 

 

Identify the Blinders

눈 가림막 찾기

 

이 소제목을 문맥상 "시야 넓히기"라고 해석할 수도 있을 듯하다.

 

한 문제를 아주 오랫동안 보고있으면 더 넓은 영역을 차마 생각하지 못하는 경우가 있다.

다른 방향이나 선택의 존재조차 눈치채지 못하는 문제를 만들어 낼 수 있는 것이다.

이로인해 "This is how we’ve always done it," - 우린 항상 이렇게 해왔다, 고 말하며 비판 능력이 사라지곤 한다.

그래서 더 넓은 영역을 보지 못하게 막는 가림막을 찾아낼 수 있어야 하고,

계속해서 질문하며, 새로운 전략을 모색할 수 있어야 한다.

 

문제 해결이 익숙하지 못하다는 배경 자체가 훌륭한 리더십의 조건은 아니다.

하지만, 그럼에도 이 가림막을 찾는 건 종종 도움이 된다.

 

 

Identify the Trade-Offs

트레이드오프 찾기

 

세상에 옳은 답이란 없다. '특정 상황에서의 최선의 답'만 있을 뿐이다.

이 트레이드오프 관계의 선택사항들 사이에 절충안을 찾아서 모든 사람과 공유한 후, 균형을 맞출 방법을 모색하는 것이 리더의 일이다.

 

 

Decide, Then Iterate

결정하고 반복하기 

 

이번 달에 내린 최선의 결정은 다음 달이 되어서 다시 평가했을 때, 다시 결정해야 할 수도 있다.

선택은 트레이드오프 관계속의 지속적인 재조정이 필요하다.

이처럼 선택은 반복적인 프로세스이다. 그래서 Always Be Deciding 이라고 부르는 것이다.

 

완벽한 해법을 위해 많은 시간을 투자하면 'analysis paralysis분석 마비' 상태가 올 수 있는데,

이를 위해 결정이 된 후 변할 수 있음을 항상 인지하고 받아들이며 위기감을 낮추고 긴장을 줄일 수 있다.

 

 

 

 

Always Be Leaving

항상 떠나라 

 

Always Be Leaving의 의미는 리더인 당신의 빈자리가 가끔 필요하다는 의미이다.

리더는 모호한 문제를 풀어주는 역할을 하면서, 조직이 리더없이도 '스스로' 문제를 풀 수 있게끔 유도해야 한다.

구글의 전 엔지니어링 디렉터인 바트 메더라다 Bharat Mediratta 의 유명한 말을 인용한 표현이다.

 

리더가 모든 일들을 맡고 있을 때, 리더가 SPOF(single point of failure, 단일 장애점)이 되는 일을 막으라는 의미이다.

지난 포스팅에서 다룬 구글의 '버스 지수 bus factor'가 이에 해당하는 의미이다.

 

이를 위해 한 문제에서 발견할 수 있는 하위 문제들을 다른 리더에게 맡기는 것이 도움이 된다.

 

 

Self-Driving Team

팀들의 팀을 이끈다는 것은 '사람들'을 조직하는 일에 가까운 것이 사실이다.

이렇게 자생력을 갖추기 위해서는 problem space를 분할하고, 하위 문제를 다른 사람에게 맡기고, 필요에 따라서 이를 반복하는 일이 필요하다.

 

여기서 problem space를 분할하라는 의미는 하나의 문제는 일반적으로 작은 하위 문제들로 구성되기 마련인데, 이를 분리하여 조직원들에게 배정시키라는 의미이다.

 

 

 

Delegating subproblems

하위 문제를 맡기며 자생력을 갖춘 리더들을 키워야 한다.

이를 위해 하위 문제들을 하위 리더들에게 위임하라.

 

 

"If you want something done right, do it yourself."

 

무엇인가 제대로 하고 싶다면, 당신 스스로 해라.

 

 

위의 격언이 이 주제를 잘 표현한다.

또한 과제를 던져준 후, 실패하고 다시 시도하며 또 도전하도록 만들어야 한다.

또, 실리콘밸리에서 통용되는 격언인 "failing fast and iterating." 빠르게 실패하고 반복하는 말이 이 내용을 보충해준다.

 

팀에게 문제를 배정해줄 때는 "문제"를 맡겨야하며, "해결책"을 맡기는 실수를 하지 말아야 한다.

팀에 "문제"가 할당되어야지 시간이 지나도 상황에 맞는 변화를 대응할 수 있게 된다.

 

 

여기서 재미있는 이야기로 위 내용을 설명해준다.

『Debugging Teams』(오라일리, 2016 )의 모든 기계를 속속 꾀고 있는 기계 마스터에 대한 이야기이다.

 

한 기계 마스터는 오래전 회사 일에 손을 떼고 쉬고 있었다. 어느날 회사에서 문제가 발생했고, 아무도 해결하지 못하자 마스터에게 도움을 청했다. 마스터는 기계를 점검해보고 소리에 귀도 기울여보고 하더니 기계 한쪽 면에 분필로 작게 ‘X’ 표시를 했고, 기술자를 불러서 표시한 부분의 벨트가 느슨해졌으니 수리해야 할 거라고 말하고는 떠났다. 기술자가 기계 커버를 열어 헐거워진 벨트를 조이니 기계는 원래대로 동작했다.

문제는 바로, 마스터가 천만 원짜리 청구서를 보낸 것이다. 겨우 분필로 표시 하나 해주고 이렇게 큰돈을 요구하냐며 금액을 낮춰달라고 요청했다. 그러자 마스터는 새로운 청구서를 보내왔다.

- 분필로 표시한 비용: 1,000원
- 표시할 지점을 알려준 비용: 9,999,000원

 

이 이야기는 우리에게 ‘지혜’가 무엇인지 말해준다.

팀을 커다란 비행 선을 타고 목적지 방향으로 비행하는 것으로 비유했을 때,

끊임없이 경로를 수정해주는 대신 분필을 들고 수정할 정확한 위치를 살짝 표시해주는 것이다.

 

작지만 아주 중요한 '터치'로 경로를 조정하는 것이다.

 

 

 

Always Be Scaling

늘 확장하라

 

지금까지 소개한 것처럼, 훌륭한 리더는 눈을 가리는 것을 찾아내고 (identify the blinders) 모든 트레이드오프를 찾아 결정하는 것으로 매번 씨름을 하게 된다. 이를 실패할 경우에도 대비해야 한다.  실패하면 다시 시도하고 또 반복한다.

 

 

The Cycle of Success

난제를 해결할 때 나아가는 사이클을 정의하면 다음과 같다.

 

https://abseil.io/resources/swe-book/html/ch06.html

 

1. Analysis: 문제를 분석한다.

2. Struggle : 부하 리더들과 조직원들이 해결하고자 경청하고 전략을 고안한다.

3. Traction: 견인으로 해석되는데, 이끌어낸다고 해석해본다. 결국 조직은 스스로 문제를 해결해 나간다.

4. Reward: 칭찬과 함께, 다음 문제가 던져진다.

 

 

이처럼 문제가 해결이 되어도, 내일이 되면 또 다른 새로운 문제가 발생한다.

여기서 문제는 새로운 문제를 받아왔는데 보통 인력 충원은 없다는 것이다.

 

이렇게 맡겨진 문제가 두 개가 되어버린다 - 기존의 문제와, 오늘 받은 새로운 문제.

원래의 문제도 여전히 관리가 필요하니 각각 '절반'의 인력과 '절반'의 시간을 할애해야 한다.

 

이를 '압축 단계 compression stage'라고 부르는데, 지금까지 하던 모든 작업을 절반 크기로 압축한다는 소리이다.

 

 

 

Important vs Urgent

 

저에겐 두 가지 종류의 문제가 있습니다. - 급한 문제와 중요한 문제.
급한 문제들은 중요하지 않고, 중요한 문제들은 절대 급하지 않습니다. 

- 아이젠하워, 미국 대통령

 

조급함은 리더인 여러분의 효율을 갉아먹는 가장 큰 적이다.

스스로를 완전한 반응형으로 전환해버리면 삶 전체의 순간순간을 오로지 ‘급한’ 일만 처리 하면서 흘려보내게 된다.

사실 거의 자동적으로 이렇게 된다

 

멀리 보면 ‘중요’하지 않은 일들임에도 말이다.

‘나만이 할 수 있는 일’을 처리해야 함을 잊지 말아야 한다.

 

 

 

Drop Balls

공떨어트리기

 

어차피 공을 떨어뜨릴 수밖에 없다면 '실수로'보다는 '의도적으로' 떨어뜨리는 게 낫지 않을까? 
그렇게만 하면 최소한 통제력은 유지할 수 있으니 말이다.

 

『인생이 빛나는 정리의 마법』(더난출판사, 2012)의 저자인 곤도 마리에의 아이디어를 응용해보자.


곤도는 집안의 잡동사니를 효과적으로 정리하는 방법을 이야기한다.

 

소지품들을 3층 선반에 정리한다고 할 때, 가장 아래 칸에는 쓸모없는 20%를 모아두고, 중간 칸은 애매한 물건들 약 60%를 차지하며, 위 칸에는 매우 소중한 나머지 20%를 보관한다. 

이 포스팅을 읽고 있는 독자는 정리를 한다고 하면 어떻게 하겠는가?

 

곤도는 '진짜' 정리는 아래 칸 20%가 아니라 위 칸 20%에 무엇을 둘지를 골라내는 것이라고 주장한다.

이와 같은 비유로, 곤도의 책에 따르면 대부분의 사람이 인생을 잘못된 방식으로 허비한다.

가장 아래의 20%를 버리는데 시간을 다 쓰고는 여전히 너저분하다고 느끼는 것이다.

 

즉, 당신만이 할 수 있는 중요한 일들을 신중히 골라낸 다음 오직 그 일들에만 집중하자는 것이다.

스스로에게 나머지 80%를 버릴 권한을 줘라.

 

이렇게 공을 이처럼 의도적으로 떨어뜨리다 보면 놀라운 사실 두 가지를 발견하게 된다.

첫째, 중간의 60%는 위임하지 않더라도 때때로 나서서 가져가는 중간 리더들이 나타난다.

둘째, 중간 칸에 잘못 넣어둔 업무라도 ‘진짜’ 중요한 것이라면 어떤 식으로든 다시 상위 20% 쪽으로 돌아온다.

 

그저 '상위 20%에 들지 못한 일들은 알아서 잘 처리되거나 다시 위로 올라올 것'이라고 믿기만 하면 된다.



Protecting Energy

에너지 관리하기

 

이러한 환경에서 열정과 긍정적인 사고를 잃지 않아야 한다.

개인의 에너지 역시 중요한 한 축을 담당하는 것이다.

 

효과적인 에너지 관리 방법을 몇 가지 살펴보자.


✔ 진짜 휴가 떠나기

주말은 휴가가 아니다. 최소 3일 이상 회사를 잊고 지내라.


 일과 단절하기

일과 멀어지려면 랩톱을 두고 핸드폰의 업무용 앱을 삭제해라.


 진짜 주말 보내기

금요일 저녁, 미련없이 좋아하는 일만 해라.


 매일 휴식하기

인간의 뇌는 90분을 주기로 일한다basic rest-activity cycle.

90분 마다 돌아오는 이 기회를 10분의 산책에 사용해라. 

 

 

🔗 basic rest-activity cycle

basic rest-activity cycle이란, Nathaniel Kleitman은 사람의 수면 패턴을 발견한 내용이다.

사람은 90분을 사이클로 수면 중에 두뇌가 휴식하는 REM 상태, 근육이 휴식하는 Deep Sleep, 그리고 Light Sleep 상태 등을 번갈아 경험한다고 한다.

그런데, 밤에 수면 중일때 뿐만 아니라 낮에 깨어 있을 때에도 90분 사이클 리듬을 계속 유지하고 있다는 사실이 밝혀졌고, 낮에 일할 때 사람의 주의력은 높은 수준에서 낮은 수준으로 90분을 사이클로 변화한다는 것이다.

 

 

 스스로에게 정신 건강의 날을 가질 수 있는 권한 부여하기

잠도 잘 잤고 잘 먹고 운동도 했는데, 어쨌든 그냥 저기압인 날이 있다. 당신이 리더라면 조직에 끔찍한 일이다. 당신이 내뿜는 어두운 기운이 주변 모두의 분위기를 가라앉게 하고 때로는 부정적인 어투로 이어지기도 한다. 그냥 연차를 쓰고 귀가하기를 권한다.