가짜 개발자 감별의 시대
'소프트웨어 개발을 해보는 것'은 어렵지 않은 일이다. 요즘은 어디서나 컴퓨터에 쉽게 접근할 수 있다. 시중에 널려 있는 미디어와 서적을 통해 누구나 쉽게 코드를 작성하고 실행해 볼 수 있다. 이 과정은 점점 더 쉬워지고 있다. 심지어 어떤 경우에는 자신이 프로그래밍을 하고 있는지도 모르고 있지만 뭔가 하다 보면 프로그램이 만들어지는 경우도 있다. 나는 이러한 현상이 좋은 것이라고 생각한다. 다양한 분야의 사람들이 참여하여 IT 개발에 대한 기본 콘셉트에 대해 배우고, 집단 지성을 발휘하여 좋은 소프트웨어들을 만들어나간다. 이렇게 세상이 더 좋은 방향으로 나아가는 것은 분명히 기뻐해야 하는 일임에 틀림없다.
때로는 이 낮은 진입 장벽 때문에 소위 말하는 '가짜 개발자'들을 많이 만나게 된다. '가짜'라는 표현을 쓰는 것에 대해 많이 망설였다. 이것은 마치 글을 쓰고 있는 나는 '진짜 개발자'라고 느껴질 수 있게 만들기 때문이다. 단언컨대 그런 뜻은 결코 아니다. 내가 생각하는 '가짜 개발자'는 두 가지 분류로 나눌 수 있다. 첫째는 문제를 푸는 것에는 관심이 없고 개발을 하는 행위 그 자체에만 관심이 있는 사람, 둘째는 너무나도 작은 자신의 세상에 갇혀서 더 큰 세상을 배우려고 하지 않는 사람이다.
문제를 푸는 것에는 관심이 없고 개발을 하는 행위 그 자체에만 관심이 있는 사람은 최신 기술, 화려한 기법들에 대해 이야기하면서 그것들을 정착시키기 위한 노력, 그리고 그것을 통한 프로젝트의 성공에는 관심이 없다. 이런 사람들은 자신들은 특별한 개발자라는 착각에 빠지기 쉽다. 최신 기술과 화려한 기법은 실용적인 것이어야 한다. 실용적이지 못한 것은 도태되기 마련이다. 도태된 것들은 빚으로 바뀌어 다른 개발자들을 힘들게 만들 것이다. 채용면접관을 하면서 얻은 인사이트로는 이런 사람들의 이력을 살펴보면 프로젝트 초창기의 달달한 시기에는 쓸데없이 과한 기술만 잔뜩 도입해 놓고 서비스 운영 한번 해보지 않고 다음 프로젝트나 회사를 찾아 떠나간다. 서비스를 제대로 운영해본 경험이 없으니 점점 더 자신을 증명할 방법은 화려함 밖에 없어지게 되는 것이다.
너무나도 작은 자신의 세상에 갇혀서 더 큰 세상을 배우려 하지 않는 사람은 안타깝다. 그들에게는 스스로의 전투력을 측정해볼 수 있는 기회가 없었던 것이 문제라고 생각한다. 이런 사람들은 대부분 서류에서 잘 거르지만 어쩌다 면접 자리에서 만나게 되면 그렇게 괴로울 수가 없다. 몇 마디만 나눠보면 갇혀 있는 세상이 보인다. 그렇다고 내가 더 큰 세상을 보라는 조언을 할 입장은 아니라고 생각한다. 채용 인터뷰 과정에서 만나는 것은 그나마 다행이다. 함께 일하는 프로 개발자가 이럴 경우에는 답이 없다. 주제넘게 더 배우고 오라고 말하는 것은 오만이다. 그렇다고 가르쳐 줄 수도 없다. 우물에 살고 있는 개구리는 바다를 알 수가 없다. 물론 바다에 사는 거북이도 우주를 알 수는 없다. 우리는 항상 하나의 가능성을 생각하고 살아야 한다. '내가 개구리 일수도 있고, 거북이 일 수도 있다'는 것이다. 내가 동료로 만나고 싶은 개발자는 항상 겸손하고 새로운 것을 배우려고 하며 자기 자신이 '가짜'일 수도 있다는 의심을 끊임없이 하는 사람이다.
나는 '자동차 운전'에서도 '낮은 진입장벽'으로 인한 단점을 볼 수 있다고 생각한다. 내 주변에는 자칭 자신이 운전을 잘한다고 하는 사람들이 많이 있었다. 사실 자동차는 핸들, 기어 조작, 엑셀레이터만 알고 있으면 누구나 길을 따라 달리게 할 수 있다. 운전을 잘한다는 것은 어떤 것일까? 달리는 차들 속을 이리저리 비집고 다니는 것?, 다른 차가 끼어들 공간을 주지 않도록 빈틈없이 달리는 것?, 주차를 잘하는 것? 나는 다 아니라고 생각한다. 내가 생각하는 운전을 잘하는 사람은 '자동차의 동작원리를 이해하고, 자신을 비롯한 주변의 안전에 대해 고민하고, 동승자를 배려하며, 최소한의 에너지로 목적지에 도달할 수 있는 방법에 대해 고민하는 것'. 이것들을 끊임없이 반복하며 자기 자신을 향상할 수 있는 사람이라고 생각한다.
낮은 진입장벽은 사람들로 하여금 쉽게 본인이 '진짜'라고 착각하게 만든다. 세상 모든 것에는 장점과 단점이 있지만 소프트웨어의 낮은 진입장벽으로 인한 단점이 그것의 장점을 극대화하는데 발목을 잡고 있는 현실이 안타까울 때가 많이 있다.
'진짜'가 되는 길은 자기 자신이 '가짜'일지도 모른다고 끝까지 의심하고 꾸준히 배우는 것이다.