회고

함께 성장하기 - DevFest Busan 2023

베르_최성훈 2023. 12. 3. 15:40

 

Devfest Busan 2023 에서 발표한 내용을 바탕으로 작성된 글입니다.

 

우아한테크코스에서 함께 성장한 내용을 다루고 있습니다.

 

성장, 혼자 하기 힘들지 않나요?

 

혼자 개발했을 정말 막막했습니다. 내가 하고 있는게 맞는 건지.. 다음에 해야하는지 몰랐습니다.

그러나 우테코에서 함께 성장하면서 막막함을 떨쳐낼 있었습니다.

 

어떻게 함께 성장할 수 있었는지 경험을 소개해보겠습니다.

 

처음 함께 성장하기 키워드는 페어프로그래밍 입니다.

페어 프로그래밍

레벨 1, 레벨 2 미션의 모든 시작은 페어 프로그래밍이었습니다. 

랜덤으로 매칭된 페어와 3일정도 함께 프로그래밍합니다.

 

페어 프로그래밍이란?

- 두 명에서 짝을 이루어 개발한다.

- 드라이버, 네비게이터 역할을 10 정도 간격 번갈아가며 수행

- 노트북을 개만 사용하기로 하거나 기타 룰은 짝과 서로 협의

 

중요한 것은 드라이버, 네비게이터가 각각의 역할에 충실하는 것입니다.

 

비게이터는 개발 전략을 말로 설명합니다. 키보드를 뺏거나 코드를 말해선 안됩니다. 관찰자 입장으로 설계 버그 파악에 집중해야합니다. 드라이버는 네비게이터의 설명을 경청, 이해하려고 노력해야합니다. 네비게이터의 설명에 맞게 실제 코드를 작성하면 됩니다.

 

 

페어 프로그래밍의 성장 효과

처음 페어 프로그래밍을 접하면 잘하는 사람이 일방적으로 가르쳐주는거 아니냐 생각할 수도 있습니다.

 

그러나 페어 프로그래밍을 하면 코드 줄에도 이유가 필요하고 남에게 설명하려면 정말 제대로 알고 있어야합니다.

본인이 제대로 이해하고 코드를 작성했는지 확인할 있는 좋은 기회이고 실시간으로 코드 리뷰를 하면서 나은 방향을 찾을 있습니다.

또한, 굉장히 많은 소통을 하게 되고 이해시키거나 설득하는 과정에서 소프트스킬 향상시킬 있습니다.

 

페어 프로그래밍 할 때 중요한 점

필자의 경험상 중요한 점은 세 가지입니다.

 

1. 룰을 계속 의식하기

  페어 프로그래밍을 하다보면 혼자 개발할 보다 훨씬 힘듭니다.  계속 토론하면서 코드를 작성하기 때문이다. 그러다보면 처음 협의한 룰이 어겨지는 경우가 자주 발생한다. 답답해서 키보드를 뺏거나 20~30 동안 역할을 바꾸지 않는 경우 빈번하다. 그렇게 되면 페어 프로그래밍의 효과가 줄어들 있으므로 비효율 적이라면 차라리 페어와 협의하에 룰을 변경하는 것을 추천한다.

 

2. 존중하고 배려하는 말하기

  함께 개발하는 것은 결국 커뮤니케이션의 연속. 상대를 존중하고 배려하지 않는다면 이어나갈 없습니다. 어찌 보면 당연한 얘기일 수 있지만 운전을 가르치는 상황과 비슷하다고 생각하면 좋을 것 같습니다. 조수석에 탄 사람과 운전자가 대화하다가 감정적으로 변하는 경우를 많이 봤을 것입니다.

 

  특히 상대를 설득하거나 방향을 제시할 상대가 이해, 공감할 있는 근거가 필요하다. “나는 이렇게 짜왔고 그래서 이게 좋다. 이건 별로다.” 라는 보다는 방법이 다른 방법보다 이런 장점이 존재한다. 그래서 방법으로 하고싶다.” 말하기 방식을 추천합니다. 만약..상대를 설득하지 못하게되면 코드에는 책임도 있다는 것을 알았으면 좋겠습니다.

 

3. 번째, 피드백 주고받기

  함께 성장하는데 있어서 가장 중요한 것은 피드백이 아닌가 싶네요.

 

