[책] 더 나은 프로그래머 되는법 Part4. 일 끝내기 (공감x100)
아래 글은 <더 나은 프로그래머 되는법>을 읽고 요약한 내용이며 개인적인 생각이 담겨있습니다.
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
Ch31. 더 열심히보다는 더 현명하게
문제를 해결할 때는 하나의 도구나 한가지 방법에 지나치게 몰입하는건 언제나 위험하다.
목표를 달성하기에 더 쉽고 직접적인 방법이 있는데도 많은 시간을 낭비하기란 정말 쉬운일이다.
능숙한 프로그래머의 특징 중 하나는 기술적인 통찰력만이 아닌 문제를 풀고 전투를 선택하는 방법에 있다.
훌륭한 프로그래머는 일을 빠르게 끝낸다.
그저 현명하게 일할 뿐이다.
더 똑똑하기 때문이 아니다.
어떻게 하면 문제를 잘 해결할수 있는지 아는것이다.
현명하게 일하는 방법
- 직접 만들기보다는 이미 있는 코드를 사용하라. 더 중요한 일에 시간을 투자하라.
- 다른사람의 일로 만들라. 어떤 작업을 진행하는 방법에 대해 이미 알고 있는 사람이 있다면 직접 해결하려고 들지 마라.
- 해야하는 것만 하라. 완고한 모든것 테스트하기 방법은 적절하기 않다. 취약한것으로 예상되는 지점에 집중하라.
- 거칠더라고 빠르게 해결하라. 어떤것을 선택해야할지 결정할수 없을때는 최선책을 골라내기 위해 심사숙고하지 말라.
- 우선순위가 높은 일에 집중하라. 가장 중요한 일을 먼저 하라. 사소한것에 몰두하지 마라.
- 새로운 업무가 할당될때 지금 당장 필요한 일인지부터 확인하라. 굳이 필요하지 않은 상황에서 고급스러운것을 만들지말라.
- 한번에 하나씩 작업을 수행하라. 한번에 하나이상의 일에 집중하기 어렵다. 하나를 끝내고 다른것을 하라.
- 코드와 설계를 가능한 작고 간결하게 유지하라. 그렇지 않으면 유지보수만 늘어날 뿐이다. 작고 명확한 코드가 훨씬 고치기 쉽다.
- 어려운 일을 미뤄두지 말라. 고통을 줄이기위해 일을 미뤄두는데, 더 일찍 일을 시작하고 문제를 작을때 직면하는게 현명하다.
- 자동화하라. 한번이상 반복야하는 일이 있다면 자동화 스크립트를 만들어라.
- 오류를 더 빨리 발견하라. 빨리 그리고 자주 고객에게 제품을 보여주라. 잘못된 일을 수행하는데 시간낭비 하지 않을수 있다.
- 모호하지 않고 확실히 이해하기 위해 적절히 질문하는 방법을 배워라. 생산적인 회의를 해라.
- 지쳐 나가떨어지지 마라. 건전한 프로젝트는 지나친 야근을 요구하지 않는다.
- 항상 업무흐름을 가속화해줄 새로운 도구를 찾아라. 다만 도구를 찾는일에 노예가 되지는 마라.
열심히 일하지 말라는 것이 아니다.
하지만 열심히 하는것이 반드시 현명한것은 아니다.
정말 굉장히 유익하다. 주니어 개발자들에게 전부 하나하나 주옥같이 도움이 되는 일하는 방법이다.
얼마 안되지만 나름 주니어로써 직접 경험하면서 스스로 깨우쳤던 내용들이 모두 다 있다.
심지어 부끄러워지기까지할 정도..
개발자로써 커리어를 쌓기 시작할때 정말 진작 알았다면 좋았을 싶은 내용이다.
특히 나도 직접 경험하면서 너무나도 공감되는 다섯가지 부분에 강조 표시를 했다.
1.직접 해결하고 들지마라.
주니어로써 지난 몇년간을 돌아보면 새로운 것을 배우고 싶고 궁금하고 해보고 싶은게 투성이였다.
하지만 단지 해결보고 싶은거랑 해결 할수있는 것은 다르다. 회사는 냉정하고 업무는 현실이다.
차라리 나보다 더 잘 아는 사람이 해결한다면 괜히 자존심 상해하기 보단 현명하게 일하는 동료구나 라고 생각하자.
2.사소한 것에 몰두하지 마라.
디테일이 중요하다곤 하지만 주니어에겐 디테일은 그저 사치일뿐이다.
돌이켜보면 고작 그 사소한 것에 꽂혀서 여기에 힘을 빼다가 정작 중요한 일은 급하게 마무리하는 불상사가 많았다...
3.어려운일을 미뤄두지 마라.
어려운일이라고 생각해서 괜히 크게 느껴져서 미뤄두게 된다. 이건 요즘 나도 그렇다.(급반성)
생각보다 간단한 일이라고 생각하고 일단 어떻게서라도 한발을 내딛는게 중요한것 같다.
4.오류를 더 빨리 발견하라.
나만 그럴수도 있는데 괜히 혼날까봐 괜히 한소리 들을까봐 오류를 발견해도 흐린눈할 수 있다.
사실 알고 있었는데 누가 발견하면 이제서야 알게된거마냥 엇..! 하면서말이다.
하지만 매도 먼저 맞는게 낫다고 차라리 이실직고 하는게 낫다. 나비효과처럼 훨씬 큰 재앙을 불러일으키기 전에..
5.지쳐 나가떨어지지 마라.
강한 자가 오래 버티는게 아니라 오래 버티는 사람이 강한 것이다.
당연히 지칠때도 물론 있다. 하지만 그럼에도 계속 해나가는거다.
살기위해 비타민 먹고. 살기 위해 운동하고. 살기 위해 늘 배운다.
나는 늘 비효율적으로, 그저 '열심히'만 일했다.
덕분인건지...이제서야 현명하게 일하는 방법을 몸소 깨달았다.
나처럼 괜한 고생을 하지 않길 바라는 마음에서 미리 현명하게 일하는 방법을 알면 좋을것같다.
Ch32. 끝나야 끝나는 것
아직 다 안됐어요? 라는 이 간단한 질문에 대답하기 위해 필수사항은 바로 완료상태란 어떤 것인지 정의하는 것이다.
그리고 완료상태에 얼마나 가까운지를 현실적으로 파악하는것이다.
하지만 많은 프로그래머들이 이 부분에서 기대에 미치지 못한다.
그들은 그저 작업이 끝날때까지 프로그래밍을 계속할 뿐이다.
공감. 또 공감. 끝을 매듭을 마무리를 잘 지어야한다.
그래서 늘 목표를 정해하는것도 중요하다고 느낀다.
이번 릴리즈는 이번 배포는 어디까지 작업할 것인가.
그만둘떄를 결정하지 않으면 필요이상으로 작업하게 될 것이다. 필요이상으로 더 열심히 더 오래 일하게 될 것이다.
반대로 열심히 일하려 하지 않을 것이다. 모든것을 끝낼수 없다고 생각하기 때문이다.
완료상태가 무엇인지 정의하는것부터 첫번째 코딩작업을 시작하라.
대부분 이를 정의하는것은 개발자가 아니라 제품의 소유자, 기획자가 될 것이다.
그 이후에만 작업을 시작하라. 어디로 향하는지 확실히 알아야만 집중할수 있고 명확한 방향을 향해 작업할수 있다.
완료지점까지만 작업하라. 필요한것보다 더 많은 일을 하지 말라.
코드가 충분하면 그만 멈춰라. 완벽하지 않아도 된다.
Ch33. 교훈 얻기
자신을 감시하라. 자신이 누군가에게 의무감을 갖도록 하라.
다른 개발자들과 주기적으로 작업경과를 확인하라.
자신감으로 충분한 나머지 도움요청을 놓치는 일이 없도록 하라.
팀원들은 서로 도울수 있다. 혼자서 할수 없는 일들도 팀단위로 실현할 수 있다.