Blog

Technology-Agnostic

Architectural Playground

Juun

Playground
  1. Blog
  2. Article

The Three Discovery Layers of Organizational Dysfunction

소프트웨어 아키텍쳐가 드러내는 조직의 병폐: 누가, 어떻게 발견할 수 있을까?

Organizational Indicator

조직 경영의 척도는 제품의 판매량이나 이익률, 수익률, 고객 만족도, 퇴사율 등 측정 가능한 지표들이 기준이 된다. 이들은 조직 상태를 나타내는 중요한 신호지만, 공통적인 한계를 갖는다. 이들은 모두 후행 지표(lagging indicators) 다. 문제가 이미 발생한 후에야 측정값에 반영되며, 고객이 평가를 남겨야, 직원이 퇴사하고 나서야 그 결과를 확인할 수 있다.

그런데 소프트웨어에서는 그가 갖는 특징들(Visibility, Fluidity, Bidirectional)로 인해 architecture 가 조직의 상태를 드러내는 지표가 된다. 그러나 이는 다른 보편적인 경영 지표들과는 다른 점이 존재한다. Architecture 에 존재하는 구조적 문제는 임시적인 해결책으로 우회할 수 있기 때문이다. 다시 말해, architecture 에서는 최종 제품에서 드러나지 않는 문제를 발견할 수 있기에 선행 지표(leading indicators) 가 될 수 있는 것이다.

팀 간의 소통이 단절되었을 때, 이는 고객 만족도나 퇴사율에 먼저 나타나지 않는다. 하지만 코드베이스에서는 모듈 간 중복된 로직으로, 제대로 정렬되지 않은 인터페이스로, 특정 영역에 쌓여가는 기술 부채로 나타난다. 제품은 여전히 작동하고, 고객은 불편함을 느끼지 못할 수 있다. 하지만 architecture 는 이미 쇠퇴한 상태를 내비친다.

이는 architecture 를 독특한 진단 도구로 만든다. 문제가 제품의 결함으로, 고객의 불만으로, 매출의 감소로 번지기 전에 발견할 수 있는 기회를 제공하는 것이다.

The Three Layers

Architecture 가 조직 상태를 나타낸다고 해도, 모두가 이를 읽어낼 수 있는 것은 아니다. 접근 가능한 정보의 차이에 따라서 인식할 수 있는 범위와 취할 수 있는 행동에도 차이가 생긴다.

1. User Layer

조직 외부, 사용자의 입장에서는 완성된 제품이나 외부에 공개된 조직 내부 정보 등, 접근할 수 있는 정보가 극히 제한적이다. 그렇지만 이전 글에서 살펴봤던 게임 업계 사례에서와 같이, 사용자들은 제품에서 경험적으로 무엇인가가 잘못되었음을 느낄 수 있다. 여기서는 Conway's Law 가 기존 방식대로 적용된다. 제품이 기능적으로 작동하지만, 무엇인가 결락된 그 느낌은, 조직의 결함이 시스템에 나타나며 생긴다고 볼 수 있다.

사용자들은 이 느낌에 대해, 다른 플랫폼으로 이동하거나 비판적인 평가를 남기는 등 시장의 동향에 영향력을 가지며, 이는 후행 지표로 나타난다. 게임 업계에서 사용자들의 경험적 평가가 두드러지게 나타나는 이유가 여기에 있다. 기능이 아닌, **"감각과 인식 그 자체"**를 판매하는 업계 특성 상, 소비자들이 가장 민감하게 반응할 수 밖에 없는 것이다.

2. Engineer Layer

코드 베이스와 architecture 에 접근할 수 있는 시점부터 상황은 크게 변한다. 구조를 개선하지 못하고 임시방편으로 우회하여 작동하는 기능, 코드 변경의 영향 범위를 예측할 수 없는 상황 등은 architecture 의 결함을 대표한다. 이는 즉발적으로 나타나는 문제가 아니다. 구조를 개선하려는 시도가 묵살되는 상황이 지속되고 기능만 작동하게끔 적용한 미봉책이 축적되면서 architecture 에 흠집을 내기 시작하는 것이고, 이것이 쌓여 기술 부채의 형태로 나타난다.

이는 소통이 단절된 지점(조직 결함)을 architecture 를 통해 진단할 수 있으며, 파악한 문제점이 제품 전반적으로 전파되는 상황을 사전에 방지할 수 있는 선행 지표로서 기능할 수 있게 됨을 뜻한다. 이는 조직 내부에서, architecture 의 한계를 극복하기 위한 조직 구조 개편(Inverse Conway Maneuver)이나 끊어진 소통 채널을 복구하는 등의 노력으로 처방적(prescriptive) 해결책을 제시할 수도 있다.

"모듈의 역할이 불분명하다"거나, "의존성이 기형적이다"와 같은 단순한 기술적 불평을 넘어서, "팀의 ownership 이 명확하게 정의되지 않았다", "두 팀 간의 소통 구조에 문제가 있다"와 같이 조직 차원의 전략을 제시할 수 있는 셈이다.

3. Executive Layer

