만베거
egg528
Good Developer Part1

좋은 개발자가 알아야하는 9가지 포인트들 Part 1 (한기용님 글)

1. 기본기 확실히 하기

(1) 테스트

  • 어떤 일이든 기본기가 중요
  • SW의 크기가 커질 수록 버그 발생 확률이 높아지기 때문에 테스트의 중요성은 더욱 더 중요해진다.
  • Gen AI를 활용해 생산성을 올리더라도 테스트를 통해 코드를 검증해보는 것은 필수
  • 결국 개발자에게 결과물을 검증/테스트하는 것인 필수이자 기본이다.

(2) 협업

  • 현란한 코드보다는 팀내 코딩 표준을 따라 팀원들이 읽기 쉬운 코드가 좋은 코드이다.
  • 향후 트래픽 걱정이 있는 부분이라면 주석을 남기는 것도 좋다.

(3) 각종 개발 툴

  • 소스코드 에디터 / 컨트롤 툴, 생산성 툴들도 잘 알아두면 도움이 된다.
  • 생산성 툴같은 경우 이제는 선택이 아닌 필수라고 생각하시는 것 같다.

2. 학습 능력 키우기

  • 한국 개발자들은 낮에는 업무 밤에는 기술 트렌드 공부를 하는 경우가 많다고 한다.
  • 하지만 밤 늦게까지 공부하는 이유가 단순히 불안감, 조바심이라면 건강하지 못하다고 말한다.
  • 낮에는 업무에 몰두하고 인정받고 성취하는 경험을 쌓고, 밤에는 필요와 호기심을 기반으로 공부를 해보자.
  • 또 단순히 책을 읽는 것보다는 나한테 잘 맞는 공부법을 고민해보는 것도 도움이 된다.
    • 스터디, 티칭, 영상 강의, 프로젝트 등등

3. 의사소통 잘 하기

  • 의사 소통 능력이란 기본적으로 질문을 잘 하고, 질문하기 쉬운 사람이 되고, 질문에 잘 대답하는 것!
  • 의사 소통 능력을 기르기 위한 5가지 방법
    • 경청하기: 질문을 잘 하고, 잘 대답하는 것은 경청하는 태도와 습관에서 나온다. 내가 신뢰하지 못하는 상대이더라도 상대를 이해하기 위해서 들으려 노력해야 한다. (호기심을 가질 것)
    • 질문 잘 하기: 노력의 영역. 동일한 질문을 반복하지 않는 선에서 어린아이처럼 순진하게 물어보고, 자신이 이해한대로 설명하면서 이해를 확인하는 형태가 좋다.
    • 상대에 따라 소통 내용의 기술적 수준을 달리하기: 누구에게 말하냐에 따라 단어 선택이나 기술 용어의 수준을 달리할 수 있어야 한다.
    • 글 쓰기: 글은 생각보다 분명하고 많은 사람에게 전달이 가능하다. 코딩을 하다 막힌다면 시스템 디자인을 글로 적어보는 것도 좋은 방법이다.
    • 롤 모델 찾기: 같은 회사에 의사소통 능력이 뛰어난 사람을 찾아서 따라해보는 것도 좋은 방법이다.

4. 문제 잘 정의하기

  • 문제 정의 능력이란 내가 맡은 업무를 제대로 파악하는 것이다.
    • 업무 우선순위의 이해, 성공 실패의 기준 혹은 지표의 이해
  • 문제를 정확히 정의해야 엉뚱한 방향으로 노력을 쏟을 일이 줄어든다.
  • 때문에 팔로워라면 업무의 의도를 파악하기 위해 많이 물어봐야 하고, 리더라면 명확하게 업무를 제공해야 한다.
  • 경력과 상관없이 항상 맡은 업무를 시작하기 전에 질문을 바탕으로 의사소통을 하고 문제정의하는 것 꼭 필요하다.

5. 태스크 완료 시간 추정 잘하기

  • 태스크 완료 시간 추정은 리소스 분배와 관련이 있고 이는 곧 회사의 생산성과도 직결된다.
  • 때문에 태스크 완료 시간 추정이 중요하단 건 너무도 당연한 일. 그렇다면 어떻게 해야 태스크 완료 시간 추정을 잘할 수 있을까?
    1. 내가 모르는 영역이 무엇인지 생각해본다.
      • 경험이 있는 사람에게 물어보면 가장 좋다.
      • 매번 큰 문제를 발생시키는 곳은 내가 인지하지 못하는 모르는 영역이니 인지하지 못하는 영역을 잘 고민해봐야 한다. (정말 어려운 일..)
    2. 내가 혹시라도 하고 있는 가정이 무엇인지 생각해본다.
      • 대체로 타 팀과의 협업 산출물에서 가정이 많이 발생하니 잘 확인해볼 것
  • 매번 완료 시간을 정확히 추정하는 건 불가능하다. 때문에 일정 변경이 생기면 관련자들에게 빠르게 업데이트해주는 것도 중요하다.
  • 내가 만약 팀장이라면 고민해볼 것들
    • 팀원들에게 일정 압박을 주고 있지는 않은지
    • 일정에 대한 내 의견을 이야기해주고 있는지
    • 업무 완료 시간을 단축하기 위해서 인원을 더 투입하면 된다고 생각하지는 않는지

Reference