1일차
CH-1 - 워밍업 !
1. 팀 결성부터 친해지기 까지
- 나중에 어떤 동료와 함게 일하게 될 지 모른다..!
- 주변 사람들이 다 최고일 순 없다 !
- 유토피아 같은 개발 조직은 없다!!!!
- 함께자라자.! (김창준님 책을 읽어보자.)
2. 처음 해야할 일은? - 팀장뽑기
- 추천(Product Owner)
- Product의 방향성을 가장 잘 알고 있는 사람(아이디어의 주인)
- 누구나 자신의 아이디어를 구현할 때에는 매우 열정적이다.
- 익명투표
- 각자 주관에 따라 어울리는 사람을 뽑기. 개인적으로는?
- 의견 충돌이 있을 때 누가 가장 중재를 잘 해줄까?
- 기술적으로 뛰어난 편인가?
- 어떤 기술에 특히 편향적이지 않고 이상적으로 생각하는가?
- 말주변이 있는가?(어디가서 발표도 해야 하기 때문)
- 팀장 일을 하느라 코딩을 덜 하게 되어도 괜찮을까?
3. 팀장의 역할?
- 팀장은 손해가 될 수 있다.
- 의사결졍의 casting vote(후보들이 동률일때 선택하는 것)
- 중재, 멘탈관리, 일정관리, 상위조직장에게 지원 요청(예산 등)
- 윗사람 개념이 아니다.
4. 처음에 할 일은? > Mind allignment
- 팀원의 프로필은 알기 쉽지만 마인드를 알기는 어렵다.
- 내가 가장 재밌게 읽었던 글과 commnet를 공유하자.
- 되도록이면 엔지니어링, 교양/마음가짐 관련된 것
- 아니면 그냥 나만 읽기 아까운 것!
- 플랜비 님은?
- 소프트웨어 환멸감
- 충분히 최적화되지 않은 코드베이스가 쌓여나가는 것에 큰 거부감을 느낀다.
- 나는 어떻게 더 나은 프로그래머가 되었는가.
- 번아웃을 한번 겪고 나서 압박과 부담을 떨쳐내고 싶다는 생각을 했다. 일부러 일하지 않는 시간을 만들어서 뻘짓을 한다?
CH-2 - 프로젝트 이해하기
1. 프로젝트 이해가 제대로 안된다면?
- 개발노잼..!
- 소속감과 missionary가 없다.
- 이 product/ 내가 개발하고 있는 기능을 통해서 무엇을 해소할지 모르니 동기부여가 안됨
- 시키는 일은 하겠지만 재미도 없고, 적극적으로 나서서 문제를 해결하려는 생각이 안든다.
- 기획 상 챙기지 못한 부분을 함께 놓치게된다.
- 코로나19 백신 예약시스템을 개발하고 있다면?
- 10부제로 예약이 진행된다는 것을 모르는 개발자는 기획서에 그 내용이 빠져있어도 몰라..
- 기획자가 잘해야하는거 아니야!? > 개발조직은 상부상조다 !
- 뒤에서도 나오겠지만 개발자가 기획자를 많이 도와줘야 한다.
2. 프로젝트를 이해하려면 뭘해야 할까?
1 - 간단히 이해하기
- 프로젝트 이름
- 한국어명과 영문명
- 깃 레포이름은 어떻게 하는 것이 좋을까?
- 정리하자
- 프로젝트에 대해서 5문장/3문장/1문장으로 정리하자.
- 비슷한 서비스가 무엇이 있는지 조사하자
- 그런 서비스에서 배울점은 무엇이 있을까?
- 그럼 우리만의 차별점은?
- 가장 중요한 기능은?
- 기능마다 화면은 어떻게 생겼을지 스케치
- 어떤 사람들이 사용할까?
- 동료들과 비교해보자
- 기능을 각각 보면서
- 사용자의 어떤 행위에 API Call이 일어나야 할지
- 그 API의 스펙은 어떻게 만들어져 있어야 할지
- DB Table은 어떻게 디자인하는게 좋을지
- 코드에 대한 대략적인 설계도 머릿속으로 되면 좋다.
- 사용자가 어떻게 하면 버그가 생길 수 있을까?
- 파생되는 기능 예상해보기
- 예를들어 게시글을 추가하는 화면이 있다면?
- 게스글 목록을 조회하는 화면이 있겠군.
- CRUD에서 빠지는 것이 있는지 생각해보면 쉽다.
2- 깊게 이해하기
- 피드백하자
- 기획을 나중에 뒤집으면 비용이 많이 듦
- 기획자는 개발의 난이도, 보안, 데이터관리, 결과물의 성능까지 생각하기 어렵다
- 개발자가 나서서 문제가 될 부분을 미리 감지하는 것은 팀에 큰 도움이 된다.
- 구현이 어렵거나 오래 걸리는 기능
- 기능의 가성비 == 중요도는 높고 일정은 적게 걸리고
- 장애물이 있어 구현이 어렵거나, 특정 기능이 일정을 많이 늘리는 경우 논의가 필요함
- 특히 별로 중요하지 않은 기능이 일정을 많이 잡아먹는 것은 좋지 않다.
- 기획자는 간단하다고 생각해서, 오래 걸린다는 점을 모르고 있다면?
- 논의방법
- 기획유지 : 장애물을 해결해줄 수 있거나 일정이 늘어나는 것을 감수할 수 있는지
- 기획변경 : 다른 대안을 고려하거나 기능을 spec-out 할 수 있는지
- 기획자가 원하는 방향으로 진행할 수 있도록 충분히 고민해야 한다.
- 대립할 필요가 없음.