Thumbnail Image
Computer | 2025.04.13

Tracer Bullet Development(TBD) for Schedule estimation

경험이 많지 않은 개발자가 가장 힘들어 하는 것 중 하나가 개발 일정을 산정하는 일입니다. 저 또한 이 역량을 높이기 위해 작업을 가장 단위로도 쪼개보고, 산정했던 일정을 회고하며 영점을 맞추어 보기도 하였습니다. 하지만 불확실한 기능에 대한 부분이 늘 저를 괴롭혔고, 이를 해결하기 위한 TBD 방법론이라는 개념을 알게 되었습니다. TBD 방법론을 좀 더 학습해보고 체화하며, 더 빠른 일정 예측과 더 정확한 일정 산정을 하고자 합니다.

목차

1️⃣ 스케줄링 업무

2️⃣ 스케줄링의 불확실성

3️⃣ 불확실성을 해결하는 방법: TBD

4️⃣ TBD가 가져오는 효과

5️⃣ 또 다른 키워드

1️⃣ 스케줄링 업무

개발자에게 있어 일정을 산정하는 역량은 가장 중요하고 기본적으로 요구됩니다. 팀이 목적을 위해 나아가기 위해서 기능 단위의 일정들이 예상되어야 하고, 개발 기간은 그 일정에 큰 영향을 미치기 때문입니다. 개발자가 미리 일정을 산정하고 공유할 수 있어야, 팀이 하고자 하는 일을 기간 내에 수행할 수 있습니다. 혹은 기간 내에 내기 위해 기능의 스펙을 조정할 수 있게 됩니다.

2️⃣ 스케줄링의 불확실성

개발하는 기능이 개발자가 이미 경험했던 기술이라면 쉽게 일정을 산정할 수 있습니다. 하지만 문제는 경험하지 못한 기술에 있습니다. 간단해 보였던 기능의 맥락이 크게 얽혀있어 파악하는 데에 많은 시간이 소모될 수도 있고, 복잡해 보였던 기능이 다른 곳에 있던 좋은 모듈을 발견하여 생각보다 이르게 작업을 수행할 수도 있습니다. 이 불확실성은 개발자를 불안하게 하고, 이는 기한 내에 완성할 수 있을지 심리적인 위축을 가져다줄 수 있습니다.

3️⃣ 불확실성을 해결하는 방법: TBD

그렇기 때문에 이 불확실성을 빠르게 해소하는 것이 가장 중요한 일이 될 수 있습니다. 의문이 드는 부분이나 가장 위험이 커 보이는 곳을 찾아 코드를 가장 먼저 작성하도록 개발 우선순위를 정하는 것이 중요합니다. 같은 맥락으로, TBD; Tracer Bullet Development(예광탄 개발)이라는 개발 용어가 존재합니다. 본래 군대에서 사용되는 예광탄은 총탄이 날아가며 경로를 밝히며 목표에 도달하는 것을 보여줍니다. 밝혀진 경로는 곧 빠른 피드백을 주며, 사수에게 더 정밀한 조준을 할 수 있게끔 도와줍니다.

여기에서 주안점은 “빠른 피드백”에 있습니다. 우리는 불확실성이 큰 요구 사항에 있어, 빠르게 end-to-end 로 작동하는 최소한의 기능(Small Slice)을 구현하여 흐름을 검증하는 것이 필요합니다. 국소적인 한 기능 한 기능을 순서대로 개발하는 bottom-up 방식보다, top-down 방식으로 TBD를 수행하며 빠르게 불확실성을 해소하고, 해당 코드를 기반으로 살을 붙여나가는 방식이 효과적일 수 있습니다.

4️⃣ TBD가 가져오는 효과

최대한 빠르게 예광탄 개발을 하는 것을 우선순위로 삼는다면 팀에게 비교적 정확한 일정을 공유할 수 있습니다. 이는 팀이 한정된 기간 내에 어떤 일을 할 수 있을지 계획을 수립하는 데에 큰 도움이 됩니다. 또한, 크게 벗어나지 않는 일정 산정을 하는 개발자에게 일관된 마감 기한 준수 역량을 발견할 수 있고, 이는 팀원들의 신뢰도에 큰 영향을 미치게 됩니다.

이처럼, 가장 작은 단위로 빠른 피드백을 위해 수행하는 또 다른 방법들을 제시하며 글을 마무리 하고자 합니다. 감사합니다.

1. Spikie Solution

비슷한 맥락의 방법론으로 Spikie Solution 이 있습니다. 기술적 불확실성에 대해 개념 증명을 집중적으로 하는 기간을 갖는 것을 말합니다.

2. Prototyping(프로토타이핑)

TBD는 프로토타이핑과는 다른 개념입니다. 프로토타이핑은 아이디어와 가설을 검증하기 위해 실험적으로 세워두는 모델입니다. 본격적으로 개발할 때 이렇게 구현했던 코드는 전부 삭제되는 반면, TBD는 기초적인 토대가 되어 개발의 틀이 됩니다.