경영진들은 조직 그 자체에 직접적인 영향을 미칠 수 있는 권한이 있는 만큼, architecture 를 조직 경영의 핵심 지표(KPI, Key Performance Indicator)로 삼아야 한다. 이는 기술적인 세부 사항을 모두 이해하라는 말이 아니다. Software Architecture 가 갖는 유동성의 의미를 받아들이고, 기술 구성원들의 architecture 에 대한 불만이 조직 구조와 직결되는 문제임을 직시해야 한다는 뜻이다. 조직의 소통 구조가 실시간으로 투영되는 거울로서, architecture 에 민감하게 반응하여 선제적인 처방(proactive prescription)을 내린다면, 시스템이 후행 지표들에 영향을 미치기 전에 미리 손을 써둘 수 있게 되는 것이다.

"이 모듈은 너무 복잡하다", "기능 확장에 있어 인터페이스 충돌이 발생한다" 와 같이 구성원들이 보내는 기술적인 신호는 조직 구조와 필연적인 관계를 갖는다는 점을 인식한 후에야, 비로소 architecture 를 선행적 핵심 지표로 활용할 수 있을 것이다.

Jamie Zawinski

The Netscape I cared about was dead. - Jamie Zawinski

1990 년대 인터넷 브라우저를 이끌었던 Netscape 와 Mozilla.org 의 창업자인 Jamie Zawinski 는 1999 년 사직 성명문을 발표했다. 그는 1998 년에 Microsoft 와의 브라우저 경쟁에서 밀려나 정리해고를 감행한 Netscape 의 상황을 언급하며, 그 원인을 **조직의 병폐(Organizational Dysfunction) **로 지목했다. 그는 조직의 규모가 커져감에 따라 회사는 느려지며 창의성을 잃어갔고, 경영진이 내린 오픈 소스 전환 대상의 코드 공개 결정을 납득할 수 없었다고 실망하면서, 코드베이스와 architecture 측면에서의 문제를 몇 가지 나열했다.

  • 불완전한 소스 코드 공개: 오픈 소스 프로젝트인 Mozilla 에서 실제 작동하는 코드가 아닌, 핵심 기능도 누락된 상태의 버그 투성이 코드를 공개, 기여자들이 자신의 코드가 작동하는지를 확인할 수도 없는 상황 초래
  • 지나치게 비대한 구조와 레거시 코드의 복잡성: 복잡하게 얽힌 구조와 남발된 미봉책으로 지나치게 높아진 진입 장벽이 외부의 유입에 큰 장애물이 됨
  • 전면 재작성 부작용: 새로운 레이아웃 엔진인 Gecko/Raptor 로의 전환은 브라우저의 거의 모든 기능을 재작성을 야기했으며, 이는 6-10 개월의 개발 상황 후퇴를 불러옴

Jamie Zawinski 는 사직서를 제출하기 14 개월 전, 이미 조직의 결함을 architecture 에서 느끼고 있었다. 하지만 창업자(Founder)의 신분임에도 불구하고, 그는 조직이 성장하며 이미 자리잡은 관행적인 BA(Business Administration) 시스템을 뒤집을 만한 vocabulary를 갖지 못했다. 경영진이 "시장 점유율"이라는 후행 지표에 쫓겨 급하게 내린 결정은, 그가 architecture 에서 목격하고 있던 선행적 붕괴를 가속화했을 뿐이다. 그는 architecture 가 고착화되어 고여가는 모습을 지켜보며 절망하고 절규했지만, 이를 멈출 경영적 언어의 부재로 결국 자신이 세운 회사에서 인지적 소외을 겪으며 떠날 수 밖에 없었다.

The Departure

Jamie Zawinski 의 퇴사는 단순한 한 개인의 이탈이 아니었다. 직접 세운 조직의 architecture 변화를 몸소 체감하고, 산발적으로 발생한 균열을 어떻게든 메꾸며(masking) 시스템을 지지하던 기둥이 무너진 것과 다름 없었다. 비극적인 사실은, 이러한 인지적 소외 속에서도 시스템이 작동했다는 점이다. Architecture 및 조직의 결함은 구성원 개인의 능력으로 잠시나마 가려질 수 있다. 하지만 이것이 누적되면, 아무도 발을 들일 수 없는 공동지대가 생기기 시작하고, 이것들이 누적되어 시스템의 기능 결함을 야기한다. 조직의 빈틈을 어떻게든 건너다니던 다리들은 구성원 개인들이 마련한 임시방편에 불과하기에, 그들이 떠나면 그대로 기술 부채로 남아버리게 되는 것이다.

At this point, I strongly believed that Netscape was no longer capable of shipping products. Netscape's engineering department had lost the single-minded focus we once had, on shipping something useful and doing it fast. That was no longer happening. Netscape was shipping garbage, and shipping it late. - Jamie Zawinski

이는 더이상 Jamie Zawinski 개인의 사직 성명문이 아니었다. 그는 조직에 대한 사망 선고를 내린 것과 다름 없었다.

DateJanuary 09, 2026
Tags
AnalysisConwayEpistemologyInsubjectivityLeading IndicatorsOrganizationSoftware Architecture
Share article
The Three Discovery Layers of Organizational Dysfunction