brunch

You can make anything
by writing

C.S.Lewis

by 우디코치 Jul 14. 2021

Software Development

소프트웨어개발은 끝없는 배움이다

필자는 소스코드를 작성하는 프로그래머는 아니지만 넓은 의미에서 소프트웨어 개발자다.

소프트웨어 설계와 코딩처럼 개별 프로그램 작업뿐 아니라

프로젝트의 요구사항을 분석하고 프로젝트를 관리하며, 배포 이후 유지보수 등..
하나의 Software가 이 세상에 나오기까지는 다양한 Software developer들이 관여하기 때문이다.


그래서, 오늘은 소프트웨어 개발에 대해  짧은 내 생각을 써보고자 한다.


 


8년 전 첫 입사한 개발팀에서 내가 맡은 업무는 '신사업'이었다.

모바일 사용이 어려운 5060을 겨냥한 모바일 원격 도움 서비스였다.
당시 B2B가 메인 도메인이었던 회사에서 시험적으로 도전해 보는 B2C 서비스였다.


도전과 혁신은 좋았으나, 시장조사나 유저테스트를 진행하고 이 문제를 정의한 것이 아니라
당시 협력업체에의 제안서가 통과되어 시작된 사업이었고 데드라인만 정해졌을 뿐

이 문제를 왜 해결해야 하는지? 요구사항은 무엇인지? 불명확한 상태였다.


여기까지 읽었다면, 이 프로젝트의 결과를 모두 짐작할 수 있을 것이다.

결론부터 이야기하면, 4개월 동안 야근을 거듭하며 만든 '세상에 없던 혁신적인 서비스'는 수익분기점을 넘지 못했고 과도한 광고와 운영비를 축내고 1년 만에 서비스를 접게 되었다.

더 슬픈 사실은 오픈할 때 보다.. 클로징 할 때 더 많은 야근을 했다는 것이다.
(환불처리 및 서비스 사업자 퇴점 문제 등. 영업과 마케팅 회계처리까지 안 해본 일 없이 뛰었다)
그렇다. 첫 프로젝트는 밤샘 야근의 추억들을 남겼다  


문제를 되짚어 보자면 수 없이 많을 것이다.

그러나 오늘은 한 가지 질문을 던져보고 이에 대한 생각을 정리해보려 한다.


| 소프트웨어 개발은 주어진 시간 내 필요한 무언가를 만드는 게 목적 아니야?


8년 전에는 이 질문이 왜 이상한지 몰랐다. 개발은 결국 끝없는 배움이라는 깨달음을 알지 못했으니까 말이다. 개발은 만드는 것이 핵심이 아니라, 고객과 내가 만든 서비스 사이에 끝없이 주고받는 문제 해결에 대한 이야기이다. 이 이야기는 끝이 없다. 무대가 바뀌고 주인공이 바뀌고 이에 따라 플로우가 변하기 때문이다. 그래서 끝없이 배워나가는 자세를 가져야 한다.

'헨릭 크니버그'는 비슷한 관점으로 Agile 세계에서 가장 유명할지도 모르는 아래 그림을 그렸다.


Not like this에 해당하는 그림은 3번 작업이 진행될 때까지도 우리가 만드는 소프트웨어가 무엇인지 알 수 없다. 코딩을 하는 개발자도 자신이 무엇을 만들고 있는지 확실하게 말하지 못할 가능성이 100%이다.

반대로 Like this 그림에서는 1번부터 '탈 것'이라는 가치를 갖는다. 단계를 거듭하며 전달할 가치 플로우는 변한다. 하지만 각 단계별로 가치 있는 무언가를 만들고 있다는 사실은 흔들리지 않는다.

어쩌면 4번 바이크 단계에 도달했을 때, 고객이 연예인 최민수라면 5번의 그림이 스포츠카가 아니라 할리데이비슨이 될 수도 있다. 또는 아이가 3인 부모라면 5번의 그림이 SUV 일 수도 있다.


자 그럼 5번 단계를 충족했으니, 소프트웨어 개발의 목적을 달성한 것일까?

아니다. 진짜 목적은 배움에 있다. 소프트웨어는 학습의 순환고리를 보여준다.


고객의 피드백으로부터 학습하면 더 나은 아이디어가 나온다

더 나은 아이디어는 최소 기능을 갖춘 제품으로 실험된다

이 실험에 대한 피드백과 데이터로 더 나은 아이디어를 발견한다.

더 나은 아이디어는 최소 기능을 갖춘 제품으로 실험된다

(반복)


그래서 훌륭한 개발팀은 소프트웨어 개발을 "완료했다"가 아니라

"우리가 올바르게 만들고 있다"라고 답할 수 있는 팀이다. 무언가 만들어 내는 것은 쉽다.

그냥 일정 안에 뚝딱 만들면 되기 때문이다.


반대로, 어렵지만 가치 있게 일하는 것은
'우리가 올바르게 만들고 있는지' 학습의 순환고리 안에서 되묻고 실천하는 자세에 있다.



정리해 보자


내가 생각하는 소프트웨어 개발은

팀이 올바르게 만들고 있는지 반복 학습하는 것 그 자체에 있다.


혹자는 '그럼 끝없이 개발해야 하나요? 결론을 낼 수 없는 건가요?'라고 물을 수 있다.


여기에 대한 필자의 답변은 아래와 같다.


레오나르도 다 빈치가 스케치까지만 한 미완성작 '곰의 머리'이다.

이 소묘는 그의 작품 중 최고가인 139억에 낙찰되었다. 누가 봐도 미완성작인 이 그림.
왜 다빈치는 이 소묘를 끝까지 그리지 않았을까?


그의 명언이 대답이 될 것 같다.

위대한 예술 작업은 결코 끝나지 않는다. 단지 그만둘  뿐이다.
- 레오나르도 다 빈치


제품 개발도 어느 순간에는 끝이 난다.

단지 완성한 것처럼 착각하지 말라는 것이다.

8년 전의 내 첫 프로젝트처럼 아직도 많은 개발팀이 자신들이 소프트웨어 개발을 하고 있다고 '착각'한다.

점진적으로 배워나가는 자세가 없다면, 어떤 개발팀도 성장하지 못한다.


착각하지 말자. 소프트웨어 역시 하나의 예술품이다.
학습하고 공부하고 고객에게 질문하자. 뼈를 깎는 노력으로 예술가가 되어야 한다.

그래야 세상을 감동시키는 소프트웨어가  탄생한다.

매거진의 이전글 문제의 발견
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari