- Published on
11월 4주 있었던 일 정리
- Authors
- Name
- 이건창
어떤 업무 방식이 효율적일까
리소스 관리 어드민 기능을 제공하기 위해 UI와 비즈니스 로직을 분리해서 관리하는 게 옳은 선택인지 궁금증이 생겼어. 통상적인 방법은 한 명이 모든 개발을 마치고 직무에 맞게 업무를 분할하게 돼.
그런데 각자의 직무에 맞게 관리하면 좋지만 가치 창출 기회를 제한 하는 건 분업화 될 업무
라고 생각해.
모든 직군은 현재 맡은 업무와 관계 없이 자신의 직무가 포함된 업무를 떠앉게 되면 팀의 행동을 제한해 새로운 가치 창출 기회를 앗아가.
늘어나는 제품과 많아지는 관리 포인트는 업무 행위를 제한하는 요소임이 분명해. 기존 성과를 유지하며 새로운 가치를 창출할 수 있게 어드민 기능을 어떻게 관리 해야 할까? 같은 상황에 처한 사람들은 어떻게 대처 하는지 두 가지 관점에서 살펴보려 해.
- 전통적인 기업에서 새로운 가치를 창출하는 기업들은 어떻게 행동했는가
- 업무가 쌓이는 현대 사회인은 어떻게 행동하는가
전통적인 기업에서의 행동
개발 방법론 들을 봤지만 대부분 개발 방향을 알려주지 가진 자산들을 어떻게 효율적으로 관리하는지 보여주진 않았어. 그래서 전통적인 기업에서 가졌던 자산을 관리함과 동시에 새로운 가치를 창출 할 수 있었는지 궁금했어.
얻은 결론은 도요타는 작업자의 인식 개선을 통해 진행 과정의 낭비를 최소화하려고 노력한다는 점이었지. 다음은 애자일 & 스크럼 프로젝트 관리 책에서 필요한 일부를 발췌했어.
1990년대 초 MIT 교수 워맥은 일본의 제조 경쟁력을 분석하면서 도요타의 생산 방식을 일체의 낭비를 허용하지 않는 군살 없는 린 시스템(lean system)이라고 일컬었다. 도요타는 장비의 가동률을 무조건 늘리는 데 초점을 맞추기보다는 장비와 인력을 효율적으로 활용하면서 제품의 리드 타임(lead time)을 줄였다.
생각보다 생소한 단어가 많아서 단어들이 어떤 의미를 내포하는지 정리했어.
리드 타임(lead time)은 상품의 주문일시와 인도일시 사이에 경과된 시간을 말한다.
린 사고방식의 핵심은 낭비를 줄이는 것이다. 린 스타트업 프로세스는 실제 고객과 접촉하는 빈도를 높여서 낭비를 줄인다. 이를 통해 시장에 대한 잘못된 가정을 최대한 빨리 검증하고 회피한다. 시장에 대한 가정들을 검증하기 위한 작업들을 줄이고, 시장 선도력을 가지는 비즈니스를 찾는데 걸리는 시간을 줄인다.
소프트웨어 개발 분야에도 제조업의 대량 생산 방식은 분석, 설계, 구현, 테스트 과정마다 인력을 집중해서 투입 후 빠져나오는 형태를 추구했어. 이런 방식은 제조업처럼 작업의 효율성을 높이는 방식이지만 고객에게 전달하는 리드 타임이 길어질 수 밖에 없어. 또한 대규모 개발 프로젝트에서 수행되는 많은 표준화된 절차와 규칙은 개발자의 창의성을 저해하는 요인으로 적용하게 돼.
리드 타임을 최소화하기 위해서 책에서 제시한 방법 중 일부를 정리했어.
- 지속적인 가치 흐름을 확인하고 낭비를 제거한다.
- 풀 시스템을 활용해 과잉 생산을 피한다.
- 작업 부담을 줄이고 작업 오더의 불균일성을 제거한다.
- 품질과 문제를 해결하는 스톱 문화를 구축한다.
- 어떤 문제도 숨길 수 없도록 시각적 관리 기법을 사용하고 직접 현장을 확인한다.
- 개발팀은 기능 혼합팀으로 구성해 커뮤니케이션 과정을 단축시킨다.
6 가지 방법을 수행하기 위해 필요한 준비는 모든 이해관계자가 제품을 동일하게 바라보는 일
같아. 어떤 과정이 낭비인지 파악해야 지속적인 개선이 가능해보여.
여기까지는 책의 내용이었고 이제 책을 읽고 얻은 통찰을 정리해볼게.
과정을 4 단계로 단순화 해봤어. 목표를 공유하고 작업을 분배한 다음 낭비인지를 판단하면 돼.

