340
Part 2
엔지니어링
지금까지 여러분은 복잡한 코드베이스에 대한 대안을 볼 수 있게 되었습니다. 코드베이스는
항상 ‘큰 진흙 덩어리’일 필요는 없으며, 읽기 쉽고 유지보수를 할 수 있으며 심지어는 우아한
솔루션으로 변할 수 있습니다. 이제 일상 업무에서 팀의 솔루션 설계를 지속적이고 반복적으
로 개선할 수 있는 방법을 알아보겠습니다.
8.3
현실에서의 기술 부채 관리
업무는 공기와 같아서 ‘리팩터링을 해야 할까요?’라고 질문하기도 전에 빈 공간을 빠르게 채
웁니다. 항상 ‘일을 완수’하고 ‘무언가를 배포해야 한다’는 ‘납품 압박’과 성과를 내야 한다는
‘사회적 압력’은 기술 부채를 갚는 데 필요한 시간과 에너지를 빼앗아 갑니다.
프로젝트에서 이러한 압박에 대한 두 가지 반응을 보았습니다. 극단적으로는 기능 전달에만
집중하고 다른 것은 전혀 신경 쓰지 않는
ML
종사자가 있을 수 있습니다. 이들은 개선 기회
를 포기할 뿐만 아니라, 빠르게 움직이기 위해 더 많은 부채를 떠안게 될 가능성이 큽니다.
다른 극단에는 카드 작업 시 리팩터링에 지나치게 몰두하여 작업 범위가 크게 확장되고 작업
중인 카드에 상당한 지연을 초래하는 열성적인 사람들도 있을 수 있습니다.
사실 코딩과 리팩터링은 본질적으로 사회적 활동이며 사회구조적 힘에 의존합니다. 기술 부
채를 효과적으로 관리하려는
ML
종사자는 팀 내에서 바람직한 행동에 대한 사회적 계약을
수립하고 문제와 해결 방법에 대한 공통된 견해를 만들어 나가야 합니다.
다음 절에서는 프로젝트에서