brunch

You can make anything
by writing

C.S.Lewis

by 이경종 Sep 30. 2021

스텝 바이 스텝 오 베이비

인생에 있어 '신의 한수'는 지금, 오늘 최선을 다하는 거지,
'절대 묘수'가 나타나서 내 인생을 바꿀수는 없는거다
- 영화배우 정우성


1992년 2월 17일 세계적인 인기를 얻고 있던 보이그룹 뉴키즈온더블록이 한국 내한 공연을 가졌다. 한국내에서도 뉴키즈온더블록의 인기는 하늘을 찌르고 있었다. 당시 발표했던 4집 수록곡 <스텝바이 스텝>의 인기는 압도적이었다. 전국에서 몰려든 수많은 소녀팬들이 공연장을 찾았다. 소녀팬들은 뉴키즈온더블록의 '한걸음씩 한걸음씩 step by step'에 화답이라고 하듯이 메인무대 앞쪽으로 몰려나갔다. 사람들이 앞으로 계속 몰리면서 결국 사단이 발생하고 말았다.  수십명의 사람들이 다치고 한 소녀가 사망하는 안타까운 사고가 발생했다. 뉴키즈온더블록은 '한번에 한걸음씩만(step by step)'이라고 말했을 뿐이겠지만, 열광한 소녀들에게 그 소리는 앞으로 당장 뛰어 날라오라는 환청으로 들렸을 것이다.  정말 조심해서 한걸음 한걸음씩만 갔다면 그런 사고는 없었을텐데, 인간의 감정과 행동은 이성과는 별개일수밖에 없다. 이성은 매일 아니라고 하지만 우리는 매일같이 충동적이다. 노란불을 보면 멈춰야 하지만 발을 이미 악셀을 밟고 있고, 오늘밤은 그만 먹어야 한다고 다짐했건만 손가락은 이미 배달앱을 누르고 있다.


반대로 정작 해야 할 일들 앞에서 우리의 충동과 광분은 깨끗하게 소멸한다. 소파에 접착상태를 유지한채 손가락과 눈동자의 현란한 움직임을 빼면 우리의 육체는 미동조차 없다. 뇌는 당장 일어나서 운동을 나가라고, 전공책을 펴놓고 책상에 앉으라고 명령하지만 미약한 성냥불은 축축한 심지에 붙자마자 꺼지기 십상이다.  '하고 있지 않음' 상태가 계속되면 무엇이든 더 하기 힘들어진다.  꼭 해야만 해야 하는 일들의 대부분은 짧은 시간안에 끝낼 수 있는 일이 아닌 경우가 많다. 막막하다. 지금 한다고 다 할 수 있는 것도 아니니, 내일 하나 오늘 하나 무슨 차이가 있겠는가 하는 감정의 논리에 설득당한다. 막막함을 극복하고 일을 시작할 수 있는 가장 좋은 방법이 있다. 막막하면 그냥 '막' 해보는 거다. 그냥 막!


걷기, 읽기, 쓰기

소프트웨어 개발 프로젝트는 대부분 장기 프로젝트다. 통상적으로 단계별 계층구조를 가지고 있고, 선행해서 구현되어야 하는 부분들이 있다.  그렇기에 설계가 중요하다. 제대로 설계되지 않은 상태에서 다짜고짜 코딩부터 해버리면 나중에 다시 갈아엎고 다시 처음부터 개발해야 하는 상황이 발생할 수 있다. 이전에는 이런 상황 자체를 문제라고 생각하는 경향이 많았다. 설계가 완벽하지 않은 상태에서 개발을 시작하는 것은 비효율적이고 무대포고 주먹구구라고 폄하되었다.  하지만 이제 시대가 바뀌었다. 개발의 선각자들은 마냥 기다리는 것보다 그냥 한번 해보는 것이 결코 비효율적인 방법이 아니라는 것을 깨달았다.  설계가 완벽할 때까지 기다리는 것이 아니라 구현을 하고 다시 이를 설계에 반영하는 반복적인 개발방법이 대세가 되었다. 해보고 아니다 싶으면 다르게 하면 된다. 이것이 린(lean)개발방식이다. 대표적인 것이 애자일이다. 머릿속으로만 골몰할 것이 아니라 실제 해보고 똥인지 된장인지 확인하는 개발방법이다. 계획과 실행, 설계과 구현이 피드백 회로에 따라 동시에 일어난다.  생각(설계)와 행동(구현)이 동시에 이루어지는 것이다.  이것은 단순한 '일단 작성하고 문제 있으면 고치기(code & fix development)' 방식과는 다르다. 짧은 주기와 반복, 그리고 무엇보다 피드백 회로가 있는지 여부에 큰 차이가 있다.


린 개발방식은 한가지 강력함을 가지고 있다. 이미 시작했음이 주는 자가 회전 효과다. 한번 돌기 시작한 굴렁쇠는 잘 멈추지 않고, 조금만 힘을 더해도 가속하기 쉽다. 동화작가 실버스타인은 영어 단어 4가지를 가지고 간단한 스토리를 하나 만들었다.  


우다(Woulda)와 쿠다(Coulda), 슈다(Shoulda)가 다 모였다. 셋은 햇빛이 비치는 양지에 누워 자기들이 할 예정이었고, 할 수도 있었고, 해야만 했던 일들에 대해 이야기를 나누다가 갑자기 모두 달아나 숨기 시작했다. 꼬마 디다(Dida)가 나타났기 때문이었다.


모든 성취의 전제조건은 "이미 시작했음"이다.  나는 애자일한 개발방법론이 주는 가장 큰 매력이 바로 이것에 있다고 생각한다.  먼 곳에서 바라보는 것과 실제 가까이 와서 보는 것은 많이 다르다. 실제로 많은 개발업무과정중 삽으로 구멍을 파다가 어떤 곳을 파야 하는지 깨달음이 오는 경우가 많다. 멀리서 어디에 구멍을 팔지 고민하기보다는 잘못될 수 있지만 가까이 와서 그냥 한번 파보는 것이 낫다. 멀리서 보고만 있으면 주저하게 되고 더욱 실행하기 어려워질 수 있다. 독일의 심리학자 프랭크 비버는 '심리적 거리'라는 용어로 이를 설명한다. 사람들은 계획한 일이나 대상에 대해 구체적으로 접근하고 실제 하게 되면 더 이상 그 대상을 멀게 느끼지 않는다. 이 심리적 거리가 가까워질수록 사람들은 더 적극적으로 행동하고 쉽게 실행에 옮긴다.  


쉽게 실행에 옮기려면 대상의 규모가 작아야 한다. 거창한 일은 시작하기도 어렵고 이루기는 더 어렵다.  그래서 소프트웨어 모듈은 가능한 작은 단위로 나눠서 반복 설계와 구현을 통해 완성도를 높여가야 한다. 이 과정에서 개발자는 자신감을 키울 수 있다. 자기 효능감(self efficiency)가 늘어나면서 추진력이 증가된다. 핵심은 작은 성공을 반복해야 한다는 것이다.  이는 경험이 적은 개발자에게 더욱 필요하다. 경험이 적은 개발자들은 이미 성취한 것이 별로 없어서 근거없는 자신감은 있을지 모를지언정 자기 효능감은 가지고 있지 않다. 그래서 신입개발자들에게는 자기 효능감을 높여줄 수 있는 일련의 작고 쉬운 코드 구현을 맡기는 것이 좋다. 어떤 분들은 어려운 것을 맡겨서 스스로 고생 좀 해봐야 실력이 는다고 이야기하는데 어떤 측면에서는 공감하고 필요한 경우도 있지만 대체로 동의하지 않는다.  그분들이 언급하시는 고생의 90%는 단지 막막함으로 인해 발생하는 심리적 고통이기 때문이다.


어디선가 읽었던 좋은 행동철학이 있어 소개하면 다음과 같다. 뭔가 해야만 하는 것이 있는데 막막하다고 느껴질 때 취할 수 있는 3단계 행동철학이다.


걸어라. 

10분만 걸으면 인간의 두뇌는 활기차게 움직인다. 

읽어라. 

텔레비전을 보고 있을때 인간의 두뇌는 잠들어 있거나 실눈을 뜨고 있는 상태다. 글을 읽으면 뇌는 기지개를 켜고 당신과 함께 움직여준다

써라. 

당신의 두뇌는 당신의 손보다 앞서간다. 펜을 들고 글을 쓰면 두뇌는 가장 활기차게 동작한다


여기에 소프트웨어 개발자를 위해 다음과 같은 한가지를 더 추가하고 싶다.


지금 바로 에디터를 열고 코드를 작성해라. 

우물쭈물하지 말고 프로토타입을 한번 만들어봐라. 

단 그것을 곧바로 상용코드로 발전시키겠다는 집착은 버려라.


매거진의 이전글 Always in beta
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari