대선이 가까와 오면서 보수와 진보의 이념 대결은 이제 뚜렷해지게 나타날 것이다. IT 관점에서도 보수와 진보를 구분할 수 있을까? 이러한 물음에 Amazon에서 일했던 경험을 가지고, 현재 Google에 근무 중인 Steve Yegge이 올린 최근 글이 이슈로 부각되는 것 같다. Steve는 이전에도 구글+ 에 대한 빈판의 글(번역본)을 올려서 외부 유출이 되는 바람에 화제가 되기도 했었는데, 글을 읽어보면 구글+에 대한 비판의 목소리와 함께 플랫폼의 중요성을 아마존이나 다른 서비스에 대해 빗대어서 말한 것 같다. 언론이 일부글들은 인용하면서 그의 글은 본의 아닌 목적으로 사용되기도 한 모양이다.
[출처 : http://www.bablotech.com/2009/01/26/12-wallpapers-in-which-linux-criticizes-windows/]
이번에 작성한 글에서는 '소프트웨어 엔지니어링은 보수(conservative)에서 진보(liberal)까지 그 자체로 정치적인 축을 가진다'는 명제(thesis)에서 출발했다. 물론, 이분법적인 사고에 대한 문제와 실세계의 정치적인 성향과의 관계에 대해서는 논할 부분들이 많을 것이지만(사실, 이를 증명하는게 크게 의미없다고 생각하지만), 실제로 Steve가 생각하는 소프트웨어를 만드는 입장에서 보수(conservatism)와 진보(liberalism)이 무엇인지를 정리하면 다음과 같다.
보수적인 측면
- 위험관리에 대해 적극적으로 대처하고 사전에 없애려는 노력을 함
- 유연성(flexibility)과 생산성(productivity)보다 안정성(safety)과 성능(performance)를 더 우선시 함
진보적인 측면
- 효과적인 변경이 더 강력한 동기이며, 이를 위한 시스템을 만듬
- 시스템의 유연성을 극대화시키는 동시에, 기능 개발의 속도를 최대화시키는 것을 목적으로 함
이와 같이 총 9가지의 항목으로 구성된 보수/진보적인 내용들을 기준으로 개발자의 성향을 점검해 볼 수 있다. 항목들을 자세히 보면 보수적인 측면과 진보적인 측면 모두 동의할 부분들이 있으며, 어느 것을 더 동의할 것인가가 성향을 나타내는 것이지만, 이와 같은 성향이 SW 개발에 있어서 영향을 미치는 것은 사실이다. 즉, 설계에 대한 믿음과 사상이 바로 이러한 성향들이 다소 반영된 형태로 나타나기 때문이다.
이러한 측정 기준의 결과로 "비정치적", "보수적", "중립", "진보적"의 4가지 성향을 분류했고, 양극단의 머리를 두는 중립파를 추가로 분류했다. 또한, 언어에 따라서 어떤 성향을 띠고 있는지에 대해서는 예시를 들었고, 페이스북, 아마존, 구글, MS 등의 기업 문화에 대해서도 사례를 들고 있다.
사실, 국내 현실에서 이러한 보수와 진보적인 측면에 대해서 나누는 것은 큰 의미가 없을 수 있다. 왜냐하면 기술에 너무 종속되어 버린 SW 엔지니어링 분야에서 SW 란 단순히 무엇을 이루기 위한 도구나 수단으로 생각하는 경향이 너무나도 강해서 이러한 보수와 진보를 나누는 것에는 거의 관심이 없는 것처럼 보일 수 있다. 하지만, 무엇보다 그러한 기술을 이루는 아키텍처 설계가 어떠한 관점으로 접근할 것인지가 SW가 가지는 큰 특징을 가진다. 특히, 개발 프로세스에서도 이러한 보수/진보의 성향에 따라서 어떠한 접근법을 취할 것인지가 분명하게 나눌 수 있는 부분이 있기 때문에 설계를 하는 과정에서는 중요한 요인인 것들도 있다.
Steve Yegge는 개발자들이 사고하는 방식을 분류한다는 차원에서 꽤 생각해볼 만한 내용이다. SW 개발을 할 때에 이러한 사고에 대한 절차를 명확하게 보여줄 수 있는 방법과 방식이 필요하며, 해당 설계가 어떠한 관점과 사상에서 출발했는지를 알려줄 필요가 있다. 어느 한쪽이 더 좋고 나쁘다고 말할 수는 없지만, 그리고 이러한 분류에 속한 기술이나 언어들 역시 상황에 따라서 바뀔 수도 있지만, 가장 중요한 내용은 프로그래머라면 자신이 설계하고 구현하고자 하는 SW에 대한 강력한 믿음과 사상을 가져야 한다는 것이다. 그리고, 어떤 형태로든 이러한 내용이 표현되고 설득시키고 가시화시킬 필요가 있다.
'Homo Ware' 카테고리의 다른 글
분명 누구나 한계는 존재하지만, 한계를 뛰어넘는 사람도 존재한다. (0) | 2012.09.13 |
---|---|
요리법이 맛있는 요리를 보장하지 않는다. (2) | 2012.08.30 |
도구가 문화를 만들지 못한다. (0) | 2012.08.21 |
현장에서 문제 해결을 찾는다. (0) | 2012.08.18 |
개인임무카드와 지휘관의 의도 - SW 계획과 실행의 모순 (0) | 2012.07.21 |