현재 미국에서 K 모사 일을 하고 있지만, 우리나라만의 새로운 운영체제를 발표한다는 소식을 듣고 관련 동영상과 문서를 보면서 필자도 모르게 아쉬운 마음을 감출 수 없었다. 특히, 많은이들이 공감하듯이 개발자의 이혼이야기며, 건강이야기를 자랑스럽게 이야기하는 부분에서 흥분하지 않을 수 없었다. 과연 이것은 회사의 경영진의 문제일까? 아니면, 개발자 자신의 문제일까? 필자는 무엇보다도 개발자의 자발적인 자기관리가 중요하다고 생각한다.
개발자가 반드시 관리를 해야 하는 부분을 안과 밖으로 나누어 설명할 수 있는데, 안이라고 하면 정신적인 것과 관련된 이야기이며 밖은 육체적인 것과 관련된 이야기다. 이 둘의 조화가 얼마나 중요한지 짚고 넘어가야 한다. 한번이라도 개발을 해보았던 사람들이라면 누구나 공감을 할 것이다. 아래와 같은 상황을 가정하고, 결과를 한번 상상해보자. 술김에 프로그램을 만들어 본 기억이 있는가? 어느 프로젝트에서 일이 너무도 힘들어서 홧김에 술을 마시고 코딩을 했다면, 그 당시에는 이것이 얼마나 잘못된 일인지 알지 못한다. 멀쩡한 정신에 프로그램을 만들어도 자신이 어디서 실수를 했는지 찾기는 그렇게 만만치 않은데, 하물며 술을 마시고 프로그램을 만들었다면 이건 진짜 대박이라고 하는 표현이 맞을 것이다. 술의 힘을 빌어 프로그램을 만들게 되면 당사자도 놀라울 정도로 척척 코딩이 이루어진다. 하지만 술이 깬 다음 날 자신이 만든 프로그램을 보게 되면 도무지 이해가 되지 않는 부분들을 발견하게 된다. 어디까지 만들고 어디까지 수정을 했는지 알 수가 없게 된다. 그러니 더더욱 혼자서 만드는 소스가 아닐 때에는 오히려 찾아서 원상복귀 시키는 것조차 어렵게 된다. 이런 얘기를 해서는 안 되겠지만 필자 역시도 경험이 있기에 그게 얼마나 위험한 상태인지 알기에 얘기를 하는 것이다. 아픈 상태에서 프로그램을 만들어본 기억이 있는가? 깊이 생각할 일도 아닌 것 같다. 가벼운 감기,몸살만 걸려도 정신이 몽롱하고 집중이 안 되어 도저히 프로그램 개발이 안되는 경우를 경력이 좀 되는 개발자라면 누구나 경험해 보았을 것이다. 일반적인 프로젝트에서는 그런 사람이 옆에 있으면 오히려 기존 프로그램마저 망칠까 봐 일찍 귀가를 시키는 경우를 종종 볼 수가 있다. 몽롱한 상태에서 아무리 개발을 해봐야 그건 그냥 시간 잡아먹기에 불과하며 상황을 오히려 악화시키는 불완전한 요소가 될 뿐이다. 그렇다면, 개발자 중에 개발 때문에 이혼까지 하고 자신이 아픈 줄도 모르고 개발을 한 사람이 있다는 사실은 결코 자랑해서는 안 되는 부분이지 않을까. 이혼까지 갔다면 도중에 맨정신으로 개발이 가능 했을까? 아픈 줄도 모르고 개발을 했다면 제대로 된 코딩이 가능 했을까? 잠도 못자고 개발을 했다면 새로운 영역의 개발인데 정말 제대로 된 프로그램이 만들어 졌을까? 하는 의문만 남게 만들었다. 어떤 의미로 얘기를 했는지는 이해는 되지만 결코 자랑할 부분이 아니라는 생각이 들며 진짜 너무 고생, 고생하며 개발한 개발자들을 한꺼번에 바보로 만들었다는 생각이 들었다. 개발자가 하나의 프로젝트를 끝까지 무사히 끝내고 싶다면 체력은 반드시 갖추고 있어야 한다. 보약을 먹든지 아니면 운동을 하든지 끝나는 그 순간까지 견딜 힘의 원천이 필요한 것이다. 정신적인 것도 역시 마찬가지라고 생각한다. 일주일 내내 오직 일에만 전념한다면 정말 중요한 시점에서 모든 것이 고갈되고 말 것이다. 주말에 휴식하는 것도 다음 일주일을 위한 배려이다. 하루 이틀 바짝 밤샘하며 일을 하는 것과는 다른 얘기이다. 장기 프로젝트 경우 개발자들 중에 보약을 먹으며 체력을 쌓거나, 운동을 하고 정신적인 스트레스를 운동으로 푸는 등, 자기만의 비법으로 장기전에 대비하는 경우를 쉽게 볼 수가 있다. 필자 역시도 체력적, 정신적인 면의 해결을 위해서 이젠 약보다는 운동에 힘쓰고 있다. 운동을 하면 살도 빠지고 맑은 정신을 오래 유지할 수 있도록 해주는 숙면도 제공하기에 적극 추천한다. ‘건강한 신체에 참신한 아이디어가 깃든다’는 상투적인 표현을 굳이 부연 설명할 필요는 없을 것이다. 육체적인 면만 강조하는 우를 범하지 말아야 한다. 모든 것은 조화에서 비롯된다. 그리고 이 말도 해주고 싶다. 하루 이틀 밤샘으로 끝날 일이 아니라면 무작정 자신을 혹사시키며 일한 것이 결코 자랑은 아니라는 것이다. 행복한 개발자가 되고 싶다면 자기관리는 스스로 해야만 한다. 제삼자가 해주는 것이 아니다. 개발자에게 균형있는 자기관리는 현재, 그리고 미래를 위한, 어쩌면 가장 중요한 투자이기 때문이다. cess98@paran.com |
임철우님의 컬럼이 또 올라왔길래 읽다가 퍼오게 되었다.
국내 기업중 모기업에서 운영체제 개발 과정에 대한 에피소드 소개시에 나온 이야기를 나도 들었었다.
그 기업에서는 힘든 프로젝트이고 모든 팀원들이 모두 열심히 노력했다는 취지이겠지만
개발자들의 일은 단순히 작업시간에 비례하여 그 성과가 나오는 것은 아니라고 생각하기 때문이다.
위에서 언급한 것과 같이 아프거나 다른데 신경쓸일이 있거나 술에 취하거나 하는 경우는
일의 특성상 좋은 프로그램을 만들어 내는 것이 어려운 것이다.
기계적으로 처리할수 있는 단순공정이 아니기 때문이다.
개발은 근본적인 문제를 해결하는 활동이고 문제를 해결하려면 창의력이 필요하다고 한다.
소프트웨어 문제를 해결하는 활동은 어떤 활동보다도 아주 복잡한 과정임을 인정해야 한다.
관라자 측면에서는 이러한 특성에 대한 이해가 필요하리라 생각한다.
사람은 기계가 아니며 소프트웨어 개발은 기계가 할수 있는 단순 작업공정이 아님을 인지하고
소프트웨어 개발에 대한 특성을 고려하여 이에 대한 환경을 조성하고 관리해야 할것이다.
요즘 읽고 있는 "소프트웨어 크리에이티비티 2.0" 내용을 조금 인용하였다.