소프트웨어 프로젝트, 정확한 추정은 불가능하다?

by DD
4개월 전
조회수 6

소프트웨어 프로젝트의 정확한 추정은 불가능하며, 알려지지 않은 작업이 대부분의 시간을 차지함

추정은 엔지니어의 작업 효율성을 위한 것이 아닌, 프로젝트 승인 및 자원 할당을 위한 정치적 도구로 활용됨

엔지니어는 주어진 시간 내에 가능한 기술적 접근 방식(Technical Approach)을 찾아야 함

위험 평가(Risk Assessment)를 기반으로, 여러 계획과 트레이드오프(Trade-offs)를 제시하는 것이 중요함

추정의 본질: 정치적 도구

게시물에 따르면, 소프트웨어 프로젝트 추정은 엔지니어의 작업 효율성을 높이기 위한 것이 아니라, 프로젝트의 우선순위 결정(Prioritization)과 자원 할당을 위한 정치적 도구로 사용된다. 즉, 추정은 경영진이 원하는 결과를 얻기 위한 수단이며, 엔지니어는 주어진 제약 조건 내에서 가능한 해결책을 찾아야 한다. 이러한 관점은 엔지니어링 팀이 단순히 작업을 추정하는 것이 아니라, 경영진의 기대(Management Expectation)에 맞춰 기술적 접근 방식을 조정해야 함을 시사한다.

불확실성 관리: 알려지지 않은 작업

게시물은 소프트웨어 프로젝트의 핵심은 알려지지 않은 작업(Unknown Work)이며, 이는 예측 불가능성을 야기한다고 지적한다. 대부분의 시간은 예상치 못한 문제 해결에 소요되며, 따라서 정확한 시간 추정은 불가능하다. 저자는 알려진 작업에 집중하기보다는 불확실성(Uncertainty)을 고려하여 위험 평가를 수행하고, 여러 가지 해결 방안을 제시하는 것이 중요하다고 강조한다. 이는 엔지니어가 단순히 작업을 분해하는 것이 아니라, 잠재적 위험 요소(Potential Risk Factors)를 예측하고 관리해야 함을 의미한다.

실질적인 추정 접근법: 범위 내 해결책 모색

게시물은 엔지니어가 주어진 시간 제약 내에서 가능한 해결책을 찾아야 한다고 주장한다. 즉, '이 작업을 얼마나 걸릴까?'가 아니라, '이 시간 안에 어떤 접근 방식을 사용할 수 있을까?'를 고민해야 한다. 이는 엔지니어가 기술적 트레이드오프(Technical Trade-offs)를 이해하고, 다양한 해결 방안을 제시하여 경영진이 정보에 입각한 의사 결정(Informed Decision Making)을 할 수 있도록 돕는 것을 의미한다. 또한, 프로젝트의 불가능성을 알리는 것도 엔지니어의 중요한 역할임을 강조한다.

커뮤니티의 반응: 추정에 대한 다양한 시각

댓글에서는 추정에 대한 다양한 의견이 제시되었다. 일부 엔지니어는 추정의 중요성을 강조하며, 정확한 추정을 위한 방법론을 제시했다. 반면, 다른 엔지니어는 추정의 불가능성을 강조하며, 추정보다는 유연한 개발 방식(Agile Development)의 중요성을 강조했다. 또한, 추정이 조직 문화와 밀접하게 관련되어 있으며, 팀의 역량(Team Capability)에 따라 추정의 정확도가 달라질 수 있다는 의견도 제시되었다.

How I estimate work as a staff software engineer