본문 바로가기
Homo Ware

생각하지 않는 개발자들

by javauser 2011. 9. 14.
최근에 나온 '생각하지 않는 사람들'이라는 책에서 저자는 인터넷 매체의 발달이 '사고'와 '사색'을 통해 생각을 하는 뇌의 구조를 단편적인 지식과 체계에 순응하는 뇌의 활동으로 변화한다고 이야기하고 있다. 또한, 우리의 뇌의 기억 장치는 '단기 기억'을 위한 영역과 '장기 기억'을 위한 영역이 별도로 있으며, '장기 기억'은 결국 뇌의 해부학적인 모습을 바꾼다고 여러 실험의 예를 들어 설명하고 있다. 만일 뇌의 구조를 해석해서 어떠한 기억을 하고 있는지를 알아낼 수 있다면, 우리는 그 사람이 어떤 기억을 '장기 기억'으로 가지고 있는지를 알 수 있을 것이다.



하지만, 책에서 말하고 있는 장기 기억은 그 형성 과정에 있어서 인터넷 매체를 도구로 사용해서 형성하는 것과 책이나 싶은 사색을 통해서 형성하는 것과는 전혀 다른 결과를 낳는다고 말하고 있다. 체계에 순응하는 뇌는 결국 사고나 사색을 하는 기능을 잃어버림으로써 창의성이나 자발성과는 거리가 멀어지는 것이다.

프로젝트를 수행하다보면, 이러한 뇌 구조를 가지고 있는 개발자들을 목격한다는 것이 놀랍지 않다. 가이드에 나와있는 대로만 프로그래밍을 하려는 사람, 주어진 개발산출물 템플릿에만 맞추려는 사람, 자기의 영역만을 주장하고 타 영역은 배척하는 사람 등 많은 유형들을 볼 수 있다. 이러한 사람들의 특징은 무엇인가 창의적이거나 의미있는 것을 만들지 않는다는 것이다. 즉, 무엇인가를 주어지지 않으면 절대로 새로운 것을 만들어내지 않는 태도는 수동적인 성격인 탓이라고도 볼 수 있겠지만, 이 책을 읽으면서 결국 '생각하지 않는' 뇌 구조를 가진 사람일 수도 있겠다는 생각이 들었다.

책에서 말하듯이 우리 뇌의 형성 구조는 '체계에 순응하는' 형태로 작업을 하다보면 스스로 무엇인가 판단이나 결정을 할 수 있는 능력을 잃어버린다. 프로젝트를 수행하는데 있어서 수많은 산출물들과 작업을 일방적인 외부의 압력이나 결정된 결과를 가지고 수행하다보면 해당 작업을 수행하는 자율성을 과감하게 포기하게 되고, 이를 수행하는 개발자는 왜 그래야 하는지, 그리고 왜 그러한 산출물들을 만들어야 하는지에 대한 생각을 하지 못하게 된다. 일정과 진도율에 쫓겨서 합리적인 이유를 가지지 못하는 작업들은 결국 해당 작업을 한 사람이 한 일이 아닌 것이다. 작업을 하되 창의적인 노력과 생각을 하면서 작업을 할 수 있는 영역을 만들어 놓아서 그 공간 안에서는 자유롭게 수행할 수 있게 해야 한다.

전체 시스템을 하나의 큰 덩어리로 보고 A부터 Z까지 하나의 고정된 형식이나 (아키텍처) 구조, 템플릿만을 강요하다보면 일관성은 충분히 있겠지만 (사실 일관성이라는 단어 역시 모든 것을 통일하라는 의미로 잘못 사용되고 있다.) 그렇게 만들어진 시스템이 과연 사용자에게 가치있는 결과물을 인도할지는 의구심이 들 수 밖에 없다. 이러한 결과를 가중시키는 것 중에 하나는 '감리'를 들 수 있다. 모든 '감리'가 이와 같이 통일성을 강조한 일관성만을 강조한다고는 생각하지 않지만, 대부분의 '감리'에서는 문서에 나와있는 대로, 그리고 자율성을 인정하지 않는 영역만을 문제로 삼아서 지적을 하는 경우가 많다. 패키지 명이 설계에 잘못되어 있다면 개발 완료 시점에 바꾸면 되는 간단한 문제와 같이(그리고 이러한 문제는 side effect가 거의 없는 부분이다) 너무나도 사소한 영역에 모든 일관성의 잣대를 들이대는 것이 과연 좋은 아키텍처나 좋은 SW를 만드는데 얼마나 유용한지는 한번쯤 생각해볼 문제이다.

개발자들에게는 충분한 자율을 주어주는 노력이 필요하다. 그리고, 그러한 자율을 주어주려면 충분히 사색하고 사고할 수 있는 환경 역시 중요하다. 개발자들의 뇌를 생각할 수 있는 형태의 구조로 만드는 것이 프로젝트를 담당하고 있는 모두의 책임이기도 하다. 
반응형