우리는 소프트웨어 세계를 창조하는 창조자입니다.
소프트웨어 개발은 제작술에 해당합니다. 이전에 존재하지 않았던 것을 존재 속으로 이끄는 기술입니다. 멋진 말로 ‘창조’입니다. 이를 위해서는 획득술이 필요합니다. 지식 획득을 위한 부단한 노력이 요구됩니다.
프로젝트를 하다보면 소프트웨어 개발이 신종 3D업이라는 말을 가끔 개발자들로부터 듣습니다. 이해할 수 없는 이야기입니다. 창조 영역이 3D가 될 수 있습니까?
우리는 소프트웨어 세계를 창조하는 창조자입니다. 얼마나 멋집니까?
창조자로서의 자존감을 가져야 합니다. 창조자가 멋진 것만은 아닙니다. 제작술과 획득술을 익혀야 합니다. 다양한 지식을 획득해야 합니다. 이 길은 어렵고 힘이 듭니다. 그래서 우리가 선택한 것입니다. 누구나 할 수 있다면 이 길을 선택하지 않았을 것입니다. 더 이상 우리 입으로 더 이상 누워서 침을 뱉는 일이 없었으면 합니다.
구본형은 ‘세월이 젊음에게’에서 소프트웨어 개발자인 우리가 어떤 자세를 가져야 하는지 잘 이야기 해 주고 있습니다.
무슨 일을 하든 스스로 그 일을 존중하는 사람들은 그 일이 무엇이든 누구도 자신을 모욕하지 못하게 하는 법이다. ‘먼저 스스로를 모욕한 다음에야 남이 자신을 모욕하게 되는 법’이라는 옛말이 틀리지 않다. 스스로 지극하게 정성을 다하는데 어찌 이 사람의 직업이 신통치 못하다고 다른 사람들이 모욕할 수 있겠는가?
알베르트 아인슈타인은 삶을 사는 데는 두 가지 방법이 있다고 이야기 합니다.
“한 가지 방법은 모든 것에 경이로움을 느끼며 사는 것이고 다른 한 가지 방법은 그 어떤 것에도 경이로움을 느끼지 못하며 사는 것이다.”
소프트웨어 개발 만큼 경이로움으로 가득찬 분야도 드뭅니다.
그러나 일부를 제외하고 대다수의 소프트웨어 개발자들은 현실적 장벽들로 인해 이런 경이로움에서 소외되고 있습니다. 우리가 느끼는 것이 어떤 것이냐에 상관 없이 그 경이로움이 사라지는 것이 아닙니다. 우리는 그 경이로움을 현실적으로 만들기 위해서는 투쟁하듯이 인위적으로라도 놓치지 않아야 합니다.
폴 그레이엄의 ‘해커와 화가’ 에서 부를 창출하고 싶다면 사람들이 원하는 뭔가를 하거나 혹은 만들면 된다고 이야기 합니다. 소프트웨어 개발자에게 이 보다 더 나은 조언이 있을까요?
린다플라워의 ‘글쓰기의 문제해결전략’에서 문제해결 접근방식으로 글쓰기를 해야 한다고 말하고 있습니다. 우리에게도 이 말은 동일하게 적용됩니다. 소프트웨어 개발이 바로 문제해결 이니까요.
왜 문제해결 접근방식으로 해야 하는가?
1. 난관을 해체나갈 수 있게 한다.
문제해결이란 목표 지향적인 사고의 틀이다. 문제해결적 접근방식은 필자 자신이 원하는 것이 무엇인지만 안다면, 그 문제의 해결방법을 찾을 수 있다는 태도를 견지한다.
따라서 문제해결적 접근방식을 갖는 개발자는 개발 과정에서 난관에 부딪쳤을 때 “그럼, 뭘 할 수 있을까를 생각해 보자”는 매우 실제적인 태도로 접근해 간다. 이러한 태도는 개발 과정을 진행시켜 줄 수 있을 뿐만 아니라 자신이 지닌 실제적인 능력 이상을 사용할 수 있게끔 도와 준다.
2. 더 나은 개발을 위해 노력한다.
개발 과정이 어떤 시적 영감에 의해 이루어지는 게임이 아니라 그 이면에 전략과 원리가 있다고 생각하게 된다. 따라서 개발 하는데 있어서 ‘더 나은 방법’을 위한 전략의 목록을 확장시켜 나가려고 노력한다.
차동엽은 ‘무지개 원리’에서 행복해 질 수 있는 방법에 대해 다음과 같이 간단히 언급하고 있습니다.
‘마음’과 ‘목숨’과 ‘힘’을 다해 무언가를 사랑하는 것이 습관화되면 어느 분야에서도 최선의 결과를 이끌어낼 수 있다. 이것이 우리를 성공한 사람들과 행복한 사람들로 만들어 주는 마지막 2%이다. 우리의 라이벌은 자기 자신이다. 하루하루 조금이라도 앞으로 나아가야 한다.
우리 소프트웨어 개발자들은 행복함으로 시작합니다. 밥만 먹여주면 내 평생 이 일을 하고 싶다라고 생각하고, 날을 새도 피곤한지를 모르면서 프로그래밍을 합니다.
이런 일방적인 사랑은 누군가의 잘못인지는 모르겠으나 일그러진 현실 속에서 산산히 부서지곤 합니다. 현실의 벽에 부딪혀 우리는 중요한 2%를 잃어버렸습니다. 그 현실의 벽을 그 2%가 깨뜨릴 수 있는 것일 수도 있는데 말입니다.
창조주가 세상을 만들때 가졌던 사랑의 마음을 우리도 시스템 세계에서 살아갈 실체들을 사랑하는 마음으로 만들어야 합니다.
사랑하는 마음으로 만든다면 쉽게 함부로 만들 수 없을 것입니다. 그들이 행복하기를 바라니까요. 창조자의 창조 목적에 부합된 삶을 살아가는 목적지향적인 시스템 실체, 그것이야 말로 가장 행복한 실체입니다.
서삼정, ‘영성이 살아야 예수 믿는 맛이 난다’ 중에서 다음과 같이 말합니다.
삼위 하나님은 사랑이시다(요일 4:8). 그리고 하나님의 사랑은 넘쳐난다. 우리의 사랑이 넘쳐날 때 그 사랑을 나눌 사람을 필요로 하는 것 처럼 하나님도 인간이 필요하셨다. 그 넘쳐나는 사랑을 나누시기 위해 하나님은 이 세상을 창조하시기 이전에 인간을 계획하셨고(엡 4:1), 인간에게 필요한 모든 것을 먼저 창조하신 후에 마지막으로 인간을 창조하셨다.
생떽쥐베르는 완벽이란 더 이상 덧붙일 것이 없을 때가 아니라, 더 이상 아무것도 떼어낼 것이 없을 때 마침내 얻게 된다고 합니다. 소프트웨어 개발이 어떠해야 하는지 종지부를 찍습니다.
지금까지 쓴 글 중에서 다른 사람의 말을 가장 많이 인용한 글이네요.
소프트웨어 개발자 후배들에게 우리가 누구이며 어떤 자세를 가져야 하는지 당부하기 위해. – 김현남