코딩을 잘한다는 것

by 박동기

코딩을 하다가 막히면 머리가 무거워지고 한 발짝도 나가지를 못합니다. 코딩을 잘하려면 정체된 것이 없이 잘 흘러가 막힘없이 모든 일들을 치고 나가야 합니다. 집중력으로 막힌 물꼬를 터야 산더미같이 일이 쌓이지 않고 미친 듯이 돌파해 나갈 수 있습니다. 막힌 물꼬를 트는 방법은 집중력밖에 없고 집중력으로 막힌 것을 돌파해야 합니다.


잠시 주위 사람들에게 말을 걸지 말아야 하고 오직 코드에만 집중을 해야 합니다. 생각의 방에 문을 닫고 코딩 세계로 들어가야 합니다. 의외로 쉽게 풀릴 수도 있지만 쉽게 풀리지 않으면 계속 집중해서 문제들을 파헤쳐야 합니다. 파헤치다 보면 작은 물줄기가 흘러 실마리가 잡힐 때가 있는데 이때 더 밀어붙여서 완벽하게 물꼬를 터 버려야 합니다. 문제 해결 실마리가 어느 정도 풀리면 커피도 마시고 본인 스스로를 토닥거리며 위로를 해줍니다. 하나 문제가 해결이 되면 밀렸던 다른 일들은 일사천리로 물 흐르듯이 순식간에 처리가 됩니다. 물이 흐르는 것과 같은 업무의 처리 능력이 될 때 보람도 느끼고 일 잘하는 사람으로 평가를 받습니다.


코딩을 잘하려면 업무 시간에 일을 빨리 처리할 수 있는 방법들을 강구해야 합니다. 일 잘하는 방법은 무엇일까? 막힌 부분을 잘 돌파해 나가는 돌파력입니다. 자신의 고민으로 해결이 되지 않을 때는 주위의 도움을 구해서 미처 생각하지 못한 것들을 나누다 보면 쉽게 문제 해결이 될 수도 있습니다. 나이 어린 직원에게 도움을 구하는 것은 창피한 것이 아닙니다. 문제만 해결이 될 수 있다면 물불을 가리지 않습니다. 회사 품질을 높이고 시간을 단축할 수 있다면 자존심을 버려야 합니다. 해결된 문제는 공유를 해서 조직 수준을 한 단계 높여줘야 합니다. 품질의 사소한 차이가 시장에서의 경쟁에서 승리할 수 있습니다.


코딩을 잘한다는 것은 품질과 타이밍의 두 마리 토끼를 모두 잡는 것입니다. 지금 우리에게 필요한 것은 품질뿐만 아니라 사용자에게 얼마나 빨리 배포하는 타이밍도 중요합니다. 품질과 타이밍 사이에 적당한 균형이 이루어져야 시장에서 살아남을 수가 있습니다. 모든 제품을 만들 때는 품질을 최우선 하는 것이 맞습니다. 하지만 품질만 너무 강조하다 보면 시장이 요구하는 시점의 타이밍을 맞추지 못하는 경우가 많습니다. 어떤 기능을 시장에서 요구했을 때 얼마나 빨리 처리해 주는 것이 그 제품 성공과 관련이 있습니다. 사용자가 긴급하게 요구할 때에는 내부 프로세스를 따진다든지 기존에는 이렇게 해왔는데 왜 그러냐는 지 이런 식으로 말을 하면 안 됩니다.


코로나 엄중한 상황 같은 경우에 환자가 속출하는 상황에서 어떤 기능을 요구할 때는 기능을 바로 적용을 해줘야 합니다. PCR 이나 자가 진단 키트는 널리고 널려서 꼭 자기 것만을 고집하지는 않습니다. 사용자가 원하는 시간에 맞춰서 제품을 내보내야 합니다. 사용자가 의리가 있기에 우리 제품을 끝까지 고집한다는 교만은 버려야 합니다. 시장 사용자들이 의리를 중시하는 조직폭력배나 건달은 아니어서 필요한 것만 삽니다.

품질과 타이밍의 중간을 선택하려면 시장에서 처한 상황을 제품의 목적에 맞게 해석하고 판단해야 합니다. 품질과 타이밍에서 중간을 찾는 균형점은 제품에 대한 판매량입니다. 판매량이 많은 경우에는 타이밍을 제대로 맞춰줘야 합니다. 프로그램이 완료가 되어 품질이 어느 정도 안정화가 되었다면 타이밍에 맞게 배포를 하는 것이 맞습니다. 심각한 버그가 발견되지 않았다면 시장의 요구가 급박한 경우에는 바로 배포해 주는 것이 좋습니다. 반드시 심각한 버그가 없다는 조건입니다. 심각한 버그가 발견이 되면 그동안 한일들이 물거품이 되고 제품의 신뢰는 추락합니다. 추가 요청하는 기능들도 사용자가 요구하는 기능이 프로그램 전반에 영향을 주지 않고 사용자의 만족도가 높다라면 즉시 반영을 해줘야 합니다. 반면에, 수정을 했을 때 프로그램 전반에 영향을 주고 사용자의 만족도가 높지 않다면 기능 적용을 조심스럽게 하는 것이 좋습니다.


개발자가 코딩을 잘한다는 것은 품질과 타이밍의 두 가지 모두를 잘한다는 것입니다. 세계 1차, 2차 대전만 전쟁이 아니라 내 제품과 다른 나라 동일 제품이 싸우는 것도 총성 없는 전쟁입니다. 탱크와 총만 없을 뿐이지 전쟁과 마찬가지입니다. 전쟁에 나가는 사람에게 품질이 형편없는 제품을 갖고 싸우라고 하면 초토화될 것입니다. 전쟁터에 군수물자를 제때에 공급해 주지 않으면 전쟁터에서 패배를 할 것입니다. 품질과 타이밍을 위해서 서로 협력해서 사활을 걸어야 합니다. 우리의 경쟁 상대는 옆의 동료가 아니라 전쟁터에서 싸우고 있는 경쟁사입니다. 피아 식별을 정확히 하고 부서 간에 협력을 해서 품질을 높이고 제때에 맞게 제품을 시장에 내놓아야 합니다.


개발자는 품질과 타이밍을 맞추기 위해 생산적으로 일할지 항상 생각을 해야 합니다.



keyword
이전 23화시니어노마드