좋은 개발자가 알아야하는 9가지 포인트들 - 4. 문제 정의 잘하기

  1. 기본기 확실히 하기

  2. 학습 능력 키우기

  3. 의사 소통 잘하기

  4. 문제 정의 잘하기

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

  6. 운영을 고려한 코드 작성하기

  7. 서비스 사고 대처 능력 키우기

  8. 결과를 내는데 집중하기

  9. 영향력 갖기 (코딩 멍키)


문제 정의 능력이란 무엇일까? 내가 맡은 업무를 제대로 파악하는 것을 말한다. 내 업무의 우선 순위를 이해하고 문맥을 파악하는 것과 업무의 완료를 의미하는 성공과 실패 기준 혹은 지표를 이해하는 것을 말한다. 나에게 업무를 준 사람의 의도를 파악하기 위한 의사소통이 필수이며 의사소통에 대해서는 지난 포스트에서 내 의견을 공유했다.


문제 정의를 잘못하면 어떻게 될까? 엉뚱한 방향으로 불필요한 노력을 쏟을 가능성이 아주 높아진다. 등산을 예로 들어보자. 어느 산으로 올라가는지 명확히 알아야 열심히 올라간 성과가 인정받게 된다. 열심히 하지 않았느냐고 항변하는 것은 별 의미가 없다. 그래서 어디로 가야할지 대충 알아서 판단하지 말고 (자기검열하지 말고) 많이 물어봐야한다.


반대로 이야기하면 리더에게는 결정의 "명확성"이 중요해진다. "알아서 잘해주세요"와 같은 결정은 완전한 위임이 아니라면 리더에 대한 신뢰를 스스로 깎아먹는 행동이다. 틀릴 가능성이 있더라도 결과에 대한 기대를 명확히 해야 팀원들이 덜 헤맨다. 같은 방향으로 움직였다면 결과적으로 틀린 방향이라도 회고하며 같이 배울 수 있는 포인트들이 분명히 있다.


"자기 검열"이 문제 정의에 가장 큰 걸림돌이 된다. 이 정도는 내가 알아서 해야지 물어보면 멍청해보이지는 않을지, 내 매니저가 바빠보이는데 물어보면 민폐는 아닐지 등등 여러가지 이유가 있겠지만 불편함을 견디며 등산 예처럼 방향과 목적지를 먼저 확인하기 위해 같이 대화해봐야 그 다음에 열심히 하는 것이 의미가 있다.


그런데 "자기 검열"은 주니어만 하는 것이 아니다. 경력을 충분히 쌓은 시니어들도 때로는 본인에 대한 기대라는 중압감에 물어보면 일을 못하는 사람이라 느껴지지 않을까 싶어 물어보지 못하고 그럼으로써 문제 정의를 제대로 못하는 경우들을 보았다. 아무리 경력이 많아도 자기가 맡은 업무를 제대로 파악하려 노력한 다음에 일을 시작하는 것은 꼭 필요하다. 너무 자신감이 넘치는 경우에도 동일한 실수를 하기 쉽다. 예를 들어 대기업에서 하던 업무를 작은 스타트업에 조인해서 하는 경우 작은 회사라는 이유만으로 깔보며 이 정도는 우습지라고 생각하며 문제정의를 제대로 안하는 경우 실패할 가능성이 아주 높다. 모든 환경은 그 환경 나름대로의 차이가 있는 것이기에 한 환경에서의 성공 경험이 다른 환경에서의 성공을 보장하지 않는다.


내 경력과 상관없이 항상 맡은 업무를 시작하기 전에 질문을 바탕으로 의사소통을 하고 문제정의하는 것 꼭 필요하다. 이는 타고나는 재능이라기 보다는 실수와 연습을 통해 더 잘하게 되는 기술이란 점도 잊지 말자. 이는 레벨이 올라갈수록 더 중요하다.

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 4월 21일 오후 9:39

 • 

저장 48조회 5,195

댓글 2