카테고리 없음

초보 개발자 이것만 안해도 평균 이상 간다 ( 흔히 하는 실수)

개발자열넷 2020. 6. 17. 00:39

https://youtu.be/NHuxGa8dL1s

출처 : 유튜브 채널 삼평동연구소

1. 너무 물어봄 : 뭘 해도 물어보기

2. 너무 안 물어봄 : 혼자 어떻게든 하려고 하기

3. 이해하기도 전에 대답하기 : 지적에 대해서 두번 생각하지 않고 대답하기

4. 이해한 척하기 : 몰라도 일단 적당히 넘어가기

5. 해보지도 않고 결론 내기 : 머리로만 코딩하고 손으로는 안하기. 해보지도 않고 뇌피셜 남발하기.

6. 전체를 보지 않기 : 자신이 담당하는 부분만 어찌저찌 처리하고 넘어가기 (코드의 전체적인 의도를 읽기)

7. 테스트를 안한다 : 자신의 코드에서 어디를 테스트하면 될지를 모르고 흘린다

8. 하나씩 흘린다 : 뭐 하나씩을 꼭 빼먹는다

9. 일정 지연 : 설계 코딩까지만 생각하고 리뷰 및 디버깅 수정까지 생각을 안해서 일정이 늦어진다

※일정이 급할 때의 팁 : 수정 범위를 최소화하자. 틀렸을때 대응책을 미리 마련해둔다.

10. 진행 상황을 공유하지 않는다.

 

※협업 스킬은 본인이 능동적으로 하려고 하지 않으면 늘지 않는다.

결국 팀플레이어로서 초보가 부족한 점, 같이 일하기 즐거운 개발자가 되는 방법이네요. 정말 동의합니다.

 

내용을 지나치게 세세하게 정리하는 것은 저작권 침해니까 제 나름의 썰을 덧붙일게요.

일단 저 같은 경우에는 과제를 부여받고, 계획하고, 실행하거나 상담하고, 피드백을 받고, 대책을 마련해서 릴리스를 하는 식으로 일을 맡아가고 있습니다. 이 플로에서 스스로 주의하는 점과 부족한 점을 풀어써볼게요.

 

1. 과제 부여

일단 과제를 부여받으면, 그게 뭘 하자는건지 기획자나 상사한테 제가 정리한 사항을 되물어봐요. 제가 이해한게 이게 맞냐고. 특히 일본 회사에서 일하니까 커뮤니케이션 미숙이 반드시 존재할거거든요. 거기서 지적 받거나 제가 놓친 점이 있다면 어딘가에 존나 적어놓습니다. 이 단계에서 언제까지 하면 되느냐, 같은 마감 기한도 물어봅니다.

약점과 부족함 : 이번에 큰 코 다친 적이 있는데, 기획과 다른 팀의 설명을 믿었을 때 큰 코 다쳤어요. 단순히 메시지 수신만 구현하면 된다고 업무를 받았더니. 알고보니 송신 쪽 서버부터 완전히 이해하고 재구축한 뒤에, 수신을 통한 데이터 갱신 및 유틸리티도 다시 짜고, 그리고 그로 인한 화면 구성도 다 제가 디버깅하고. 처음부터 다시 설계해야 하는 화면도 있었고. 이런 예상 외로 업무가 거대해지는 순간을 보면서, 업무의 명확화 세분화가 얼마나 중요한지 깨달았습니다. 하지만 이번 사안이 이 정도로 거대해지고 지연되는 것을 제 역량으로 막을 수 있었을까? 하면 사실 그런건 아니었을거라 생각해요. 자신이 없습니다.

 

2. 계획