만약 작업자가 부족하다면 우선순위를 메겨 효율적으로 작업을 관리 할 수 있어.

여기까지 정리해봤지만 결국 프로세스 변화가 필요함을 내포하고 있었어. 기존 프로세스에 적응한 작업자들은 숙련된 업무를 버리긴 힘들어보여.
그럼 작업 단위마다 비효율적인 프로세스를 개선하는건 어떨까. 당장은 불편할지 몰라도 의존되는 작업 간에 차질은 생기지 않아보여.

인풋과 아웃풋이 동일한 상황에서 프로세스를 효율적으로 변경하는 게 중요해보여. 개인으로서 기존 업무 프로세스에 어떻게 참여할지 고민했을 때 다양한 이해관계자와의 소통이 중요하게 느껴졌지.
개발 속도와 제품의 완성도를 높이기 위해서 내가 취해야 할 행동은 다음과 같아.

책에서는 개발 과정의 낭비를 제거해 리드 타임을 줄여나가라고 했지. 이제 왜 기존 제품을 관리하면서 새로운 가치를 창출하는 행위로 볼 수 있냐면 사용자의 피드백을 통해 제품의 수명을 빠르게 파악하고 어떤 업무에 집중 할 수 있을지 판단이 서기 떄문이야.
장기 투자가 필요한 가치를 얻을 수 없을지는 몰라. 그런데 무서운 속도로 변화하는 환경 속에서는 장기적인 계획은 하이 리스크라고 생각해. 변화하는 트렌드에 민감하게 반응하기 위해서는 빠른 피드백 속도가 중요해. 우리가 잘 하는지를 평가하는 건 대중이야.
현대인의 행동
비즈니스 전반적으로 효율적인 작업이 이뤄지도록 하는 방법이 있다고 생각해. 현대인은 나처럼 가진 가치를 유지하고 새로운 가치를 창출하고 싶어 할테니까. 나는 도메인 주도 설계가 효율적인 방법 중에 하나라고 봐.
도메인 주도 설계는 전략적 설계를 통해 개념을 정리하고 전술적 설계를 통해 비즈니스를 실현 해. 그 중 작업을 효율적으로 관리 할 수 있는 게 전술적 설계에 포함되어 있어.
전술적 설계는 보편적인 용어를 활용해 비즈니스를 분석한 다음 핵심 개념들을 모아서 도메인으로 관리하게 돼. 도메인은 핵심 도메인, 지원 도메인, 일반 도메으로 분류가 돼.

도메인에 맞게 리소스를 할당하게 되면 낭비를 효과적으로 줄일 수 있어. 만약 경쟁사와의 차별점을 두지 않는 도메인은 외부 솔루션을 통해 쉽게 해결 할 수 있어.

직접 관리해야 할 부분만을 관리하면서 가지고 있던 짐을 덜어내 행동에 제약을 최소화하는 게 중요하다고 생각해.
다시 돌아와서
이런 고민은 지원 도메인과 일반 도메인을 어떻게 관리해야 할지 고민하면서 시작했어. 비즈니스에 큰 영향을 끼치지 않는 관리 페이지를 엄격한 테스트를 거쳐 배포하는 게 맞는걸까?
, 완성 후 프론트 팀에게 UI 관리를 넘겨야 할까?
이런 고민을 했지. 결론은 해당 도메인의 관리는 한 팀에서 하는게 맞아보였고 문제가 생길 경우에만 수정을 거쳐 낭비를 최소화 할 필요가 있었어.
앞으로는 낭비를 최소화해서 리드 타임을 줄이고, 프로젝트 수명을 늘리기 위해 코드 퀄리티를 높일 수 있도록 신경써야겠어.