# 내 세탁기가 `소프트웨어 추정`에 대한 생각을 바꿔줬어요

> Clean Markdown view of GeekNews topic #19302. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=19302](https://news.hada.io/topic?id=19302)
- GeekNews Markdown: [https://news.hada.io/topic/19302.md](https://news.hada.io/topic/19302.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-02-19T10:00:06+09:00
- Updated: 2025-02-19T10:00:06+09:00
- Original source: [cosive.com](https://www.cosive.com/blog/my-washing-machine-refreshed-my-thinking-on-software-effort-estimation)
- Points: 25
- Comments: 1

## Summary

새 집으로 이사하면서 세탁기를 설치하는 과정에서 예상치 못한 장애물들이 발생하여 시간이 많이 소요되었고, 이는 소프트웨어 개발에서 노력 추정이 어려운 이유와 유사하다는 점을 깨닫게 되었다고 이야기 합니다. 소프트웨어 개발에서는 환경이 달라지면 예상치 못한 변수가 발생할 가능성이 높으며, "알려지지 않은 미지의 요소" 때문에 과거 경험을 기반으로 한 추정이 종종 틀리게 됩니다. 따라서 소프트웨어 프로젝트에서는 예상치 못한 블로커를 감안하여 일정 및 리소스를 유동적으로 조정하는 것이 필요합니다.

## Topic Body

> “그거 만드는데 얼마나 걸릴 것 같아요?”  
- 소프트웨어 개발자들이 두려워 하고 싫어하는 이 질문에 대해서 내 세탁기가 생각을 일깨워줌   
- **세탁기가 알려준 소프트웨어 노력 추정(Software Effort Estimation)의 어려움**  
  - 새 집으로 이사하면서 세탁기를 설치하는 과정에서 예상보다 많은 시간이 많이 소요됨  
  - 보통 10분이면 끝나는 작업이었지만, 이번에는 4시간이 소요됨  
  - 사전에 예상하지 못한 장애물(블로커)들이 발생하여 설치가 지연되었음  
  - 이 과정이 소프트웨어 개발에서 노력 추정을 어렵게 만드는 이유와 유사하다는 점을 깨닫게 됨  
- **장애물과 해결책**  
  - **장애물 1**: 전원 연결을 위한 구멍이 없어 세탁기를 전원에 연결할 수 없음  
    - **해결책 1**: 하드웨어 상점에서 60mm 홀쏘를 구입하여 구멍을 뚫음  
  - **장애물 2**: 소비자용 드릴로는 홀쏘를 사용할 수 없음  
    - **해결책 2**: 더 강력한 드릴을 빌려와서 사용함  
  - **장애물 3**: 배수 및 급수 호스가 새 집에서는 예상보다 짧았음  
    - **해결책 3**: 새로운 확장형 호스를 구입하려 했으나 기존 호스가 확장되지 않음을 깨닫고 다시 새 호스를 구입  
  - **장애물 4**: 수도꼭지에 단단히 고정된 금속 캡이 제거되지 않았음  
    - **해결책 4**: 더 큰 스패너를 구입하여 캡을 제거함  
  - **장애물 5**: 배수구의 스피곳(Spigot)이 PVC 벽으로 막혀 있음  
    - **해결책 5**: 드릴로 PVC 벽을 뚫고 배수 호스를 연결함  
  - 총 5번의 하드웨어 매장 방문과 4시간의 작업 끝에 세탁기를 정상적으로 설치할 수 있었음  
- **소프트웨어 개발 노력 추정이 어려운 이유**  
  - 익숙한 작업이라고 하더라도 환경이 다르면 예상치 못한 변수가 발생할 가능성이 높음  
  - 과거 경험을 기반으로 한 추정이 종종 틀리는 이유는 “알려지지 않은 미지의 요소(Unknown Unknowns)” 때문임  
  - 몇 가지 예시:  
    - 사용하려던 라이브러리가 더 이상 유지보수되지 않아 직접 수정해야 하는 상황  
    - 개발 도구가 업데이트되면서 기존 방식이 더 이상 적용되지 않는 문제  
    - OS 버전이 바뀌면서 기존 종속성이 정상적으로 작동하지 않는 경우  
    - 인프라에 새 컴포넌트가 추가되었는데 예상과 다르게 동작하는 상황  
- **결론**  
  - 새로운 집에서의 경험은 소프트웨어 개발에서의 노력 추정이 얼마나 어려운지를 보여줌  
  - 개발을 시작하기 전에 요구 사항을 최대한 철저히 조사해야 하지만, 예상치 못한 블로커가 발생하는 것은 불가피함  
  - 소프트웨어 프로젝트가 익숙한 작업처럼 보여도, 새로운 환경에서는 전혀 다른 도전 과제가 등장할 수 있음  
  -	이러한 변수를 감안하여 일정 및 리소스를 유동적으로 조정하는 것이 필요함

## Comments



### Comment 34782

- Author: neo
- Created: 2025-02-19T10:00:06+09:00
- Points: 2

###### [Hacker News 의견](https://news.ycombinator.com/item?id=43085876) 
* 소프트웨어 추정은 농담과 같음. 과소평가에 대한 처벌이 없기 때문임
  - 영화 제작 추정과 비교할 수 있음. 영화 제작에 완료 보증을 판매하는 회사들이 있음
  - 완료 보증은 제작 비용의 약 2%가 소요됨. 보통 예산이 300만 달러에서 7000만 달러 사이인 인디 영화에 사용됨
  - 보증 회사는 일부 초과 비용을 부담하지만, 너무 크면 감독을 해고하고 제작을 인수함. 이런 방식이 실질적인 효과를 줌
  - 완료 보증 회사는 과거 데이터를 기반으로 추정함. 많은 영화의 실제 비용을 가지고 있음
  - 각 장면의 비용을 상세히 기록하고 있음. 예를 들어, 자동차 추격 장면의 경우, 데이터베이스에서 과거 100개의 자동차 추격 장면 비용을 참조함
  - 감독, 프로듀서, 배우에 대한 정보도 가지고 있으며, 이들이 장면 촬영에 드는 비용을 동료들과 비교함
  - 이는 로켓 과학이 아닌 보험 인수임

* 훌륭한 기사지만, 소프트웨어 경험과의 주요 차이점이 빠져 있음
  - 고객이 실제로 원하는 것을 알지 못할 수 있음. 사전에 아무리 물어봐도 이 정보를 얻을 수 없음
  - 시간 단위로 청구하고 프로젝트 단위로 청구하는 것을 절대 거부해야 함

* DIY 프로젝트는 항상 이런 식임
  - 소유물에 대한 논의가 많지만, 도구와 부품은 공간을 많이 차지함
  - 저자는 이미 많은 도구를 가지고 있었지만, 여전히 몇 가지가 부족했음
  - 결국 하드웨어 상점에 가는 일이 줄어들지만, 작업장은 물건으로 가득 참

* 드릴링 후 25분 동안 직선으로 유지하는 방법과 소음 차단 이어폰의 놀라움을 배움
  - 소음 차단 헤드폰은 청력 보호 장치가 아님. 청력 보호 장치는 소음원과 귀 사이에 물리적 장벽을 만듦
  - 소음 차단 헤드폰은 주변 소리를 듣고 반대 음파를 생성함. 완벽하지 않기 때문에 귀를 충분히 보호하지 못함

* 이야기는 좋음. 하지만 내 경험은 거의 정반대임
  - 90%가 쉬운 일이 아니라 90%가 헤매는 것임
  - 같은 제품을 여러 회사에서 반복해서 작업하는 경우가 많음

* "현실은 놀라운 세부 사항을 가지고 있음"이라는 말이 생각남
  - 알지 못하는 것들은 새로운 것과 가까워질 때까지 그대로 남아 있음

* 저자가 전원 케이블을 위한 구멍을 뚫을 때, 깔끔하게 플라스틱 삽입물을 맞춤
  - 건축업자들은 물 호스를 위한 구멍을 대충 자르고 담배를 피우러 감
  - 이는 과거 경험과 일치함

* 대부분의 동료들은 프로젝트 시작 전 조사와 인벤토리가 많은 시간을 차지한다고 말하면 놀람
  - 대부분의 동료들은 프로젝트를 빨리 끝내고, 많은 시간이 사후 관리에 소요됨
  - 나는 프로젝트 초기에 많은 시간을 투자하여 사후 관리가 필요하지 않음

* 다음에 기술자의 가격에 놀랄 때 고려할 만한 흥미로운 점
  - 배관공이 세탁기를 연결하는 데 몇 분 만에 300달러를 청구하는 이유는 배수구에 구멍을 뚫는 방법을 알기 때문임

* 소프트웨어 프로젝트를 시작하기 전에 어떤 질문을 해야 할지 모를 때 어떻게 해야 할까?
  - 탐색 작업을 요구 사항 수집 연습으로 보는 것에 반대하지 않음
  - 하드웨어 상점에 한 번 가서 큰 쇼핑 목록과 열린 질문 세트를 가지면 더 효과적이고 간단하게 작업할 수 있음