페어 프로그래밍이 끝나고 회고 시간을 갖길 바랍니다.

상대가 보완했으면 좋겠는 점 함께하면서 배우고 싶었던 장점 등을 얘기하면 좋습니다.

 

회고 시간을 갖기 전에 상대에게 좋은 피드백이란 무엇일까 혹은 내가 받고 싶은 피드백의 방향은 무엇일까 고민해보면 더 좋은 회고를 할 수 있겠죠.

 

데일리 미팅

 

 

다음 성장하기 키워드는 데일리 미팅입니다.

 

  말 그대로 매일 짧은 시간동안 회의를 진행하는 것입니다. 사람마다 다르겠지만 저는 아침부터 바로 개발하면 집중이 안되더라구요. 데일리 미팅이 도움이 됐습니다.

 

기본적으로 다음과 같은 활동을 합니다.

  • 어제 공부 작업 공유
  • 오늘의 계획 말하기
  • 프로젝트 변경 사항 전파
  • 기능을 개발에 다른 사람들의 조언 듣기
  • 같은 기능을 어떻게 개발할지 토의하기

 

뿐만 아니라 팀원들과 친해지는 시간도 가졌습니다. 

  • 오늘 일을 정리하면서 목표가 명확해짐
  • 에자일 방법론에 따라 개발할 자주 일어나는 변화에 sync 맞추기 좋음
  • 다 같이 스트레칭
  • 마피아 게임

일의 효율 뿐만 아니라 팀과 소통할 있는 데일리 미팅..하루를 알차게 시작할 수 있어 강력 추천드립니다.

다양한 발표

 

마지막 키워드는 다양한 발표입니다.

 

우테코에 가고 어떻게 학습하고 개발했는지 과정을 공유하는 것이 즐거웠습니다.

그러나 발표는 쉽지않았죠..

 

1. 블로그 발표 스터디

 그래서 학교 학생들과 함께 스터디 하나를 만들었습니다. 매주 블로그를 작성하고 해당 내용을 10 정도 발표하는데요. kotlin, Android, CS 등에 대한 주제로 진행했는데 벌써 20주차를 넘어갔네요.

 

 블로그를 꾸준히 작성할수 있게 해줌과 동시에 빠뜨리거나 잘못된 부분도 있으며 키워드도 얻어갈 있어 정말 많이 도움이 됩니다. 무엇보다 설명하는 능력이 향상됩니다.

 

다음은 스터디 링크입니다.

https://github.com/pknu-wap/android-blog-study

 

2. 컨퍼런스 참여

 

 다른 분들의 발표 강연을 보는 것도 중요하죠. 2023 한해에만 Google IO Extend Seoul, 국내 최대 안드로이드 컨퍼런스 드로이드 나이츠, 우아한형제들에의 우아콘에도 참석하여 많은 발표도 들었습니다. 그리고 이제 Devfest Busan 도 포함이네요.

 

3. 다양한 발표

 그래도 직접 발표하는 만큼 성장할 있는건 없겠죠. 여러 행태와 주제로 발표를 했습니다.

 

- 상태 패턴 라이브 코딩 (우테코)

 

 

- Room 테코톡 (우테코)

 

 

- LiveData to Flow 라이트닝 토크 (우테코)

 

 

- TDD 와 점진적 리팩터링, 함수형 프로그래밍 (부경대 선배특강)

 

- 객체지향과 테스트 (부경대 선배특강)

 

 

- 함께 성장하기 (DevFest Busan 2023)

 

 

발표를 하니 확실히 얻는게 많았습니다.

 

  발표자료를 준비하면서 공부한 지식이 오래 기억됩니다. 또한 그 지식이 정확한지 확인하는 절차를 거치게 되죠. 많은 사람들 앞에서 내 생각을 말할 수 있는 능력 또한 향상됩니다.

 

 

마무리하며

어느 때보다 바쁘고 알찬 2023년을 보냈습니다.

혼자 개발할 때는 개발을 그렇게 좋아했던 사람이 아닌데 함께 성장하면서 개발하는게 재밌어졌습니다.

 

프로그래머로서 개발, 학습, 성장한 과정을 꾸준히 공유하겠습니다.