영혼까지 끌어모아야 한다!

(사진은 내용과 별로 상관이 없습니다...)

34장. 사람의 힘

엉성한 작업자들과 오래 지내면 똑같이 엉성해진다.

어렸을 땐 왜 사람들이 학군을 쫓아서 비싼 동네로 이사가려 하고, 쓰러질 거 같은 은마아파트에 들어가는지 이해할 수 없었다. 바로 자녀에게 최고의 환경을 만들어주고 싶기 때문인데, 여기엔 특히 친구들이 중요하다. 주변에 공부를 하면 다 같이 하게 된다. 내가 일하고 있는 곳의 동료들이 나의 수준을 나타낸다. 좋지 않은 환경에 있다면 우선 달라지려 노력하고, 수준을 높여 더 좋은 환경으로 가야한다. 영혼까지 끌어모아야 한다. 즉, 갈아타기를 해야한다!

35장. 생각이 중요하다

지금까지의 경력을 통틀어 최선을 다해 일하도록 필자의 의욕을 북돋아주었던 유일하면서도 가장 중요한 요소는 의무감이었다.

더 나은 제품을 만들어야겠다는, 더 안정적으로 서비스를 만들어야겠다는, 더 유지보수하기 좋도록 만들어야겠다는 의무감과 사명감이 가장 큰 동기부여가 된다고 필자는 말하고 있다고 생각한다. 이런 생각은 주변에 퍼져나가고 동료들에게까지 확장되기 때문에 좋다. 경영진은 이런 것들을 억지로 체계로 만들려고 하기보단 스스로 이끌어낼 수 있는 환경이 되도록 하는 게 좋을 것 같다.

비판을 기꺼이 받아들여야 한다.

우리나라 사람들은 코드 리뷰하는 것에 대해 공격으로 받아들이는 경향이 있다. 실제로 공격이라 할지라도 공격으로 받아들이지 않아야 한다. 리뷰어가 실수나 공격하는 것은 논리적으로 설명하면 된다. 코드 리뷰의 본질은 코드와 제품의 품질을 높이는데 있지 서로 까내리려 하는 것이 아님을 잊지 말아야 한다. 더 나은 방향을 찾아가는 것이다. 예전 포스팅에도 썼던 말을 다시 인용한다.
Growth takes place outside of your comfort zone.

36장. 말하기!

소프트웨어 그 자체 즉 코드를 작성하는 행위야말로 의사소통의 한 형태이다.

개발자에게 가장 중요한 것은 첫번째도 코드, 두번째도 코드, 세번째도 코드라고 생각한다. 일을 할 때 코드로 시작해서 마무리할 때도 코드로 끝나야 한다. 작가들은 책을 쓸 때 단 한 번에 써내려 가는 게 아니라, 초안을 쓰고 편집자와 리뷰하면서 수십 수백 번 탈고하면서 써내려 간다. 작가들이 작품을 통해 메시지를 전달하려 노력하듯이, 개발자도 컴퓨터가 정확하고 안정적으로 실행할 수 있도록 코드를 작성해야 한다. 사람이 읽기 어려우면 컴퓨터도 읽기 어려워한다. 정확하게 작성해야 한다.

코드는 다른 사람들과의 대화이기도 하다.

업무를 하면 혼자 작성하는 코드는 없다. 동료들이 내가 작성한 코드를 읽고 수정하기도 하고, 나도 동료들이 작성한 코드를 읽고 수정하기도 한다. 제대로 작성하지 않은 코드는 불쾌하다. 즉, 코드를 제대로 작성하지 않는 것은 예의없고 무례한 행동이다.

적절한 사람들과 적절한 단어를 사용하도록 신경 쓰라.

개발자들이 자주 실수하는 것중에 하나가, 개발자 용어를 설명하지않고 기획자, 디자이너에게 이야기하는 것이다. 그들에게 프로세스와 스레드가 어쩌구 저쩌구 하면 알아들을 수 있는 사람들이 얼마나 될지 생각해봐야 한다.

효과적인 커뮤니케이션을 위해서는 집중해야 한다.

CPU는 멀티코어에 그것보다 많은 스레드를 가지고 있어 멀티태스킹이 가능하지만, 사람은 그렇지 않다. 한 번에 하나씩해야 한다. 일정이 너무 많더라도, 이런 환경을 본인이 구성해나갈 수 있어야 한다.

좋은 의사소통에 의해 좋은 코드가 만들어진다.

소프트웨어의 구조와 그것을 개발하는 팀의 구조는 서로 유사해진다는 콘웨이 법칙을 다시 한 번 상기해보자.

좋은 프로그래머를 특징짓는 기술은 좋은 의사소통이다.

결국 다 잘해야 한다. 오늘도 에너지 넘치게, 화이팅!

profile
집사없는 개발 고양이

0개의 댓글