보통의 플로우 : 제가 생각하는 방식이 금방 될 것 같으면 일단 소스를 써보면서 해봐요. 그건 계획을 굳이 함께 할 필요가 없으니까. 하지만 너무 규모가 크다 싶으면 일단 머리 속에서 나눠봅니다. 그리고 관련 파일을 이것저것 열람하고 읽어보면서 과연 그렇게 될 지 살핍니다. 시간이 길게 끌릴 것 같고 마감 기한 안에 될지 안될지 알 수 없다면 상사에게 먼저 이런 식으로 이렇게 하면 될 것 같은데 이만큼 시간이 걸리겠다 싶다 라고 먼저 통보를 합니다. 그럼 상사가 저의 멍청함을 지적해주거나 저의 이유를 납득해주거나 둘 중 하나겠죠... 이 단계는 일단 구현까지만 하는 거 같구요

약점 : 역시 소스를 완전히 이해하지 못한 것이 약점이라고 생각해요. 그렇기 때문에 계획을 지나치게 어렵게 짜거나 지나치게 단순하고 얕게 짜고. 그래서 계획이 틀어지는 경우가 잦아요.

 

3. 실행 계획을 실행합니다.

보통의 플로우 : 실행하고, 하다가 안되면! 이 부분이 문제겠죠. 하다가 안되면. 그러면 제가 왜 안되는지에 대해서 정리합니다. 그리고 정리하다가 방법을 생각해내면 그걸 시도하고요. 그래도 결국 안되면,

v 지금 안되는 부분이 이게 있고

v 이렇게 하면 될 것 같아서 이런 식으로 대응하고 있는데 안된다

v 내가 모르거나 못하는게 이 부분 같다. (+근데 뭘 검색하거나 뭘 알아야 할지 모르겠다)

라고 간략하게 정리한 것을 상사에게 상담이랍시고 토스합니다. 그럼... 그럼 상사가 저의 멍청함을 지적해주거나 저의 이유를 납득해주거나 둘 중 하나겠죠... 그리고 피드백이 일어납니다. 애당초 기획이 잘못되서 구현이 어렵다고 하면 무엇이 필요한가 파악해서 기획에 회의를 요청하거나 제가 코딩력이 부족해서 그런거라면 제가 배워야 할 부분이나 모르는 부분을 지적 받고 고치게 되겠죠.

여기서 테스트도 포함되네요. 전 테스트 과정에서도 이거 이거 이거를 하면 될 것 같아서 했다.

약점 : 사실 전 제가 만든 소스에 대해서는 테스트를 곧잘 하는데, 항상 남의 소스, 레가시 코드에 대해 수정한 이후의 테스트가 소홀해요. 일단 정상 작동(기획 상의 구현 상태)을 파악하고, 그 정상 작동이 되는가를 확인하는데 레거시 코드는 항상 예상 밖의 영향이 너무 잦고 많더라구요. 그래서 소스를 고립시키는 것을 계속 습관처럼 하는데도, 결국 제가 만든 소스가 아닌 오래된 소스의 유지보수를 해야 하는 순간이 오고 그때마다 그르치는 무엇이 생겨요. 특히 UTF-8이나 SJIS-win에 EUC-JP까지 복합적으로 사용하는 현재 회사의 스파게티는... 심지어 Procedure Oriented라서 천줄 소스가 한데 얽혀있고. 너무 범위가 넓은데... 그래서 그 부분에 정신적 피로도로 테스트가 소홀할 때 에러가 자주 터지는게 문제입니다... 제가 부족한 부분은 이거 같아요 난 이제 지쳤어요, 테스트귀차니즘. 타인의 소스를 완전히 파악하는 끈기가 있었더라면 어떨까 싶은... 반성을 하게 됩니다.

 

4. 릴리스 릴리스를 합니다.

하기 전에,

릴리스하다가 뭐 잘못되면 얼마나 뭐가 잘못될지 리스크 평가를 하고

문제가 발생했을때 바로 되돌리거나 바로 대응할 수 있는 방법은 뭘지 준비해두고 릴리스합니다 이게 중요하다고 생각해요. 예상 밖의 데미지를 막아내는 것.

 

