최근에 아주 오래된 단일 응용 프로그램이 마이크로 서비스 기반 아키텍처로 마이그레이션되는 프로젝트를 시작했습니다.
레거시 코드베이스는 매우 혼란스럽고 ( '스파게티 코드') 종종 단순한 함수 (예 : "multiplyValueByTen")는 나중에 "3 개의 서로 다른 스키마에서 10 개의 테이블을 포함하는 수천 개의 유효성 검사 코드 행"으로 나타납니다.
이제 상사는 새 아키텍처에서 기능 X를 작성하는 데 걸리는 시간을 추정하도록 요구하고 있습니다. 그러나 나는 현실적인 평가를 내리는 데 어려움을 겪고 있습니다. 자주 상당히 때문에 내가 위에서 언급 한 이유로 작업을 과소 평가하고 내가 시간에 완료 할 수 없기 때문에 자신을 당황하게.
현명한 것은 실제로 코드에 들어가서 모든 브랜치를 기록하고 다른 함수를 호출 한 다음 시간 비용을 추정하는 것처럼 보일 수 있습니다. 그러나 이전 코드를 문서화하는 것과 실제로 새 버전을 작성하는 것 사이에는 약간의 차이가 있습니다.
이와 같은 시나리오에 어떻게 접근해야합니까?
레거시 코드 리팩토링 작동 방식을 완벽하게 이해하고 있지만 제 질문은 "리팩터링 / 재 작성 방법"에 관한 것이 아닙니다. "파트 X를 리팩토링 / 재 작성하는 데 시간이 얼마나 걸립니까?"