스프레드시트 크립의 해부학
스프레드시트 크립은 예측 가능한 패턴을 따릅니다. 누군가 — 그녀의 이름을 사라로 합시다 — 무엇인가를 추적할 필요가 있습니다. 아마도 고객 주문일 수도 있고, 프로젝트 마일스톤일 수도 있으며, 장비 유지 보수 일정일 수도 있습니다. 사라는 10개의 열과 50개의 행이 있는 간단한 스프레드시트를 만듭니다. 완벽하게 작동합니다. 여섯 달 후, 스프레드시트는 200행으로 늘어났습니다. 사라는 추가 정보를 추적하기 위해 몇 개의 열을 더 추가합니다. 관련 데이터에 대한 두 번째 시트를 만들고 VLOOKUP을 사용하여 연결합니다. 여전히 관리 가능합니다. 파일 크기는 2MB이며 즉시 열리고 팀의 모든 사람이 문제 없이 사용할 수 있습니다. 또 다른 일 년이 지난 후. 스프레드시트는 이제 서로 연결된 다섯 개의 시트에 2,000행이 있습니다. 세 사람이 각기 다른 열을 추가했지만 그 의미를 문서화하지 않았습니다. 다른 수식을 참조하는 수식이 있습니다. 누군가 팀의 절반이 존재조차 모르는 매크로를 만들었습니다. 파일 크기는 15MB이며 열리는 데 30초가 걸립니다. 하지만 — 각 단계에서 스프레드시트는 여전히 작동합니다. 느려지기는 했지만, 더 복잡해지기는 했지만, 완전히 망가지지는 않았으므로 변경할 긴급한 이유가 없습니다. 이것이 함정입니다. 스프레드시트가 명백히 사용할 수 없게 될 때쯤이면, 기술적 부채가 너무 깊어져서 이전이 불가능하다고 느껴집니다. 우리의 판매 추적 시스템에서 이 같은 시나리오가 전개되는 것을 지켜보았습니다. 2019년에 새로운 마케팅 캠페인에서 리드를 추적하기 위해 간단한 스프레드시트로 시작했습니다. 2022년까지 그 스프레드시트는 우리 전체 영업 조직의 사실상의 CRM이 되었습니다. 고객 상호작용, 거래 파이프라인 데이터, 수익 예측 및 커미션 계산의 3년치 데이터가 포함되어 있었습니다. 47개의 상호 연결된 시트, 200개 이상의 열, 그리고 아무도 — 저를 포함 — 이해하지 못하는 수준으로 중첩된 수식이 있었습니다. 전환점은 4분기 계획 중에 발생했습니다. 우리의 영업 팀은 내년 목표에 대한 시나리오를 실행해야 했지만, 누군가가 예측 모델을 업데이트하려 할 때마다 Excel이 10-15분 동안 멈추곤 했습니다. 우리는 파일을 나누고, 수식을 최적화하고, 모든 사람의 컴퓨터를 업그레이드해 보았습니다. 아무것도 효과가 없었습니다. 우리는 스프레드시트의 아키텍처가 우리가 제기하는 데이터 양과 복잡성을 처리할 수 없었던 경계선을 넘었습니다.전환점에 가까워지고 있다는 다섯 가지 경고 신호
고통스러운 경험을 통해 스프레드시트가 전환점에 가까워지고 있음을 나타내는 다섯 가지 명확한 경고 신호를 확인했습니다. 이것은 단순한 불편함이 아닙니다 — 도구가 의도된 사용 사례를 넘어 과용되고 있다는 구조적 지표입니다. 경고 신호 1: 파일 열기에 30초 이상 걸림 처음 우리 판매 스프레드시트가 열리는 데 45초가 걸린다는 것을 발견했을 때, 이는 컴퓨터 성능 문제로 치부했습니다. 그러나 파일 열리는 시간은 전체적인 복잡성의 신뢰할 수 있는 지표입니다. 스프레드시트는 모든 것을 메모리에 한 번에 로드하도록 설계되었습니다. 그 과정이 30초 이상 걸리면, 기본 작업을 수행하는 데 애를 쓰고 있는 데이터와 수식이 많다는 것을 의미합니다. 이것은 느린 컴퓨터와 관련된 문제가 아닙니다. 32GB의 RAM을 가진 고급 워크스테이션에서도 이 패턴을 보았습니다. 문제는 아키텍처입니다 — 스프레드시트는 표시하기 위해 상당한 처리가 필요한 데이터 세트를 처리하도록 설계되지 않았습니다. 경고 신호 2: 여러 사람이 동시에 작업할 수 없음 누군가 "스프레드시트를 다 끝냈나요?"라고 묻는 순간, 협업 한계에 도달한 것입니다. 현대 스프레드시트 도구가 클라우드 기반 협업을 제공하지만, 대형 복잡한 파일에서는 빠르게 문제에 봉착합니다. 세 사람이 20,000행 파일에서 동시에 작업하려 할 때 Google Sheets가 중단되는 것을 지켜보았습니다. 실제 데이터베이스는 이를 우아하게 처리합니다. 왜냐하면 데이터베이스는 그 작업을 위해 구축되었기 때문입니다. 스프레드시트는 본질적으로 단일 사용자 도구이며 협업 기능이 덧붙여진 것이기 때문에 이러한 점에서 잘 작동하지 않습니다. 경고 신호 3: 여러 버전을 유지 관리하고 있음 "Sales_Data_2022_Final_v3_ACTUAL_FINAL.xlsx"를 관리하는 나 자신을 발견했을 때, 문제가 있다는 것을 알았습니다. 버전이 proliferate 되는 것은 파일이 너무 크거나 복잡하여 안전하게 수정을 할 수 없기 때문에 발생합니다. 사람들은 "혹시 몰라서" 사본을 만들기 시작하며, 갑자기 이메일 첨부파일과 공유 드라이브에 진실의 일곱 가지 버전이 흩어져 있습니다. 이것은 단순한 불편함이 아니라 위험합니다. 사람들은 지난달의 스프레드시트 버전을 사용하여 구식 데이터에 기반한 전략적 결정을 내리는 회사를 보았습니다. 경고 신호 4: 수식이 예측할 수 없이 깨짐 복잡한 스프레드시트는 "수식의 취약성"이 생겨납니다. 한 셀을 변경하면 갑자기 세 시트 떨어진 곳에 있는 수식이 #REF! 또는 #VALUE!를 반환합니다. 문제를 추적하는 데 20분을 소비하고 수정하지만, 또 다른 문제가 발생합니다. 이는 스프레드시트 수식이 시각적이거나 문서화되지 않은 암묵적 의존성을 생성하기 때문입니다. 데이터베이스에서는 관계가 명시적이고 강제됩니다. 스프레드시트에서는 비계시적 방식으로 깨질 수 있는 수식 구문에서 숨겨져 있습니다. 경고 신호 5: 스프레드시트를 사용하는 것보다 관리하는 데 더 많은 시간 소요 이것이 메타 경고 신호입니다. 우리가 판매 스프레드시트를 단순히 유지 관리하는 데 매주 5-10시간을 소비하고 있다는 것을 깨닫고 — 고장난 수식 수정, 데이터 입력 오류 정리, 성능 최적화 — 우리는 선을 넘었다는 것을 알았습니다. 도구가 일을 가능하게 하기보다는 일이 되었습니다.모든 것이 무너진 날: 경고의 교훈
우리의 손을 강제했던 특정 사건에 대해 말씀드리겠습니다. 2022년 11월 15일이었습니다. 이사회 회의 3주 전입니다. 우리의 CFO는 최신 파이프라인 데이터를 기반으로 한 업데이트된 수익 예측이 필요했습니다. 간단한 요청, 일상적인 업무 — 그러나 그렇지 않았습니다. 오전 9시, 판매 스프레드시트를 열었습니다. 로드하는 데 12분이 걸렸습니다. 이미 나쁜 신호였습니다. 예측 모델 시트로 이동하여 Q4 숫자를 업데이트하기 시작했습니다. Excel이 멈췄습니다. 5분을 기다렸습니다. 여전히 멈춰있었습니다. 강제로 종료하고 다시 시도했습니다. 두 번째 시도: 이번에는 더 나아갔고, 사실 세 개의 셀을 업데이트했지만 Excel이 완전히 중단되었습니다. 자동 저장이 없었고, 모든 변경 사항이 사라졌습니다. 세 번째 시도: 자동 계산을 비활성화하고 그렇게 하면 도움이 될 것이라고 생각했습니다. 그랬습니다 — 충돌 없이 데이터를 입력할 수 있었습니다. 하지만 결과를 보기 위해 계산을 다시 활성화하니 Excel이 다시 멈추었고, 제가 포기하기까지 20분 동안 멈춰 있었습니다. 정오까지 저는 전혀 진행하지 못했습니다. IT 부서에 전화를 걸어 제 컴퓨터에 문제가 있는지 생각했습니다. 그들은 원격으로 접속하여 같은 작업을 시도했고, 같은 결과를 얻었습니다. 파일이 손상된 것이 아니었습니다 — 그저 Excel이 신뢰성 있게 처리할 수 없을 정도로 너무 복잡했습니다. 더 나쁜 것은, 이것이 단순히 저의 문제가 아니었다는 것입니다. 영업 팀은 그 데이터를 통해 그들의 Q4 추진 계획을 세워야 했습니다. 금융 부서에서는 이사회 자료를 위해 필요했습니다. 우리의 CEO는 투자자 업데이트를 위해 그것을 필요로 했습니다. 그리고 저는 우리의 전체 수익 예측 시스템이 전환점을 넘은 스프레드시트에 갇혀 있었기 때문에 전달할 수 없었습니다. 우리는 그 오후에 위기 모드에 있었습니다. 데이터를 하위집합으로 내보내고, 수식을 수동으로 계산하고, Excel, Python 스크립트 및 절망적인 기도를 결합하여 예측을 만들었습니다. 간신히 작동했지만, 2시간이면 끝났을 일을 위해 14시간의 작업이 걸렸습니다. 그날 밤, "우리는 판매 스프레드시트에 대해 이야기할 필요가 있습니다."라는 제목의 이메일을 CTO에게 보냈습니다. 다음 날 아침, 우리는 적절한 데이터베이스로의 이전 계획을 시작했습니다.수치는 거짓말하지 않는다: 스프레드시트가 붕괴될 때
다양한 파일 크기와 복잡성 수준의 스프레드시트 성능 데이터를 수집했습니다. 이것은 학술 연구가 아닙니다 — 수년간 수십 개의 대형 스프레드시트를 관리하면서의 실질적인 관찰입니다. 실제로 전환점이 어떻게 보이는지 보여드리겠습니다:| 행 수 | 파일 크기 | 열리는 시간 | 계산 시간 | 충돌 빈도 | 상태 |
|---|---|---|---|---|---|
| 0-1,000 | < 2 MB | < 5 초 | 즉시 | 드문 | ✓ 건강함 |
| 1,000-10,000 | 2-10 MB | 5-15 초 | 1-3 초 | 가끔 | ⚠ 경고 |
| 10,000-50,000 | 10-30 MB | 15-60 초 | 5-30 초 | 자주 | ⚠ 위급 |
| 50,000-100,000 | 30-60 MB | 1-5 분 | 30-120 초 | 매우 자주 | ✗ 붕괴 중 |
| 100,000+ | > 60 MB | 5+ 분 | 2+ 분 | 지속적 | ✗ 고장 |