Tag Archives: Mythical Man-Month

Confirmity

Conformity

Software people are not alone in facing complexity. Physics deals with terribly complex objects even at the “fundamental” particle level. The physicist labors on, however, in a firm faith that there are unifying principles to be found, whether in quarks or in unifiedfield theories. Einstein argued that there must be simplified explanations of nature, because God is not capricious or arbitrary.

No such faith comforts the software engineer. Much of the complexity that he must master is arbitrary complexity, forced without rhyme or reason by the many human institutions and systems to which his interfaces must conform. These differ from interface to interface, and from time to time, not because of necessity but only because they were designed by different people, rather than by God.

In many cases, the software must conform because it is the most recent arrival on the scene. In others, it must conform because it is perceived as the most conformable. But in all cases, much complexity comes from conformation to other interfaces; this complexity cannot be simplified out by any redesign of the software alone.

No Silver Bullet: Essence and Accidents of Software Engineering
by Frederick P. Brooks, Jr.

“Conformity”의 사전적 정의는 “따름, 순응”이고 “Conform”의 사전적 정의는 “구성원과 생각을 같이하다, 따르다/순응하다” 정도로 나타나있다. 그렇다면 브룩스가 언급한 소프트웨어의 특징인 conformity는 과연 어떤 의미일까. 영어 단어여서 그런지 내용에는 어느정도 이해가 되었는데, 그러한 생각들이 단어 하나로 쉽게 모이지를 않는다. 국내에 번역된 여러 사례들을 보면 “변형성, 적합성, 순응성” 등으로 다양하게 정의되고 있는데, 이러한 정의들은 서로 유사하기는 하나 완전히 겹치지 않기에 단어가 와 닿지 않는 나의 이 어려움은 어쩌면 당연한 현상일지도 모른다는 생각을 가져본다.

여튼 위의 참조 내용과 같이 브룩스에 의해 설명된 conformity의 의미를 브룩스의 설명에 맞추어 살펴보자면 “소프트웨어가 서로 다른 사람들에 의해 작성되기 때문에 필연적으로 발생하는 인터페이스의 차이-에서 발생하는 복잡도”를 conformity라는 단어로 분류하여 설명하고자 하고 있는 것으로 보인다.

브룩스의 글들은 큰 직관의 향상을 이끌 수 있는 근본적이면서도 중요한 개념들을 설명하고 있지만, 영어원문으로써의 그의 글은 생각보다 읽고 이해하기가 쉽지 않다. 그래도 이 책 한 권 정도는 언젠간 끈기를 갖고 완독해주는 노력을 들일 수 있어야 하겠다.