항상 중요하다고 느끼는 건 내가 무슨 멍청한 짓을 해도 상사가 바로 눈치채고 막아줄만큼 정보를 진작 제공하고

하지만 내 멍청한 짓은 결국 내가 알아서 해결해야 한다는 것을 유념해둬야 한다는 것 같습니다

 

그리고 덧붙여. 팀플레이에 관한 얘기다보니까.

뒷담화.

제가 회사에서 같이 일하기 싫어하는 사람들의 행동이 몇가지 있는데요.

 

1. 업무의 대화에 있어 맥락이 없는 사람

무언가를 질문하거나 지시할 때, 어떤 기획이나 어떤 작업인지 얘기하지 않고(전후 맥락을 제공하지 않고) 다짜고짜 묻는 사람. 그러면 제가 무얼 대답해도 반드시 틀리게 되거든요. 제 대답이 기획 의도와 다를 것이거나, 제 대답이 결국에는 불필요한 작업을 더하거나.

뭘 하려고 왜 묻는지 왜 시키는지 알려주면서 질문이나 지시를 하면 제가 심지어 몰라도 모르는 것을 바로 답할 수 있는데. "그건 왜요?"라고 제가 반문하게 만드는 식의 대화를 자주 하는 사람들이 너무 힘들더라구요.

심지어 그냥 흥미 위주로 궁금한 것도, 어떤 맥락에서 궁금했는지 설명을 해주면 좀 더 생산적이고 즐거운 대화가 가능한데, 다짜고짜 물으면 물어본 본인만 흥미롭거든요.

 

2. 다른 사람이 나중에 소스 수정할 때를 염두해두지 않고 만드는 사람

완전 생뚱맞은 흐름인데 이유를 적은 코멘트가 없거나, 본인만 알아볼 수 있는 다중 if로 묶어 처리하거나. 변수명에 일본어 발음을 적거나. 아니면 내가 만든 함수 무시하고 같은 역할 하는 다른 함수 만들거나. 내가 쓴 소스에서 명시한 코멘트 안 읽고 수정해서 에러 터트리는 사람들. 아니면 모듈화 잘해놓은 소스에 굳이 이상한 의존 관계 만들어놓는 사람들.

사실 이건... 소스에서 인성이 보이는 좋은 예 같습니다.

 

3. 여럿에게 물어봤을때 모르면서도 대답을 하는 사람

요즘 재택근무를 하면서 느끼게 된 점이에요. 전 이것도 되게 싫어하는데요, 소스코드에 대해서 물어봤는데 잘 알지도 않고 소스를 읽어보지도 않고, 혹은 담당자의 진행 상황을 모르면서 대신 대답해주는 사람이 있어요.

그럼 일본 사회 특성 상 저사람이 가르쳐주겠지, 하고 다른 팀원들은 침묵하거나 자기 일을 하더라구요.

그러면 재차 같은 질문을 같은 채팅창에 물어보기도 번거롭고 이상해지고. 그럼 아, 이렇게 하면 되겠네요, 하고 대답하면 아뇨 거기까진 모르는데요, 하는 이상한 선문답이 진행되더라구요.

곤란한 커뮤니케이션 봉착 상태인데... 해결법을 알 수가 없습니다...

 

불만을 정리하자니... 역시 대화를 할 때 상대방의 의도를 파악하고 거기에 맞는 대답을 하고, 대답을 할 때는 상대가 내 의도를 파악하게 하는 것만으로도 훨씬 일이 원만하고 수월해진다는 생각이 듭니다..

저 자신부터 조심해야겠죠.

 

여기 다른 분들은 곧 일본 이 땅을 뜰 것 같은데

그 남은 시간 동안의 커뮤니케이션은 원활하게 진행되길, 그리고 동시에 한국에서의 커뮤니케이션은 훨씬 즐겁길 기도하겠습니다.

 

이만 빠잉