Skip to content

Commit

Permalink
[이은학] 13장,14장 : 배움의 문화, 기술적 변화의 실행 (#47)
Browse files Browse the repository at this point in the history
* 13장 이은학

* 14장 이은학
  • Loading branch information
2unhi authored Dec 27, 2024
1 parent 78d742e commit dea29f2
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 0 deletions.
23 changes: 23 additions & 0 deletions 13장/이은학.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
## 배움의 문화

### ✍🏻 **중요하다고 생각한 부분 정리(+나의 생각)**

"맞는지 틀린지도 모른 채 맹목적으로 테스트를 끼워 맞추는 개발을 시작한지 몇 달 후 70%의 테스트 커버리지에 도달했다. 몇 주가 지나고 고객사는 기뻐하며 계약을 종료했다."

> 목표한 수치에는 도달했지만 코드의 품질과 효율성이 원래 의도한 것인지 아리송한 상황도 많았고, 단순히 그냥 테스트만 작성해야한다는 생각으로만 진행을 한 경우이다. 기존의 클래스와 메서드들이 전체적인 설계 관점에서 올바른지도 전혀 알 수 없었기 때문에 아쉬운 결과로 이어진 것 같다.
관리자들은 개발자들에게 무엇을 언제 어떻게 하라고 일일이 명령할 것이 아니라 개발자들에게 권한을 위임하고 스스로 배움의 문화를 만들어갈 수 있도록 북돋워야 한다.

> 위에서 목표한 수치를 달성하기 위해 무작정 강압적인 환경에서 개발을 하는 것보다 개발자들이 스스로 성장하기 위해 자유로운 분위기가 형성되어야 할 것이다. 즉, 배움의 문화를 형성하고 이를 통해 회사도 혁신적이고 기민해질 것이다.
> 책에서는 **북 클럽 가입하기, 테크 런치 진행하기, 그룹 토론회에 참여하기, 업무 교환하기, 그룹 코드 리뷰하기, 코딩 실습하기, 사용할 기술은 가능한 자유롭게 선택하기, 내부 학습 모임을 만들기, 회사에서의 펫 프로젝트 시간을 허용하기, 외부 기술 커뮤니티와 교류하기**를 제안하고 있다.
배움의 문화를 형성하는 여러가지 방법 중 '그룹 코드 리뷰하기'에 대해 더 알아보고자 했다. 특정 코드 부분이 개선의 여지가 많은지 아니면 모법사례로 공표할 만큼 훌륭한지를 놓고서 동료들 간에 논쟁을 하는 것이다.

- 주석은 주관적, 개인적으로 표현되어서는 안 된다.
- 누가 코드를 작성하느냐는 중요하지 않다.
- 그룹 코드 리뷰 시간에 커밋 히스토리를 뒤지지 않는다. 비난할 사람을 찾기 위해 과거를 파헤치지 말고 미래를 변화시키는 데 집중한다.
- 주석은 반드시 객관적이고 생산적이어야 한다. 왜 그것이 엉망인지가 아니라 어떻게 코드를 개선할지를 집중해야 한다.
- 퍼실리테이터의 도움이 필요할 수도 있다. 퍼실리테이터의 역할은 모두에게 발언권을 주고 누군가를 비난하는 상황이 생기지 않도록 하는 것이다.
- 큰 진전을 이룰 것이라 기대하지 않는다. 이슈 한 가지에 대해서 너무 오랫동안 이야기되더라도 개발자들이 원한다면 그냥 그렇게 한다.

관리자로부터의 지원이 없더라도 개발자들 스스로 서로 배우고 공유하는 배움의 환경과 문화를 쉽게 만들 수 있다. 장소가 없다면 가까운 카페를 찾아가고, 시간이 없다면 점심 시간이나 업무 전 시간을 이용하자. 열정적인 개발자들에게 좋은 환경을 제공하기만 하면 된다. 그러면 그들 스스로 무엇을 배우고 공유할지 여러 가지 방법을 찾을 것이다.
15 changes: 15 additions & 0 deletions 14장/이은학.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
## 기술적 변화의 실행

### ✍🏻 **중요하다고 생각한 부분 정리(+나의 생각)**

당신을 둘러싼 것들을 바꾸고 싶다면? 동료 개발자, 관리자, 기술 리더와 언성이 높아지는 논쟁을 두려워해서는 안 된다. 당신이 생각하는 내용이 어떤 것이든 말할 수 있는 용기가 있어야 한다. 정직함과 투명함은 소프트웨어 장인이라면 반드시 가져야 할 핵심 가치다. 또한, 자기가 하는 말이 무엇인지 스스로도 제대로 모르면서 다른 사람을 설득할 수는 없다.

> 마지막 말에 많이 공감한다. 우리가 발표를 준비할 때 자료조사를 하고 스토리를 만들고 대본 연습을 반복하여 완벽하게 해내는 것처럼 누군가를 설득하고 무언가를 바꾸기 위해서는 나 먼저 부족함 없이 이해하고 습득하는 것이 중요하다. 물론 모든 내용을 아주 정확하게 이해할 수는 없을 수 있지만 이 과정은 개인 성장에도 큰 도움이 될 것이다.
큰 충돌을 피할 수 있는 가장 쉬운 방법은 점진적인 변화를 제안하는 것이다. 오늘 당장부터 새로운 제안에 맞춘 설계를 모두가 따라야만 한다고 이야기하는 대신, 다음 스프린트부터 당신과 다른 개발자들이 직접 스토리를 골라 새로운 설계를 시도해보자고 할 수 있다. 그 스토리가 끝나면 모두에게 시연을 하고 팀 차원에서 새로운 설계를 수용할지 결정하도록 할 수 있다.

> 모든 팀원들의 방향성을 맞출 수 없겠지만, 의사결정 과정에 사람들이 참여할 수 있게 하는 것이 중요한 것 같다. 동등하게 피드백할 수 있는 과정이 항상 필요하다! 또한, 해당 방식에 대해 주기적으로 피드백을 하고 스크럼을 통해 공유하며 협조적인 분위기를 만들어 내면 아주 좋은 협업 과정이 될 것이다.
소프트웨어 장인은 사람들이 듣고 싶어 하는 말이 아니라 진심을 말하며 자신의 행동에 책임을 지고 프로젝트를 위해 최선이라면 싸우기를 주저하지 않는다.

> 개발자는 단순히 예스맨이 아니라, 자신의 의견과 생각을 분명히 전달하는 자세를 가져야 할 것이다. 그리고 결과를 만들어내는 모든 과정에서의 행동에 대해 책임을 가지고 기술적 능력뿐만 아니라, 직업적 윤리와 진정성을 잃지 않는 태도도 항상 가져야 할 것이다.

0 comments on commit dea29f2

Please sign in to comment.