1.5 의사결정과 거버넌스
개요와 동기
모든 소프트웨어 시스템은 수천 개의 결정의 합입니다. 어떤 데이터베이스를 쓸지, 어떤 아키텍처를 택할지, 어떤 라이브러리를 쓸지, 만들지 살지, 언제 부채를 지고 언제 갚을지입니다. 거버넌스는 이런 결정을 잘, 그리고 일관되게 내리고, 병목을 만들지 않으면서 적절한 사람들을 참여시키고, 훗날의 팀이 같은 것을 다시 배우는 운명에 처하지 않도록 이유를 보존하는 방법입니다. 작은 팀에서는 결정이 대화로 이루어지고 공유된 기억에 삽니다. 규모가 커지면 그 기억이 증발합니다. 사람들이 떠나고, 팀이 개편되고, 중요한 선택의 “이유”가 사라져서 후임자들은 그것을 맹목적으로 따라 하거나 무턱대고 뜯어내게 됩니다. 좋은 거버넌스는 크고 변하는 조직 전반에서 결정을 보이게 하고, 숙고되게 하고, 오래 남게 하는 기계장치입니다.
큰 팀의 핵심 과제는 자율성과 정렬 사이의 균형입니다. 모든 결정을 중앙 위원회로 올리면 일관성은 얻지만 치명적인 병목과 권한을 잃은 팀이라는 대가를 치릅니다. 모든 결정을 아래로 내리면 속도는 얻지만 호환되지 않는 기술, 중복된 노력, 되풀이되는 실수라는 혼란을 치릅니다. 성숙한 답은 중앙 집중도 무정부도 아닙니다. 계층화된 모델입니다. 팀은 잘 표시된 “포장된 길(paved road)” 안에서 대부분을 현지에서 결정하고, 가벼우면서 투명한 프로세스가 진정으로 횡단적이고 되돌리기 어려운 선택을 다스립니다. 목표는 좋은 결정을 쉬운 기본값으로 만들고, 희소한 거버넌스의 관심을 정말 중요한 곳에만 쓰는 것입니다.
기업과 정부는 더 높은 이해관계를 안고 있습니다. 문서화되고 방어 가능한 결정을 요구하는 감사자, 규제 기관, 감독 기관을 만족시켜야 합니다. 시간 지평이 길어서, 잘못된 아키텍처 선택이나 관리되지 않은 기술 부채 더미가 10년 동안 부담이 될 수 있습니다. 조달과 컴플라이언스 의무 때문에 자체 개발 대 구매 결정은 특히 중대하고 되돌리기 어렵습니다. 이런 조직에서 규율 있고 잘 기록된 의사결정은 그 자체를 위한 관료주의가 아닙니다. 위험 관리이고, 조직의 기억이며, 책임성의 토대입니다.
핵심 원칙
- 결정과 그 이유를 기록하십시오. 이유 없는 결정은 부채입니다.
- 명확한 가드레일 안에서, 맥락을 가진 가장 낮은 수준으로 결정을 내리십시오.
- 프로세스의 무게를 결정의 무게와 되돌릴 수 있는 정도에 맞추십시오.
- 되돌릴 수 있는(“양방향 문”) 결정과 되돌릴 수 없는(“일방향 문”) 결정을 구분하고 다르게 다스리십시오.
- 건건이 승인하기보다 포장된 길과 기본값을 선호하십시오.
- 기술 부채를 숨겨야 할 도덕적 결함이 아니라 관리되는 포트폴리오로 다루십시오.
- 거버넌스를 투명하게 하십시오. 숨겨진 의사결정은 불신과 재작업을 낳습니다.
권장 사항
아키텍처 결정 기록과 적정 규모의 RFC 프로세스를 도입한다
아키텍처 결정 기록(ADR)은 하나의 중요한 결정을 담은 짧고 불변인 문서입니다. 그 맥락, 검토한 선택지, 내린 선택, 결과를 담습니다. ADR을 코드와 함께 버전 관리에 보관하여 이유가 시스템과 함께 이동하게 하십시오. 결정 전에 의견이 필요한 결정에는 가벼운 RFC(의견 요청) 프로세스를 쓰십시오. 제안을 돌리고, 정해진 기간 동안 의견을 받고, 그다음 결정하고 기록합니다. 둘 다 가볍게 유지하십시오. 가치는 정교한 템플릿이 아니라 사고와 오래 남는 기록에 있습니다. ADR과 RFC는 함께 암묵적이고 잊히던 이유를 검색 가능한 조직의 기억으로 바꿉니다.
관문지기가 아니라 포장된 길로 다스린다
결정을 하나하나 검토하는 대신 “포장된 길”에 투자하십시오. 팀이 거의 마찰 없이 충분한 지원을 받으며 채택할 수 있는, 승인되고 잘 지원되는 기본값의 집합입니다. 승인된 언어, 프레임워크, 배포 파이프라인, 패턴입니다. 포장된 길에 머무는 팀은 거버넌스가 거의 필요 없습니다. 안전하고 규정에 맞는 선택이 쉬운 선택이기도 하기 때문입니다. 정말 벗어날 이유가 있는 팀은 벗어날 수 있지만, 추가 책임과 가벼운 검토를 감수합니다. 이 “골든 패스” 모델은 중앙 위원회가 모든 것을 승인하는 것보다 훨씬 잘 확장됩니다. 거버넌스를 건건이 관문을 지키는 방식에서 잘 설계된 기본값으로 옮기기 때문입니다.
아키텍처 검토 위원회는 드물게, 투명하게 쓴다
아키텍처 검토 위원회나 그에 상응하는 조직은 가장 크고, 가장 횡단적이거나, 가장 되돌리기 어려운 결정과, 포장된 길을 규정하는 표준을 정하는 데에 정당한 역할이 있습니다. 범위는 좁게, 기준은 공개하고, 프로세스는 빠르고 자문적으로 유지하십시오. 일상적인 작업의 필수 병목이 되어서는 안 됩니다. 위원회의 일은 일관성을 지키고 지식을 공유하는 것이지 모든 선택을 승인하는 것이 아닙니다. 위원회가 모든 프로젝트가 기다려야 하는 대기열이 되면 실패한 것입니다. 과감하게 위임하고, 중앙 검토는 정말 필요한 소수의 결정에 남겨 두십시오.
자체 개발-구매-도입을 의도적인 분석으로 만든다
중요한 역량마다 세 가지 길을 저울질하십시오. 사내에서 만들기, 상용 제품 구매, 오픈 소스 솔루션 도입입니다. 역량이 진정한 차별 요소이고 사명의 핵심일 때는 만드십시오. 다른 곳이 더 잘하는 차별성 없는 역량은 사거나 도입하십시오. 초기 가격이 아니라 총소유비용(TCO)을 계산하십시오. 구매에는 라이선스, 통합, 종속(lock-in) 비용이 듭니다. 개발에는 끝없는 유지보수와 인력이 듭니다. 오픈 소스를 도입하면 지원과 보안 추적의 의무가 생깁니다. 상황이 바뀔 때 다시 살펴볼 수 있도록 결정과 그 전제를 ADR로 기록하십시오.
기술 부채를 포트폴리오로 관리한다
기술 부채는 본질적으로 나쁜 것이 아닙니다. 더 빨리 출시하려고 부채를 지는 것이 올바른 판단일 때도 있습니다. 나쁜 것은 관리되지 않고, 보이지 않고, 잊힌 부채입니다. 중요한 부채의 명시적 목록을 유지하십시오. 항목마다 그것이 부과하는 비용(지속적인 “이자”)과 고치는 비용을 적으십시오. 그런 다음 금융 포트폴리오처럼 관리하십시오. 팀을 매일 느리게 하는 고이자 부채는 갚으십시오. 안정된 구석의 저이자 부채는 용인하십시오. 부채 결정을 우연이 아니라 의식적으로 내리십시오. 부채를 갚는 데 쓰는 상시적인 역량의 비율을 따로 떼어 두어, 위기로 불어나지 않게 하십시오.
되돌릴 수 있는 결정과 없는 결정을 구분한다
모든 결정이 같은 숙고를 받을 자격이 있는 것은 아닙니다. 되돌릴 수 있는 “양방향 문” 결정은 쉽게 취소할 수 있으니, 팀이 행동 편향을 가지고 빠르고 현지에서 내리십시오. 이를 두고 고민하면 시간을 낭비하고 학습을 늦춥니다. 되돌릴 수 없거나 되돌리는 비용이 큰 “일방향 문” 결정, 즉 공개 API 계약, 대규모 데이터 모델, 수년짜리 벤더 약정은 느리고 신중한 시니어의 숙고와 기록된 이유를 받을 자격이 있습니다. 결정을 이렇게 분류하는 것은 가장 지렛대 효과가 큰 거버넌스 습관 중 하나입니다. 희소한 정밀 검토를 효과가 있는 곳에 겨누고, 나머지 모든 것을 막힘에서 풀어 줍니다.
장단점
| 거버넌스 접근 방식 | 장점 | 단점 |
|---|---|---|
| 모든 것을 중앙 검토 위원회가 | 최대의 일관성과 감독 | 심각한 병목. 팀의 권한을 빼앗음. 느림 |
| 현지 자율성을 둔 포장된 길 | 확장됨. 빠름. 안전한 기본값. 팀에 권한 부여 | 선행 플랫폼 투자가 필요. 일부는 길을 벗어남 |
| 거버넌스 없는 완전한 팀 자율 | 빠름. 높은 소유 의식 | 파편화, 중복, 되풀이되는 실수 |
| ADR / RFC | 오래 남는 기억, 더 나은 결정, 투명성 | 쓰는 오버헤드. 유지하지 않으면 무시됨 |
| 조달 선택 | 장점 | 단점 |
|---|---|---|
| 개발 | 완전한 통제. 정확히 맞음. 차별화 가능 | 끝없는 유지보수와 인력 비용 |
| 구매 | 빠름. 지원됨. 다른 곳이 유지보수 | 라이선스 비용, 종속, 불완전한 적합 |
| 도입 (오픈 소스) | 라이선스 비용 없음. 들여다볼 수 있음. 커뮤니티 | 지원과 보안 부담이 내 몫 |
통합하는 트레이드오프는 통제 대 속도, 중앙의 일관성 대 현지 자율성입니다. 모든 거버넌스 선택은 이 스펙트럼 위에 있습니다. 권장하는 자세인 포장된 길과 되돌릴 수 있는 정도에 기반한 위임은 자율성의 속도 대부분을 의도적으로 사면서 중요한 일관성은 지킵니다. 정렬된 선택을 쉬운 선택으로 만들고, 무거운 프로세스는 드문 되돌릴 수 없는 결정에 남겨 두는 방식으로 그렇게 합니다.
팀과 논의할 질문
어떤 결정이 일방향 문인지 누가 정하며, 양쪽 방향의 잘못된 분류를 어떻게 잡아낼 것입니까? 되돌릴 수 있는 정도로 결정을 분류하는 것은 지렛대 효과가 가장 큰 거버넌스 습관 중 하나이며, 잘못 라벨을 붙이면 그 가치는 무너집니다. 되돌릴 수 있는 선택을 되돌릴 수 없는 것으로 취급하면 숙고 속에 익사시키고, 되돌릴 수 없는 것을 되돌릴 수 있는 것으로 취급하면 싸게 취소할 수 없는 데이터 모델이나 공개 API 계약을 내보내게 됩니다. 상충하는 위험은, 일에 가장 가까운 사람은 속도에 편향될 수 있고 중앙 위원회는 신중함에 편향될 수 있다는 것입니다. 각 결정을 되돌리는 데 시간과 돈이 실제로 얼마나 들고 그 비용을 누가 지는지 구체적인 예를 논의에 가져오십시오. 기업과 정부 환경에서는 조달 약정과 대규모 데이터가 처음에는 되돌릴 수 있어 보였던 많은 선택을 일방향 문으로 바꿉니다. 누가 분류할지 합의하고, 경계에 가까운 모든 것에 빠르게 두 번째 의견을 구하는 습관을 들여, 희소한 정밀 검토가 되돌리는 비용이 실제로 큰 곳에 닿게 하십시오.
포장된 길을 누가 소유하고, 자금을 대고, 인력을 대며, 무엇이 그것이 관문지기로 퇴화하는 것을 막습니까? 포장된 길은 승인된 기본값이 정말로 잘 지원되고 대안보다 쉬울 때에만 작동하며, 이는 투자를 줄이기 쉬운 지속적인 투자를 요구합니다. 트레이드오프는 분명합니다. 자원이 부족한 포장된 길은 지원 없는 의무의 집합이 되며, 이것이 바로 그 모델이 대체하려던 관문 지키기이고, 팀은 그것을 우회합니다. 길의 건강에 대한 증거를 가져오십시오. 채택률, 승인된 도구가 얼마나 최신인지, 플랫폼 팀이 얼마나 빨리 응답하는지, 팀이 길을 벗어나겠다고 얼마나 자주 신청하는지입니다. 크고 규제를 받는 조직에서 포장된 길은 규정에 맞는 선택이 쉬운 선택이 되는 방법이기도 하므로, 그 재원은 단순한 편의가 아니라 컴플라이언스 투자입니다. 명확한 소유자와 상시 예산을 정하고, 팀이 그 길이 정말로 가장 쉬운 길이어서 선택하는지 측정하십시오.
어디에서 팀이 거버넌스를 우회하고 있으며, 그 그림자 IT는 무엇을 말해 줍니까? 팀은 공인된 경로가 우회로보다 고통스러울 때 그것을 피합니다. 그래서 만연한 그림자 IT는 규율의 문제라기보다 거버넌스 설계에 대한 평결입니다. 상충하는 고려는 실제입니다. 일부 회피는 무모하지만, 상당수는 몇 주 걸리는 대기열이 된 검토 위원회를 합리적으로 피하는 것입니다. 증거를 가져오십시오. 어떤 승인이 건너뛰어지는지, 어떤 비공식 도구가 조용히 퍼졌는지, 공식 경로가 실제로 얼마나 걸리는지입니다. 기업과 정부 맥락에서는 승인되지 않은 도구가 법적 무게를 지닌 감사, 보안, 조달 의무를 위반할 수 있어 위험이 더 큽니다. 패턴이 사람들이 병목을 우회하는 것을 보여 준다면, 해법은 승인을 더하는 것이 아니라 포장된 길을 빠르고 넓게 만들고 위원회의 범위를 횡단적이고 되돌릴 수 없는 소수의 결정으로 줄이는 것입니다.
전달 역량의 얼마가 실제로 기술 부채를 갚는 데 쓰이며, 가장 먼저 겨냥해야 할 고이자 항목의 이름을 댈 수 있습니까? 기술 부채는 복리 이자처럼 행동하여 모든 미래 변경에 조용한 세금을 매기고, 큰 조직은 시스템이 느리고 수정하기 취약해졌음을 누가 알아채기까지 수년을 짊어질 수 있습니다. 상충하는 압력은 단호합니다. 부채에 쓴 모든 시간은 리더십이 볼 수 있는 기능에 쓰지 못한 시간이므로, 마감이 조여 오면 상환이 가장 먼저 잘립니다. 실제 증거를 논의에 가져오십시오. 중요한 부채의 서면 목록, 각 항목이 부과하는 지속 비용과 고치는 비용에 대한 솔직한 추정, 최근 역량 중 새 작업 대비 상환에 쓴 실제 비율입니다. 10년 지평의 기업과 정부 기관에서 관리되지 않은 부채는 결국 값비싼 재작성이나 감사 지적을 강제하므로, 상시 상환 배정을 위험 관리로 다루고 일정이 밀릴 때 누가 그것을 지킬지 정하십시오.
2년 전에 내린 결정의 이유가 필요할 때 실제로 찾을 수 있으며, 그 기록을 살려 두는 사람이 있습니까? 아키텍처 결정 기록의 모든 가치는 이유가 그것을 만든 사람들보다 오래 산다는 점에 있으며, ADR이 한 번 쓰이고 검색되지 않으며 조용히 낡아 가면 그 가치는 무너집니다. 긴장은 결정의 순간에 맥락, 선택지, 결과를 포착하는 데 드는 글쓰기 규율과, 그냥 출시하고 넘어가려는 일상의 압력 사이에 있습니다. 구체적인 시험을 논의에 가져오십시오. 최근의 중요한 결정 셋을 골라 누군가 기록된 이유를 몇 분 안에 찾을 수 있는지 보고, 대체된 ADR이 현행 관행과 조용히 모순되지 않고 그렇게 표시되어 있는지 확인하십시오. 기업과 정부 환경에서 그 검색 가능한 기록은 감사자와 감독 기관이 요구하는 방어 가능한 증거 그 자체이므로, ADR이 어디에 있고, 누가 검토하며, 무엇이 기록할 만큼 중요한 결정인지 정하십시오.
중대한 자체 개발 대 구매 결정을 원래의 전제에 비추어 마지막으로 다시 연 것은 언제였으며, 그 전제가 만료될 때 알아챌 수 있겠습니까? 조달 선택은 여러분이 내리는 가장 비싸고 되돌리기 어려운 결정에 속하며, 그 뒤의 전제(벤더의 가격, 자사의 인력, 오픈 소스 선택지의 성숙도)는 결정이 얼어붙은 채로 조용히 낡습니다. 상충하는 고려는 전환의 매몰 비용과 혼란 대 종속, 불완전한 적합, 더는 원치 않는 유지보수 부담의 늘어나는 비용을 저울질합니다. 원래의 ADR과 그에 명시된 전제, 라이선스, 통합, 인력, 이탈 비용을 포함한 각 경로의 현재 총소유비용 추정, 가격 변경이나 지원 등급 하향 같은 전제가 바뀌었다는 신호를 가져오십시오. 정부와 규제 대상 구매자에게는 조달 규칙과 다년 계약이 이런 일방향 문을 특히 구속력 있게 만들므로, 맹목적인 갱신이 아니라 의도적인 재결정을 강제할 촉발 조건과 주기에 미리 합의하십시오.
분야별 관점
스타트업. 거의 아무것도 통제하지 말고 속도에 크게 기대십시오. 되돌릴 수 있는 양방향 문 선택은 책상에서 결정하고 넘어갑니다. 유일한 거버넌스 습관은 핵심 데이터 모델이나 기반이 되는 벤더 같은 소수의 일방향 문에 남겨 두고, 각각을 한 단락으로 기록해 훗날 동료가 처음부터 다시 따지지 않게 하십시오. 검토 위원회와 포장된 길은 아예 건너뛰십시오. 여러분의 규모에서는 감당할 수 없는 오버헤드이고 팀 전체가 이미 맥락을 공유하고 있기 때문입니다.
소기업. 상주 아키텍트가 없으니 자체 개발 대 구매를 핵심 거버넌스 질문으로 삼고, 선호가 아니라 총소유비용으로 답하십시오. 핵심 차별 요소가 아닌 모든 것은 잘 지원되는 도구를 사거나 도입하는 것을 기본으로 하십시오. 끝없는 유지보수는 가장 짊어지기 어려운 비용이기 때문입니다. 소수의 중대한 선택 뒤의 이유가 핵심 인물이 떠나도 살아남도록 가벼운 결정 로그 하나를 유지하십시오.
대기업. 문제는 많은 팀에 걸친 자율성과 정렬의 균형이므로, 재원이 마련된 포장된 길에 투자하고, 진정으로 횡단적이고 되돌릴 수 없는 결정을 위해 좁고 빠른 아키텍처 검토 위원회를 남겨 두십시오. ADR을 표준화하여 이유가 검색 가능한 조직의 기억이 되게 하고, 기술 부채와 조달 선택을 상시 예산을 가진 포트폴리오로 관리하십시오. 팀이 가장 쉬워서 그 길을 선택하는지 측정하고, 대기열로 퇴화한 위원회는 줄이십시오.
정부. 문서화되고 방어 가능한 결정은 여기서 선택 사항이 아닙니다. 감사자와 감독 기관은 모든 중대한 선택 뒤의 이유, 저울질한 선택지, 전제를 볼 수 있기를 기대합니다. 자체 개발 대 구매를 기록된 총소유비용 분석으로 수행하고, 단일 공급자 종속을 제약하는 조달 규칙을 존중하며, ADR을 감사에 대비된 증거 기록으로 유지하십시오. 긴 시간 지평을 진지하게 다루십시오. 오늘 내린 데이터 모델이나 벤더 약정이 조직을 10년 동안 구속할 수 있으므로, 이를 일방향 문으로 분류하고 그에 맞게 숙고하십시오.
사례
스타트업. 네 명짜리 스타트업은 공유 책상에서 대부분의 결정을 몇 분 만에 내리며, 되돌릴 수 있는 양방향 문 선택에서는 그 속도가 진짜 이점이므로 어떤 거버넌스 오버헤드에도 저항합니다. 그러나 나중에 바꾸기 고통스러울 데이터베이스와 데이터 모델(일방향 문)을 고를 때는 멈춰서 한 단락의 메모를 씁니다. 선택지, 선택, 그 뒤의 전제입니다. 1년 뒤 확장 한계에 부딪혔을 때 그 메모 하나가 문제를 처음부터 다시 따지는 일을 면하게 해 줍니다. 그들은 거의 아무것도 통제하지 않고, 정말 되돌리기 비싼 소수의 결정에만 가벼운 습관 하나를 남겨 둡니다.
대기업. 한 대기업의 플랫폼 팀들은 모든 기술 선택을 승인해야 하는 아키텍처 검토 위원회 때문에 마비되어 몇 주씩 이어지는 대기열이 생겼습니다. 기업은 포장된 길을 중심으로 거버넌스를 재구성했습니다. 팀이 즉시 채택할 수 있는, 승인되고 완전히 지원되는 언어, 데이터 저장소, 파이프라인의 선별된 카탈로그입니다. 벗어나겠다는 결정은 ADR에 기록되었고, 빠른 자문 검토는 길을 벗어난 선택만 처리했습니다. 위원회의 범위는 표준 설정과 진정으로 횡단적인 소수의 결정으로 줄었습니다. 전달이 급격히 빨라졌습니다. 쉬운 길이 이제 규정에 맞는 길이었기 때문에 일관성은 오히려 개선되었습니다. 그리고 ADR 아카이브는 조직에 일이 왜 그렇게 만들어졌는지에 대한 검색 가능한 기록을 주었습니다.
정부. 한 정부 부처가 엄격한 조달과 감사 규칙 아래 사건 관리 플랫폼의 중대한 자체 개발 대 구매 결정에 직면했습니다. 선호로 결정하지 않고, 맞춤 개발, 상용 제품 구매, 오픈 소스 기반 도입의 세 가지 선택지에 걸쳐 문서화된 총소유비용 분석을 수행했습니다. 라이선스, 통합, 장기 유지보수, 인력, 종속을 저울질하고 결정과 전제를 ADR로 기록했습니다. 몇 년 뒤 벤더의 조건이 바뀌었을 때, 부처는 그 ADR을 다시 열어 원래의 전제가 더는 성립하지 않음을 확인하고 이전의 이유를 충분히 알고 재결정함으로써 맹목적이고 값비싼 이전을 피했습니다. 기록된 이유는 감사자가 요구한 방어 가능한 증거 그 자체이기도 했습니다.
비즈니스 사례: 동기, ROI, TCO
결정은 소프트웨어에서 지렛대 효과가 가장 크고 가시성이 가장 낮은 비용입니다. 하나의 잘못된 되돌릴 수 없는 아키텍처나 조달 선택이 수년의 끌림이나 아홉 자리 수의 복구 비용을 부과할 수 있습니다. 이를 잘 다스리는 데는 몇 시간의 숙고와 서면 기록이 들 뿐이니, 비교하면 거의 아무것도 아닙니다. ADR과 되돌릴 수 있는 정도에 기반한 위임의 수익은 두 곳에서 옵니다. 일방향 문 결정에서 값비싼 실수를 피하는 것, 그리고 나머지 모든 것에서 낭비되는 숙고와 재작업을 피하는 것입니다. 기록된 이유는 이미 정리된 문제를 다시 따지는 반복 비용과, 팀이 물려받은 시스템의 의도를 역공학하는 비용도 크게 줄입니다.
기술 부채는 TCO 논거를 구체적으로 만듭니다. 관리되지 않은 부채는 정확히 복리 이자처럼 행동합니다. 시스템이 사실상 유지보수 불가능해지고 값비싼 재작성을 요구할 때까지 모든 미래 변경에 붙는 늘어나는 세금입니다. 고이자 항목을 갚는 상시 역량 배정으로 부채를 포트폴리오로 관리하는 것이, 결국 닥칠 위기보다 훨씬 쌉니다. 좋은 거버넌스는 도입하는 데 싸게 먹힙니다. 대부분 결정을 글로 남기는 규율과 포장된 길에 대한 선행 투자입니다. 건너뛰는 것은 비쌉니다. 피할 수 있었던 재작성, 종속의 놀라움, 감사 실패, 잃어버린 조직의 기억으로 치르게 됩니다. 리더십을 설득하려면 거버넌스를 그들의 언어로 설명하십시오. 위험 감소, 피한 재작업, 포장된 길을 통한 더 빠른 전달, 감사에 대비된 방어 가능성입니다. 목표는 더 많은 프로세스가 아니라 더 잘 겨냥된 프로세스, 즉 되돌리기 비싼 곳에만 무거운 정밀 검토를, 나머지 모든 곳에는 마찰 없는 속도를 두는 것임을 보여 주십시오.
안티패턴과 함정
- 문서화되지 않은 결정: 결정한 사람들이 떠나는 순간 사라지는 이유.
- 승인 위원회 병목: 모든 프로젝트가 뒤에서 줄 서야 하는 중앙 기구.
- 획일적 프로세스: 사소하고 되돌릴 수 있는 결정을 무거운 검토에 통과시키는 것.
- 분석 마비: 쉽게 되돌릴 수 있는 양방향 문 결정을 두고 고민하는 것.
- 그림자 IT: 공인된 경로가 너무 고통스러워 팀이 거버넌스를 완전히 피하는 것.
- 보이지 않는 기술 부채: 한 번도 목록화되지 않고 갚지 않으며 조용히 복리로 불어나는 부채.
- 전부 개발 또는 전부 구매의 반사 행동: TCO 분석이 아닌 습관으로 조달하는 것.
- 거버넌스 연극: 보여 주기 위해 존재할 뿐 결정을 형성하지 않는 문서와 위원회.
성숙도 모델
- 1단계(시작): 결정은 그때그때 이루어지고 기록되지 않습니다. 거버넌스는 없거나 일률적인 병목입니다. 기술 부채는 보이지 않고, 선택 뒤의 이유는 사람들이 떠날 때 증발합니다.
- 2단계(발전): 일부 결정은 문서화되고 일부 검토가 존재하지만, 관행은 팀마다 일관되지 않고 프로세스는 결정의 무게와 되돌릴 수 있는 정도와 자주 맞지 않습니다.
- 3단계(표준화): ADR, 포장된 길, 되돌릴 수 있는 정도에 기반한 위임, 부채 목록이 조직 전체에서 문서화되고 시행되어, 규정에 맞는 선택이 쉬운 기본값이 되고 이유가 검색 가능합니다.
- 4단계(관리): 거버넌스가 기준선에 대해 측정됩니다. 포장된 길 채택률, ADR 커버리지, 결정 사이클 타임, 역량 중 부채의 비율, 길을 벗어난 예외율이 추적되고, 부채를 갚거나 조달을 다시 살피는 결정은 위기가 아니라 그 증거로 촉발됩니다.
- 5단계(오케스트레이션): 거버넌스가 지속적으로 조정되고 전달 및 위험 계획과 통합됩니다. 정밀 검토는 되돌릴 수 없는 결정에 정확히 겨눠지고, 부채와 조달 선택은 포트폴리오로 적극 재균형되며 상황이 바뀜에 따라 증거에 근거해 다시 결정됩니다.
논의를 위한 아이디어
- 가장 중요한 최근 결정들에 대해, 그 뒤의 기록된 이유를 찾을 수 있습니까?
- 우리의 거버넌스는 어디에서 병목이며, 필요한 곳에서 어디가 부재합니까?
- 현재 결정 중 어느 것이 일방향 문이며, 그렇게 취급하고 있습니까?
- 역량의 얼마가 기술 부채 상환에 쓰이며, 충분합니까?
- 우리 팀은 포장된 길이 정말 가장 쉬운 길이어서 따릅니까, 아니면 우회합니까?
- 중대한 자체 개발 대 구매 결정을 원래의 전제에 비추어 마지막으로 다시 살핀 것은 언제입니까?
핵심 요점
- 중요한 결정과 그 이유를 ADR로 기록하여 이유를 오래 남게 하십시오.
- 건건이 관문을 지키는 대신 포장된 길과 기본값으로 다스리십시오.
- 프로세스의 무게를 결정의 무게와 되돌릴 수 있는 정도에 맞추십시오. 양방향 문은 위임하고 일방향 문은 숙고하십시오.
- 자체 개발-구매-도입을 총소유비용으로 분석하고, 전제를 기록하십시오.
- 기술 부채를 상시 상환 배정을 갖춘 명시적 포트폴리오로 관리하십시오.
- 거버넌스를 투명하고 가볍게 유지하십시오. 희소한 정밀 검토를 되돌리기 비싼 곳에 겨누십시오.
참고 문헌과 더 읽을거리
- Michael Nygard, “Documenting Architecture Decisions” (the original ADR pattern)
- Gregor Hohpe, “The Software Architect Elevator” and “37 Things One Architect Knows”
- Amazon shareholder letters on Type 1 vs Type 2 (one-way vs two-way door) decisions
- Ward Cunningham, the original “technical debt” metaphor
- Martin Fowler, writings on technical debt and evolutionary architecture
- Neal Ford, Rebecca Parsons, Patrick Kua, “Building Evolutionary Architectures”
- Nicole Forsgren, Jez Humble, Gene Kim, “Accelerate” (loosely coupled architecture and autonomy)
- ISO/IEC/IEEE 42010 on architecture description