책 '구글 엔지니어는 이렇게 일한다'의 Part 2 - 문화에 대해서 읽고 정리하였다.
Part 2의 세부 목차는 아래와 같다.
- [chapter 2] 팀워크 이끌어내기
- [chapter 3] 지식 공유
- [chapter 4] 공정 사회를 위한 엔지니어링
- [chapter 5] 팀 이끌기
- [chapter 6] 성장하는 조직 이끌기
- [chapter 7] 엔지니어링 생산성 측정하기
chapter 2, 3, 5, 6을 읽고 느낀 점을 위주로 정리하였다.
2.2에서 은둔하며 엄청난 코드를 짜는 천재는 환상에 가깝다는 이야기를 읽고, 내가 어떤 개발자 또는 어떤 소프트웨어 엔지니어가 되고 싶은 것인지에 대해 다시 생각하게 되었다. 많은 사람들이 본능적으로 우상, 롤모델을 찾고 흠모하며 흉내 내고 싶어 한다. 하지만, 실제 세상을 바꾸는 큰 성취는 혼자만의 힘으로 이루어지지 않았다. 내가 지금까지 흐릿하게 꿈꿔왔던 것은 고독한 장인에 가까운 모습이었다. 하지만, 협업하는 멋진 팀의 일원으로서 일하는 것, 내가 속한 팀을 멋진 팀으로 만드는 것 또한 정말 대단한 일이라고 느꼈다.
말하고자 하는 핵심은 프로그래밍 세계에서는 고독한 장인은 매우 드물고, 존재하더라도 초월적인 업적을 홀로 이루지는 않는다는 것입니다. 그들이 만든, 세상을 뒤바꾸는 성취는 영감의 불씨를 영웅적인 '팀의 노력'으로 활활 불사른 결과인 경우가 거의 대부분입니다.
더 간단히 말하면, '소프트웨어 엔지니어링은 팀의 단합된 노력입니다.' 흔히들 생각하는 천재 프로그래머에 대한 환상과는 완전히 다르지만, 은신처에 홀로 숨어 자신의 영민함만 믿고 준비한 비밀 무기로는 세상을 바꾸거나 수백만 컴퓨터 사용자에게 기쁨을 주지 못할 것입니다. 다른 사람과 함께 일해야 합니다. 비전을 공유하세요. 역할을 나누세요. 다른 이로부터 배우세요. 멋진 팀을 만드세요.
그리고 나를 포함하여 많은 개발자들이, 정도의 차이는 있겠지만, 2.1처럼 자신의 미완성 코드, 자신 없는 코드를 숨기고 싶어 한다. 이렇게 진행 중인 작업물을 다른 사람에게 보이고 싶지 않은 이유는 불안감 때문이다. 하지만, 혼자 일하는 것보다 다른 사람과 협업하고 의견을 공유하는 것의 장점이 훨씬 더 크다. 무언가를 개발할 때 같은 시간 동안 혼자서 고민하는 것과 다른 사람들과 협업하는 것 중 후자가 더 퀄리티 높은 결과물을 만들어낼 수 있을 것이다.
2.4에서 사회적 상호작용의 세 기둥으로, 겸손, 존중, 신뢰를 이야기했다. 큰 규모와 높은 퀄리티의 소프트웨어를 적절한 시간 안에 만들기 위해서는 혼자가 아니라 팀으로 일해야 한다. 개인보다 팀의 합이 중요하고, 팀원들은 각자 겸손하기 위해, 서로를 존중하고 신뢰하기 위해 노력해야 한다. 또한 코드 리뷰 등의 상황에서도 겸손, 존중, 신뢰가 중요하다고 느꼈다.
거의 모든 사회적 갈등의 근본 원인을 분석해보면 결국 겸손, 존중, 신뢰가 부족하여 일어났음을 알게 됩니다. 바로 수긍하기 어렵다면 곰곰이 생각해보세요. 여러분 주변에서 벌어지는 불쾌하고 불편한 사회적 상황을 떠올려보세요. 모든 사람이 만족할 만큼 겸손한가요? 다른 이들을 진심으로 존중하나요? 서로 신뢰하나요?
'나는 내 코드가 아니다'라고 반복해서 되뇌세요. 여러분 자신과 여러분이 만든 것을 구분지으세요. 자신을 믿고 또 동료를 믿으세요.
3.1에서 배움을 가로막는 장애물은 심리적 안전 부족 등이라고 하였다. 그리고 3.3에서 심리적 안전이 뒷받침되어야 학습 환경을 조성할 수 있다고 하였다. 스터디 문화가 자리잡기 위해서는 먼저 실수나 무지를 인정하는 것이 두렵지 않은 환경이 되도록 노력해야겠다.
먼저 자신이 이해하지 못한 게 있음을 인정해야 무언가를 배울 수 있습니다. 그러니 우리 모두 타인의 무지를 탓하지 말고 그 솔직함을 반겨야 합니다.
배움에는 '무언가를 시도하다가 실패해도 안전하다'는 인식이 엄청나게 중요합니다. 건강한 환경에서라면 사람들은 질문을 던지고, 틀리고, 새로운 지식을 얻는 걸 편안하게 생각합니다.
그리고 5.2.2에서 내가 리더의 역할을 하게 된다면 어떤 것을 주의해야 할지, 어떻게 행동하는 것이 리더로서 적합한지 생각해볼 수 있었다. 자신의 자존심을 세우는 것이 아니라, 팀으로서의 자존심과 정체성을 중요시하는 리더가 될 수 있도록 노력해야겠다. 그리고 팀 리더로서 팀원들의 금전적 보상 등의 외적 동기와 의미와 목적을 명확히 느낄 수 있게 하는 내적 동기 둘 다 중요하게 생각해야 한다.
'1 - iOS' 카테고리의 다른 글
[iOS/Swift] CocoaPods에서 Swift Package Manager로 전환하기 (0) | 2022.09.14 |
---|---|
[iOS/AppStoreConnect] 애플 App store 심사 올리기, App Store Connect (0) | 2022.08.29 |
[SQLite] 테이블, 칼럼 정보 가져오기 (0) | 2022.08.17 |
[iOS/Swift] Amplitude를 이용한 사용자 행동 이벤트 로깅 (0) | 2022.08.12 |
[iOS/Swift] 에러 처리 방법, do-catch 구문, defer 구문 등 (0) | 2022.08.12 |