brunch

매거진 밑줄긋기

You can make anything
by writing

C.S.Lewis

by maya Jul 13. 2019

어떤 작업이 삽질로 분류되는가

Site Reliability Engineering (2016)

  우리가 말하는 삽질(toil)이란 단순히 '하고 싶지 않은 일'을 의미하지만은 않는다. 그렇다고 관리를 위한 허드렛일이나 지저분한 일을 의미하는 것도 아니다. 만족과 즐거움을 느낄 수 있는 업무에 대한 선호는 사람마다 모두 다르다. 누군가는 손수 직접 하는 반복적인 작업을 좋아할 수도 있다. 물론 반드시 수행해야 하며 삽질로 분류해서는 안 되는 업무들도 있다. 이런 업무들이 바로 부하(overhead)를 일으킨다. 

  업무의 부하는 프로 덕션 서비스를 운영하는 것과 직접적으로 엮이지는 않지만 팀 회의나, 둘러앉아 목표를 결정하는 일, 업무 보고, 그리고 구인을 위한 서류 작업 같은 업무들을 포함한다. 지저분한 일은 간혹 장기적으로는 가치가 있을 수도 있다. 그런 경우에는 삽질로 분류해서는 안 된다. 시스템에서 경고와 관련된 전체 설정을 정리한다거나 어지럽게 작성된 코드를 정리하는 것은 지저분한 일이 될 수는 있지만 그렇다고 삽질은 아니다.


  그렇다면 대체 삽질을 어떻게 정의할 수 있을까? 이 책에서 말하는 삽질이란, 프로덕션 서비스를 운영하는 것과 직접적으로 연관이 있지만 수작업을 동반하고, 반복적이며, 자동화가 가능하고, 사후 대처가 필요하며(tactical), 지속적인 가치가 결여되어 있으면서도 서비스의 성장에 따라 지속적으로 늘어나는 업무들을 말한다. 삽질로 분류할 수 있는 모든 작업들이 이런 특성을 갖는 것은 아니지만, 지금부터 나열하는 내용들에 해당하는 경우가 하나 혹은 그 이상이라면 그런 작업들은 삽질이라고 생각해도 무방하다.


  수작업을 필요로 한다

  예를 들면 자동화된 작업을 실행하기 위해 수작업으로 스크립트를 실행하는 경우를 말한다. 물론 스크립트에 기술된 모든 단계들을 손으로 직접 처리하는 것보다는 스크립트를 실행하는 편이 훨씬 빠르겠지만, (스크립트의 실행 시간이 아니라) 사람이 스크립트를 실행하기 위해 소비하는 시간은 분명히 삽질에 소비된 시간이다.


  반복적이다

  만일 생전 처음 하는 ,혹은 이제 겨우 두 번째 해보는 작업이라면 삽질이라고 보기는 어렵다. 삽질은 계속해서 반복되는 작업이다. 새로운 문제를 해결 중이거나 새로운 솔루션을 개발하는 작업은 삽질이라고 보지 않는다.


  자동화가 가능하다

  만일 머신을 이용해 사람이 하는 것과 동일한 작업을 수행할 수 있다거나 디자인을 변경해서 해당 작업이 더 이상 필요하지 않게 될 수 있다면 그 작업은 삽질로 분류될 수 있다. 하지만 그 작업이 기본적으로 인간의 판단에 의해 실행되어야 한다면 삽질로 분류되지 않을 수도 있다.


  사후 대처가 필요하다

  삽질은 전략적으로 운영되며, 미리(proactively) 처리할 수 있는 일이 아니라 업무를 방해(interrupt)하며, 사후에(reactive) 처리하게 되는 일들이다. 무선으로 날아오는 알림을 처리하는 것은 삽질이다. 어쩌면 이런 일들을 완전히 없애기란 불가능할지도 모른다. 하지만 최소화하기 위한 노력을 계속해야 한다.


  가치가 지속되지 않는다

  어떤 작업을 끝냈는데도 서비스가 계속 같은 상태로 남아있다면 그 작업을 삽질로 분류할 수 있다. 반면, 어떤 작업을 완료한 후 서비스가 영구적으로 개선되었다면, 비록 같은 양의 너저분한 작업(예를 들면 오래전에 작성된 코드와 설정들을 파헤쳐서 개선하는 등)이 수반되더라도 그 작업은 삽질이라고 볼 수 없다.


  서비스의 성장에 따라 O(n)으로 증가한다

  작업에 필요한 업무량이 서비스 크기나 트래픽 양, 혹은 사용자의 수에 따라 선형적으로 증가한다면 이런 작업을 필시 삽질이다. 이상적으로 디자인되어 관리되는 서비스는 그 크기가 10배로 커지더라도 리소스를 추가하기 위한 단발성 업무 외에 추가로 필요한 작업이 없다.


 "사람의 판단을 필요로 하는 작업은 삽질이 아니다"라고 말할 때는 주의를 기울여야 한다. 그 작업이 본질적으로 사람의 판단을 필요로 하며 더 나은 디자인으로 해결할 수 없는지를 주의 깊게 생각해봐야 한다. 

  예를 들어 현재 개발 중인 (또는 이미 개발한) 서비스가 하루에도 몇 번씩 알림을 보내는데, 이 알림들이 너무 복잡해서 사람이 직접 개입해야 하는 부분이 너무 많을 수 있다. 이런 시스템은 필요 이상으로 복잡하게 구현된 것이므로 때문에 올바르게 디자인되었다고 보기 어렵다. 이런 시스템은 좀 더 간소화되어야 하며, 기본적인 실패 상황을 배제하거나 혹은 자동으로 처리할 수 있도록 개선되어야 한다. 시스템을 다시 디자인하고 개발해서 더 개선된 서비스를 출시하기 전까지는, 사람의 개입을 필요로 하는 알림들은 당연히 삽질이라고 정의할 수 있다.


- Vivek Rau, Betsy Bayer 작성, 장현희 번역

매거진의 이전글 이기면 그대로, 지면 바꾸기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari