[창업이야기] 11. 첫 버전, 야근

첫 버전

소프트웨어를 개발하는 건 그림 그리기와 비슷한 것 같다. 밑그림을 그려 윤곽을 잡고 그 다음 세세한 부분을 그린다. Blogsy개발도 비슷한 과정을 거쳤다. 먼저 큰 구조와 기능들을 구현하고 계획 시 미처 생각하지 못했던 세세한 부분은 개발하는 중에 그때그때 채워 나갔다. 소프트웨어 사용자는 어떤 기능이 왜 그렇게 동작하는지, 버튼의 모양은 왜 그러며 배열 순서가 왜 그렇게 되어 있는지 알지 못한다. 사실 사용자 입장에서는 이런 것들을 알 필요가 없다. 그건 개발하는 사람의 역할이다. 개발자는 “어떻게 하면 사용자가 편리하게 사용할 수 있고, 최상의 사용자 경험(UX)을 느낄 수 소프트웨어를 만들 수  있을까?”라는 고민을 사용자를 대신해서 좋은 소프트웨어를 개발해야 한다. Blogsy에 있는 모든 기능과 UI, 디자인 또한 어느 것 하나도 이유 없이 그 모습으로 만들어진 것은 아무것도 없었다. 예를 들어 툴바의 종류, 순서, 모양, 크기에서부터 버튼 하나하나의 모양, 색깔, 심지어 Dock을 항상 열려 있게 해 주는 핀 버튼의 모양과 위치까지 모든 것이 토의를 통해 결정된 것이었다. 디자인적인 부분뿐만 아니라 기능적인 부분도 마찬가지였다.

Blogsy에 사용할 툴바를 결정하기 위해 시안으로 만들었던 여러 스타일의 툴바. 우리는 최고의 제품을 만들기 위해 작은 것 하나에 심혈을 기울였다
Blogsy 디자인 초안
Blogsy 첫 버전 디자인 초안

여기서 잠깐 다른 이야기를 하자면 나는 어떤 프로젝트의 아이디어를 찾을 때 자신의 생활의 불편함 혹은 필요에서 찾는 것을 중요하게 생각한다. 어떤 사람들은 추상적으로 “이게 사람들에게 인기 끌지 않을까?” “이런 것 있으면 괜찮겠다?” “이거 돈이 되겠다” 등의 생각에서 아이디어를 내는 사람들이 있다. 나는 이런 아이디어는 잘 될 것이라 믿지 않는다. 내가 이렇게 생각하는 가장 큰 이유는 아이디어란 것이 대부분 What의 문제가 아니라 How의 문제이기 때문이다. 새로운 아이디어는 거의 없고, 승부는 결국 그것을 어떻게 만드느냐에 달려있다. 나는 Blogsy의 여러 성공요소 중 하나는 바로 아이디어를 우리의 실생활의 불편함과 필요에서 찾았다는 것이다. 우리는 개발자로서 일을 했지만 동시에 고객의 입장에 서 있기도 했다. 그래서 우리는 우리가 원하는 것이 무엇인지 구체적으로 알았고, 그것들을 제품에 반영함으로써 우리가 사용하고 싶고 지인들에게도 자랑스럽게 보여 줄 수 있을 만한 제품을 만들려고 노력했다.

우리는 하루 하루 즐겁게 열심히 일했다. Blogsy의 첫 버전이 완성되어 시장에 나왔을 때 반응과 그 후에 어떤 새로운 일이 생길지 상상하면 기분이 좋았다. 하지만 우리는 그런 즐거움을 미래에 누리려고 미뤄두기 보다는 한 걸음씩 앞으로 나가는 과정 자체를 즐겼다. 매일 치열하게 논쟁하며 기능을 하나씩 채워나가고, 개선해 나갔다. 그 과정 자체만으로 충분히 즐겁고 기쁨이었다. 개발 과정에서의 그런 즐거움들이 모여 Blogsy의 성공으로 이어지지 않았나 생각한다.

Blogsy를 개발하는 동안 열정적으로 즐겁게 일했지만, 첫 버전이 나오기까지는 인내심이 필요했다. 큰 기능들을 거의 다 완료했다 싶어서 세부적인 부분의 구현을 시작했는데, 생각보다 처리해야 하는 부분이 훨씬 많았다. 텍스트를 편집하는 부분을 iOS에서 제공하지 않는 Webview를 이용해서 구현했기 때문에 그에 따라 많은 기술적인 문제를 처리해야 했고, 여러 가지 미처 생각지 못한 부분의 처리와 예외처리를 해야 했다. 그렇게 열심히 일하다 보니 이제 겉으로 보기에 80-90% 정도 완성되어 보였다. 지금까지 달려 오면서 한번도 볼 수 없었던 피니쉬 라인이 눈 앞에 보이는  듯했다. 달리기에서 피니쉬 지점을 얼마 안 남기고 마지막 힘을 모아서 마지막 스퍼트를 하는  것처럼 우리는 나머지 10-20%을 채우기 위해 노력에 박차를 가했다. 그러다 보니 야근을 하게 됐다.

야  근

우리는 야근이 중∙장기적으로 독이 된다는 것을 알고 있었다. 그렇기 때문에 우리는 그때까지 야근을 거의 하지 않았다. 정말 가끔 할 때도 평소 근무시간 보다 30분 정도 초과되는 정도였다. 하루는 지인 한분을 모임에서 만났는데, 스타트업에서 그렇게 야근을 하지 않고 정시 퇴근해도 되는 거냐고 나에게 물어 본 적이 있다. 아마 내가 느슨하고 절박함 없이 일하는 것처럼 보였던 것 같다. 일단 느슨하게 일한 것은 아니다. 다만 일하는 시간에 최대한 집중해서 일했다. 소프트웨어 개발일은 제조업이 아니기 때문에 생산성이 투입시간과 정비례하지 않는다. 나는 소프트웨어 개발 같은 지식노동은 투입시간 보다는 집중력이 더 중요하다고 생각한다. 하루에 온전히 집중할 수 있는 최대 시간은 한정이 되어 있다. 그렇기 때문에 그 집중할 수 있는 시간 동안 최대한 집중해서 일했다. 실제로 복잡한 버그를 수정해야 할 때 야근을 하면서 일할 때보다 정시에 퇴근해서 푹 쉬고 다음 날 아침에 일할 때 쉽게 고쳐지는 경우가 훨씬 많았다. 절박함이 없어 보이는 건 사실 미래를 알 수 없는 불안정한 상황이었지만 잘 될 것 같은 믿음? 그리고 좋은 사람들과 일하기 때문에 그것으로부터 오는 일하는 즐거움이 나를 절박함이 없어 보이게 만들지 않았나 싶다.

프로젝트를 관리하는 렌스의 사고 방식도 우리가 야근 없이 일하는데 도움이 됐다. 렌스가 비록 전문적인 개발을 배운 적은 없지만 기본적인 HTML 코드는 다룰 수 있는 어느 정도의 지식은 가지고 있었다. 그래서 개발일을 충분히  이해해줬다. 어느 회사에서는 잦은 회의나 다른 작은 일들로 인해 실제 개발 시간은 매우 적은 경우가 발생한다고 하는데, 우리는 가능한 회의를  최소화했고 쟁점사항에 대해 빠르게 결정을 내렸다. 렌스는 특별히 회의가 필요하지 않으면 사무실에 들어오지 않고 나와 션이 개발에만 집중할 수 있도록 자리를 비워 줬다. 렌스는 개발을 담당하는 나와 션을 직접적으로 압박하거나 비난한 적이 한번도 없다. 소프트웨어 개발을 이해하지 못하는 사람은 겉으로 보이는 것만 가지고 “이거 쉬워 보이는데 왜 그렇게 오래 걸려?”, “그거 왜 아직도 고치질 못해?” 등의 이야기를 쉽게 한다. 하지만 앞에서 말했다시피 렌스도 어느 정도 개발에 대한 지식이 있었기 때문에 기술적인 문제에 봉착해 일정이 지연되거나 쉬워 보이는 기능이 생각보다 오래 걸리는 것에 대해서 이해해 줬다. 물론 생각보다 오래 걸리는 부분에 대해서는 자신도 안타깝고 답답하다라는 표현을 하긴 했다. 그래도 직접적으로 나와 션에게 비난한 적은 없다. 그리고 나와 션은 항상 왜 특정 부분의 구현이 그렇게 오래 걸리거나 쉽지 않은지 렌스에게 최대한 잘 설명하려고 노력했다.

우리가 야근 없이 일할 수 있었던 가장 큰 이유는 나는 서로 간에 신뢰가 있었기 때문이라고 생각한다. 렌스는 관리자의 입장에서 나와 션이 항상 우리가 할 수 있는 최선으로 일한다는 것을 믿었기 때문에 자리를 비워 개발에 집중할 수 있도록 해줬고 따로 감시 같은 것을 하지 않았다. 데이브의 경우에는 사무실에 나오지 않고 따로 일하는 경우가 많았고 사무실에 와서 함께 일하는 날에 지각을 하거나 그 날이 잘 지켜지지 않아서 렌스에게 신뢰를 얻지 못한 것 같았다. 이 부분에 대해서는 뒤에서 더 이야기할 기회가 있을 것 같다.

그렇게 야근 없이 일하다가 프로젝트가  마무리되려는 시점에서 최대한 빨리 완성하기 위해 야근을 하게 됐다. 달리기에서 피니시 라인을 얼마 남기지 않은 상황에서 전력질주를 하는 것처럼 전력 질주를 했다. 하지만 막상 전력질주를 해서 피니시 라인처럼 보이던 곳에 도착하면 피니시 라인은 다시 저 멀리 눈 앞에 보이는 곳으로 이동해 있었다. 다시 말해서 개발을 완료하려고 하다 보니 여러 가지 생각지 못했던 문제들과 작은 부분들로 인해서 개발 일정이 지연되었다. 피니시 라인이 이동하긴 했지만 눈 앞에 보이기 때문에 또 다시 전력질주를 하게 됐다. 이런 일을 몇 번 반복하다 보니 흔히  이야기하는 번아웃, 소진 상태를 겪게 되었다.

2010년 12월부터 2011년 2월 까지 2-3개월의 야근 기간 동안 보통 오후 9시, 10시까지 일했고 어떤 날은 집에 가는 버스가 끊길까 봐 아슬아슬하게 사무실을 나와 재촉해서 버스 정류장으로 발걸음을 옮기기도 했다. 가끔 나는 과도한 몰입과 예전의 버릇으로 사무실에서 밤을 새울까라는 생각도 했지만 다행히도 실제로 그런 일이 있었던 적은 없다. 만약 그랬다면 그 다음날 졸려서 제대로 일을 못해 결국 득 보다는 실이 많았을 것이다. 추운 날 늦게까지 일하고 션과 함께 퇴근하는 중에 길을 걸으며 Blogsy가 출시 후에 어떻게 될지 서로 기대감속에서  이야기하던 시절 기억이 난다. 그러는 동안 Blogsy프로젝트의 첫 버전은 거의  완성되어갔다.

Read more

카카오모빌리티 5년, 그 경험과 생각

2018년부터 2024년까지 5년 동안 카카오모빌리티에서 개발자로 일하며 얻은 경험과 느낀 점을 정리해 보았습니다. 개인적인 관점에서 작성된 내용이며, 제 경험이 회사 전체를 대표하지는 않습니다. 일 * 리더의 변화가 회사 분위기를 바꾼다. * 재직 중 CEO가 한 번 교체되었고, 그 후 CTO를 비롯한 여러 리더들이 함께 교체되었습니다. * 리더가 바뀌니 마치 다른 회사에 다니는 것처럼

By 토미
복잡한 마음이 든다면 적어보세요.

복잡한 마음이 든다면 적어보세요.

살다보면 분노, 불안, 우울 등 부정적인 감정이 찾아옵니다. 이런 감정은 시간이 지나면 금새 사라지기도 하지만, 때로는 계속 불쑥 불쑥 올라와서 마음을 혼란에 빠뜨립니다. 이럴 땐 한번 적어보세요. 내 마음은  왜 화가 났는지, 왜 불안한지, 왜 우울한지, 적다보면 부정정인 감정의 근본 원인이 무엇인지 그 감정을 어떻게 정리해야 할지 실마리를 찾을 수

By 토미
인생이란 책

인생이란 책

사람은 누구나 인생이란 책의 저자입니다.  모든 사람은 단 한 권의 책을 쓰고, 모든 책의 주인공은 저자 자신입니다.  1년의 삶을 한 페이지에 적는다고 했을 때, 책은 보통 80페이지 정도 되고, 많아도 120페이지를 넘기진 않습니다.  책에 한 번 써진 내용은 수정하거나 삭제할 수 없습니다. 마음에 들지 않는 페이지가 있더라도 찢어버릴 수 없습니다.

By 토미
박경리 - 산다는 것

박경리 - 산다는 것

체하면 바늘로 손톱 밑 찔러서 피 내고 감기들면 바쁜듯이 뜰 안을 왔다갔다 상처나면 소독하고 밴드하나 붙이고 정말 병원에는 가기 싫었다 약도 죽어라 안 먹었다 인명재천 나를 달래는 데 그보다 더 생광스런 말이 또 있을까 팔십이 가까워지고 어느 날부터 아침마다 나는 혈압약을 꼬박꼬박 먹게 되었다 어쩐지 민망하고 부끄러웠다 허리를 다쳐서 입원했을

By 토미


[책] 토미의 Git with 소스트리

Git을 제대로 알고 싶으신 분들께 추천드립니다.



[온라인 강의] 토미의 Git & Github

Git을 제대로 알고 싶으신 분들께 추천드립니다.