2020년 7월 10일 금요일

코로나19 시대에 비대면 소프트웨어 개발이 필수

코로나19가 우리의 일상을 바꾸고 일하는 방식도 변화 시키고 있다. 그러면서 여러 분야에서 직접 만나지 않고 일을 하는 비대면 방식으로의 업무 방식을 도입할 수 밖에서 없게 되었다.

이러한 비대면으로 일하는 방식은 소프트웨어 개발에 있어서 긍정적인 측면이 있다. 비대면 방식의 개발이 글로벌 수준의 소프트웨어 개발 방식과 일맥상통한다. 또한 비대면 방식은 소프트웨어 개발 비용의 감소와 효율적인 개발과도 맞닿아 있다. 그동안은 이런 비대면 방식의 개발이 많은 기업에서 도입이 어려웠다. 그동안 해오던 방식을 바꾸기 쉽지 않는 것이 한 이유인데, 이제는 필수적으로 비대면 방식을 도입해야 한다. 따라서 비대면 방식이 소프트웨어 개발에 어떠한 영향이 있는지 짚어보고자 한다.

그럼 소프트웨어를 비대면 방식으로 개발해야 하는 가장 큰 이유는 무엇일까?

개발 비용이 적게 들기 때문이다.


가장 큰 이유는 개발 비용이 적게 들기 때문이다. 믿기 어렵겠지만, 사실이다. 프로젝트가 점점 커지고, 복잡해지고, 유지보수까지 감안하면 그 비용의 차이는 점점 커진다. 

좀더 나아가 비대면 개발 방식을 재택 근무까지 확장하면 회사 입장에서는 거주지에 상관없이 개발자를 채용하는 이득이 있고, 꼭 하루 8시간 일하는 개발자를 채용할 필요도 없고, 개발자 채용이 훨씬 유연해진다. 또한 사무실 임대비용도 감소하여 많은 장점이 생긴다.

직원 입장에서도 개발 외의 시간을 덜 뺏기게 되어 업무 집중도가 높아지고, 감정 소모가 감소하는 장점이 있다. 전체적으로 개발 생산성도 향상된다. 하루 4시간 밖에 일하지 못하는 개발자에게도 취업의 기회가 생기고, 생활의 질도 올라갈 것이다. 

사회적으로는 회사들이 몰려있는 수도권의 집값도 떨어지는 효과도 생길 것이다. 회사, 직원, 사회 모두가 이익이 된다.

문제는 얼굴을 보지 않고 일을 할 수 있냐는 것이다. 게다가 일을 열심히 하고 있는지 믿을 수 있냐는 것이다.

이제부터 사례를 비교해보고 어떻게 해야 비대면 방식으로 소프트웨어를 개발할 수 있는지 알아보자.

먼저, 미국의 경우를 보자.

미국에서는 이미 약 20%의 개발자는 재택근무를 하고 있다.


미국에서는 이미 약 20%의 개발자는 재택근무를 하고 있다. 대부분의 회사에서 개발자로 입사를 하면 재택근무를 선택할 수 있는 옵션이 있다. 코로나19 이후 재택근무는 훨씬 더 증가하고 있다. 즉, 미국에서는 이미 비대면으로 개발하는 방식에 익숙해져 있고, 비대면 개발에 별 문제가 없다.

미국에는 비정규직 포함 1200명의 직원이 모두 재택근무를 하고 있는 소프트웨어 회사가 있다. 바로 GitLab이다. GitLab의 모든 프로세스는 온라인으로 진행할 수 있도록 되어 있고, 문서를 통해서 개발이 이루어진다. GitLab은 급속도로 성장하고 있다.

Facebook은 개발자가 입사한 첫날 버그를 고친다. 이렇게 고친 버그는 전세계 서비스 된다. 개발자가 입사를 하면 버그관리시스템에서 버그를 할당해주고, 개발자는 온라인으로 주어진 정보를 바탕으로 소스코드를 내려 받고, 수정 후, 온라인으로 코드리뷰를 받고 소스코드를 등록한다. 한 사무실에 있는 동료들의 얼굴을 볼 수 있지만, 얼굴을 보지 않아도 일하는 방식은 똑같다.

최근 실리콘밸리의 소프트웨어 회사들은 대대적인 재택근무를 선언하고 있다. Facebook은 향후 5~10년에 걸쳐 직원 절반이 영원히 원격근무를 할 것이라고 한다. 이로 인해서 실리콘밸리 집값도 떨어지고 있다고 한다.

하지만 국내의 회사들은 전면적인 재택근무는 엄두를 내지 못하고 있다. 특정 직군만 재택근무를 시행하거나 일주일에 며칠만 재택근무를 시도하곤 한다. 아예 비대면으로는 일을 하기 어려운 상황이다.

그럼 우리나라 회사의 사례를 살펴보자.

스펙 문서를 보고 개발자가 개발을 못한다.


A사는 공공 프로젝트를 위주로 사업하던 회사다. 공공 프로젝트에서 업무를 분석하는 것은 가장 중요한 일이다. 그래서 업무 분석가가 핵심이다. 업무 분석가가 소프트웨어 스펙을 작성해서 개발자에게 넘겨주면 문서를 보고 개발하는 것이 목표였지만, 실제는 업무 분석가가 개발 기간 내내 옆에서 기능을 설명해줘야 했다. 업무 분석가는 프로젝트가 끝날 때까지 프로젝트에 묶여서 다른 프로젝트를 수행할 수가 없다. 회사 입장에는 수주할 수 있는 프로젝트가 줄어 들기 때문에 손해가 아닐 수 없었다. 하지만, 몇 년을 노력해도 스펙 문서를 전달해서 개발자들이 스펙 문서를 보고 개발한다는 목표는 달성하지 못했다.

B사는 신입 개발자가 입사를 하면 사수를 정해주고 이거 저거 가르쳐줘야 하는 것이 많다. 신입개발자는 최소 한달은 되어서 실제 개발에 투입이 될 수 있다. 사수인 고참 개발자도 시간을 많이 빼앗기고, 신입개발자도 월급 값을 하려면 시간이 오래 걸린다. 개발자가 입사할 때마다 이런 일은 반복된다. 신입 개발자에게 문서를 전달해주고 알아서 개발을 하게 하고 싶지만, 고참 개발자는 이를 위해서 문서를 따로 만들 시간이 없다.

왜 대면 개발이 문제인가? 대면으로 밖에 개발을 못하면 진짜 문제인가?

대면 위주로 개발하면 초기에는 뭔가 더 효율적인 것 같지만, 효율은 점점 떨어진다. 시간이 흐를수록 더 많은 개발자가 필요하고 초기 개발자가 유지보수에 더 매달려야 하고, 업그레이드 할수록 개발 비용이 증가한다. 

비대면 개발은 시스템, 문서 위주로 개발이 진행되기 때문에 자연스럽게 기록이 남고 혼선이 줄어들며 유지보수 준비가 된다. 

위기가 곧 기회


일본의 수출규제가 우리 부품 산업이 자립도를 높였듯이 위기가 곧 기회가 될 수 있다. 어쩔 수 없이 바뀌어야 하겠지만, 한국인의 저력과 맞물려서 소프트웨어 개발 역량이 몇 단계 업그레이드 될지도 모른다. 그러기 위해서 방법을 알아야겠다.

비대면 소프트웨어 개발을 하기 위해서는 크게 3가지가 필요하다.

첫째, 비대면 개발을 위한 시스템, 툴이 준비되어야 한다.

작은 툴부터 시스템까지 10~20여가지의 시스템이 도입되어서 내재화되어야 한다. 많은 것 같지만 적응해서 사용하다 보면 하나하나 필수적인 것이고 이것들 없이는 개발을 못할 것 같은 생각이 들것이다. 여러 회사를 살펴본 필자의 경험에 의하면 비대면 개발 프로세스를 위한 시스템, 툴을 촘촘히 전부 도입하고 있는 회사는 드물다. 일부 시스템만 사용하고 있어서 프로세스 중간중간 비대면 프로세스가 끊어지는 경우가 많다. 필수 시스템 중 몇가지만 예로 들면 문서관리시스템, 지식관리시스템, 소스코드관리시스템, 이슈관리시스템, CI시스템, 코드리뷰시스템 등이다. 추후 하나씩 자세히 알아보려고 한다. 이렇게 비대면 프로세스가 끊어지면 지속적으로 비대면 개발을 할 수 없고, 중간중간 얼굴을 보고 일하지 않으면 안된다.

둘째, 문서작성 역량이다.

단순히 워드 문서 같은 것을 말하는 것은 아니다. 온라인 시스템을 사용하려면 모든 것을 다 적어야 한다. 말로 하는 커뮤니케이션보다 글로 적는 커뮤니케이션에 익숙해져야 하고, 문서를 통해서 의사를 전달하고 문서를 보고 개발할 수 있는 수준의 문서를 작성할 수 있어야 한다. 그렇다고 자세하게 적는 것이 능사는 아니다. 최소한으로 문서를 적는 것이 더 중요하다. 이런 역설적인 말을 이해해야 한다. 개발에 관련된 문서는 많다. 기획문서, 스펙문서, 백서, 설계문서, 테스트 관련 문서 등 여러 문서를 온라인 프로세스를 통해서 작성하고 리뷰하고 확정하고 변경 관리를 해야 한다. 

셋째, 개발 문화다.

그중 대표적인 것이 수평 문화다. 온라인으로 비대면 개발을 하면 업무가 수평적으로 진행된다. 프로젝트에서 자신의 역할이 존재할 뿐이고 수직 관계가 없어져야 한다. 그래야 제대로 개발이 된다. 온라인에서도 수직관계가 여전히 존재한다면 일이 잘 진행 안될 것이다. 각자 자신이 맡은 일을 전문적으로 처리하는 것이다. 연공서열, 장유유서, 상명하복 이런 것들이 점점 희박해지고, 전문성이 강조되는 문화로 바뀌어 나가야 한다. 얼굴 안보고 일하면 이런 문화가 바뀔 가능성이 더 높아진다.

코로나19는 우리에게만 닥친 것이 아니다. 전세계가 동일한 환경에 처했다. 전세계가 비대면 방식으로 업무를 바꾸고 있고, 우리가 조금이라도 더 빨리 적응해 나가야 한다. 승부는 2,3년 안에 나게 되었다. 여기서 뒤쳐지면 따라잡기 어렵다.

비대면 방식이 소프트웨어 개발은 이제 선택이 아니고 필수가 되어가고 있다. 오늘은 비대면 방식의 개발에 대해서 간단히 소개만 했는데, 앞으로 하나씩 자세히 소개를 할까 한다. 하루아침에 습득할 수 있는 것은 아니지만, 차근차근 알고 익혀 나가는 것이 가장 빠른 길 일 것이다. 

이 글은 ZDNet Korea에 기고한 칼럼입니다. 



댓글 5개:

  1. 문제는 얼굴을 보지 않고 일을 할 수 있냐는 것이다....맞습니다!! 특히 문제는 "사모실 내에" 얼굴을 보지 않고 일을 할 수 있냐는 것이다.

    답글삭제
    답글
    1. 저도 한 사무실에 있어서 굳이 수시로 서로 얼굴 보고, 회의하면서 일할 필요가 없다고 생각합니다. 꼭 필요한 회의만 해야겠죠. 제 블로그를 회의로 검색하면 관련 글들이 좀 나옵니다.

      삭제
    2. Yeh, i searched your blog with keyword "회의"... you are absolutely right !! By the way how have you been Raymond ? Do u remember who i am ? I love your blogs always :)

      삭제
    3. Hi, Eric. You are the Eric I remember? ^^

      삭제