"제품이나 서비스가 창출됨에 있어, 투입 대비 얼마만큼의 산출이 이루어졌는지를 나타내는 지표" - 생산성의 정의 -
생산성(Productivity) 개념은 경제학 용어입니다. 즉 생산의 여러 요소들인 토지, 자원, 노동력 등을 투입한 양으로 이루어진 생산의 산출량의 비율을 나타날 때 사용합니다. 즉 다시 말하면 주어진 자원으로 얼마나 많은 부가가치를 창출할 수 있는 측정법입니다. 대학생 시절 미얀마 봉사활동을 했을 때 무너진 낡은 집의 외벽을 보수하고 도색을 하는 활동을 하였습니다. 이때 10명의 봉사자에게 같은 양의 페인트를 주어졌지만 같은 자원으로 칠할 수 있는 벽의 넓이는 개인의 능력에 따라 다른 걸 확인할 수 있었습니다. 도장 기능사 자격증을 가지고 있는 봉사자가 적은 페인트 양으로 제일 많은 부분을 칠할 수 있었던 기억이 납니다. 이게 바로 생산성의 차이입니다.
개발자는 생산성이 매우 중요합니다. 고용주 입장에서는 같은 금액이라면 좀 더 많은 일을 정확하게 하는 프로그래머를 선호합니다. 특히 프로젝트에서는 모든 사람이 각자 맡은 분야를 동시에 끝내줘야 완료가 되지만 생산성이 부족한 개발자 한 사람으로 기간이 지연되기도 합니다.
개인에게도 이런 능력은 중요합니다. 같은 시간 학습을 해도 좀 더 빠르고 중요한 포인트를 위주로 캐치해 정리하여 새로운 언어를 빠르게 습득하는 성장의 측면과 회사에서 맡은 일을 더 많이 처리하여서 인정을 받는 사회적인 측면 모두 생산성은 능력을 평가받는 중요한 지표가 됩니다. 그러므로 개발자 라면 생선성 향상의 항상 주목해야 합니다. 그렇다면 이 중요한 기술을 어떻게 향상할 수 있을까요?
생산성 향상을 위한 방법
1. 강력한 개발도구(IDE)를 사용한다.
체코는 인구 1,000만 명의 아주 작은 국가이지만 중동부 유렵의 IT 강국입니다. 체코 프라하에는 인텔리제이(IntelliJ)를 만든 젯브레인즈(JetBrains) 본사가 있습니다. JAVA IDE 시장에서는 영원할 거 같았던 무료 프로그램 이클립스가 2017년 기점으로 유료 프로그램인 인텔리제이의 의해 1위 자리를 내어주는 사건이 일어납니다. 이유는 단 한 가지입니다. 돈을 지불할 만큼 강력한 생산성 보여줬기 때문입니다.
개발자들은 코딩을 더 쉽게 도와줄 프로그램을 사용합니다. 더 이상 노가다와 같던 코딩의 양을 혁식적으로 줄일 수 있기 때문입니다. 편하고 쉬워진 코딩 작성으로 더 빠르고 정확하게 오류 없이 개발 프로그램의 도움을 받는 것은 이제 선택이 아닌 필수가 되었습니다. 젯 브레인의 소프트웨어가 꼭 아니어도 좋습니다. 자신의 생산성을 높여줄 개발 도구를 찾는데 노력하시길 바랍니다.
2. 메모 프로그램을 활용
클라우드 기반의 메모를 돕는 소프트웨어가 많이 출시되었습니다. 대표적으로는 에버노트, 원노트, 노션이 현재 3대 필기 프로그램이라고 생각합니다. 코딩의 특징은 한 줄 한 줄 작성해나가면서 순차적으로 개발을 합니다. 하지만 코딩이 길어지면 지나온 이력들이 낯설어지고 기억나지 않아 다시 처음부터 코드를 해석하는 반복이 이루어집니다. 개발자 라면 이런 반복을 줄이기 위해서 코딩 과정을 기록하는 습관이 필요합니다. 개발을 하던 순간을 하나씩 기록하면 불필요한 반복적인 해석을 줄일 수 있습니다. 그리고 시간이 지난 후 재수정이 필요할 시점에는 내 기록을 참조해 분석 시간을 줄일 수 있게 됩니다. 특히 유지보수 업무가 주인 개발자는 이런 메모 방식이 큰 도움이 될 것입니다.
3. 좋은 컴퓨터
개발자 라면 좋은 컴퓨터를 구매하는 걸 추천합니다. 연주자에게는 비싸고 소리 좋은 악기가 꼭 필요하듯 개발자들에게도 비싸고 좋은 컴퓨터를 사용하는 건 꼭 필요한 방법이라고 생각합니다. 예를 들면 메모리가 작은 컴퓨터에서는 자동완성 기능이 작동하지 않습니다. 테스트를 위해 로컬 서버를 시작할 때 10분씩 기다리는 CPU를 가지고 있다면 생산성 능력을 아무리 키워봤자 도구로 인해 자연스럽게 생산력이 저하 되게 됩니다. 우리의 능력을 발휘하기 위해서는 최신형 컴퓨터를 구입하여 최고의 성능을 유지하는 걸 추천합니다.