AI가 우리의 Open PR을 36% 증가시켰습니다. 하지만 그것이 전부는 아니었습니다.
요약
AI가 소프트웨어 인도 속도를 높여 Open PR을 36% 증가시켰으나, 엔지니어링 판단력의 중요성은 여전합니다. AI 도입으로 인해 코드 작성보다 명세 관리, 정확성 검증, 워크플로 정렬이 새로운 핵심 과제로 부상하고 있습니다.
핵심 포인트
- AI 도입으로 Open PR이 36% 증가하며 개발 속도 향상
- 코드 작성보다 명세 이해 및 정확성 검증의 중요성 증대
- 명세, 티켓, 프롬프트 간의 컨텍스트 동기화 문제 발생
- AI 시대에도 신뢰할 수 있는 단일 원천(Source of Truth) 유지 필요
AI는 소프트웨어 인도(software delivery)를 변화시키고 있지만, 강력한 엔지니어링 판단(engineering judgment)의 필요성을 없애는 방식은 아닙니다. 이번 요약에서는 Stack Builders의 시니어 테크 리드(senior tech leads)들이 AI 지원 워크플로(AI-assisted workflows), 코드 리뷰(code review), 인도 지표(delivery metrics), 추정(estimation), 그리고 실제 프로젝트에서 AI를 유용하게 만들기 위해 필요한 프로세스 규율(process discipline)에 대해 배우고 있는 내용들을 살펴봅니다.
AI 지원 개발(AI-assisted development)은 더 이상 부수적인 실험이 아닙니다. Stack Builders의 팀 전반에 걸쳐, 시니어 기술 리드들은 컴포넌트 생성, 명세 기반 워크플로(specification-driven workflows) 지원, 더 큰 풀 리퀘스트(pull requests) 리뷰, 팀 지표 분석, 심지어 일괄적인 이슈 해결을 위한 병렬 에이전트(parallel agents) 조정 등 일상적인 인도 과정에서 AI를 사용하고 있습니다.
하지만 최근 시니어 테크 리드(Senior Tech Leads) 토론에서 얻은 가장 흥미로운 통찰은 단순히 "AI가 우리를 더 빠르게 만든다"는 것이 아니었습니다. 더 유용한 시사점은 더 미묘했습니다. AI는 소프트웨어 인도의 어려운 부분이 어디에 위치하는지를 변화시킨다는 점입니다.
코드를 작성하는 것은 더 빨라질 수 있습니다. 하지만 적절한 요청을 이해하고, 실제 진행 상황을 측정하며, 정확성을 검증하고, 워크플로를 정렬된 상태로 유지하는 것이 새로운 압박 지점(pressure points)이 되고 있습니다.
이 포스트에서는 시니어 테크 리드들과의 전략적 대화를 독점적으로 요약하여 공유하며, 여러분의 팀이 더 큰 확신을 가지고 소프트웨어 인도를 위한 AI 탐색을 할 수 있도록 돕는 대화 질문들도 함께 제공합니다.
1. 명세 기반 개발(Specification-driven development)은 유망하지만, 워크플로 정렬(workflow alignment)은 여전히 까다롭습니다
여러 팀이 명세 기반 개발(specification-driven development)을 실험하고 있습니다. 한 팀은 더 가벼운 오픈 명세(open-spec) 접근 방식과 워크플로를 더 많이 규정하는 더 구조화된 프레임워크를 비교했습니다. 초기 신호는 긍정적이었습니다. 명세(specs)는 AI 출력을 안내하는 데 도움을 주고 구현을 더 통제 가능한 것처럼 느끼게 합니다.
문제는 무엇일까요? 바로 동기화(Synchronization)입니다.
작업(tasks)은 프로젝트 트래커(project tracker)에 있고, 테스트는 명세 프레임워크(spec framework)에 있으며, AI가 이 둘 모두에서 작동할 때, 팀들은 새로운 질문을 던지기 시작합니다:
- 트래커(tracker)가 여전히 신뢰할 수 있는 단일 원천(source of truth)인가?
- 태스크(tasks)를 저장소(repository)에 더 가깝게 선언해야 하는가?
- 명세(specs), 티켓(tickets), 프롬프트(prompts), 그리고 PR(Pull Requests)이 서로 어긋나는 것을 어떻게 방지할 것인가?
이는 새로운 모습을 하고 나타난 익숙한 소프트웨어 품질 문제입니다. AI가 공유된 컨텍스트(shared context)의 필요성을 없애지는 않습니다. 오히려 시스템이 잘못된 방향으로 자신 있게 가속할 수 있기 때문에, 오래된(stale) 컨텍스트의 비용을 더 높게 만듭니다.
대화 주제: AI 보조 작업의 신뢰할 수 있는 단일 원천(source of truth)은 어디에 있어야 할까요: 트래커, 저장소, 명세, 아니면 정교하게 결합된 조합일까요?
2. AI는 인지 부하(cognitive load)를 높이면서 코딩 시간을 줄일 수 있습니다
반복적으로 나타난 주제 중 하나는 정신적 부하(mental load)였습니다. AI는 더 많은 코드, 더 큰 PR, 그리고 더 넓은 솔루션을 생성할 수 있지만, 인간은 여전히 무엇이 변했는지, 왜 변했는지, 그리고 그것이 도메인(domain)에 부합하는지를 이해해야 합니다.
한 리드(lead)는 대규모 요청을 더 명확하게 설명하기 위해 맞춤형 AI 스킬(custom AI skills)을 사용하는 사례를 설명했습니다. 팀은 AI에게 단순히 코드를 생성하도록 요청하는 대신, 학습 기법을 조사하고 이를 개념, 목표, 비목표(non-goals), 그리고 트레이드오프(tradeoffs)를 분해하는 데 도움이 되는 재사용 가능한 스킬로 패키징하는 데 AI를 활용했습니다.
이는 유용한 패턴입니다: 즉, AI를 단순한 생산 도구(production tool)가 아닌 이해 도구(comprehension tool)로 사용하는 것입니다.
과거의 병목 현상(bottleneck)은 종종 "이것을 구현할 수 있는가?"였습니다. 새로운 병목 현상은 "이것을 충분히 빠르게 이해하고 검증할 수 있는가?"가 될 수 있습니다.
대화 주제: AI가 생성하거나 AI의 도움을 받은 코드를 검토할 때, 리뷰어의 인지 부하(cognitive load)를 줄이는 데 도움이 될 수 있는 워크플로(workflows)는 무엇일까요?
3. 최선의 AI 워크플로는 범용적이지 않고 프로젝트별로 특화될 수 있습니다
프론트엔드 사례가 이를 명확히 보여주었습니다. AI는 스크린샷으로부터 디자인 시스템 컴포넌트(design system components)와 CMS 기반 섹션을 생성하는 데 유용했지만, Figma 스타일의 비주얼을 해석하는 데는 완벽하지 않았습니다. 팀은 프롬프트(prompts)를 개선하고 프로젝트별 지침(project-specific instructions)을 생성함으로써 결과를 향상시켰습니다.
또 다른 리더는 이를 "AI의 출력을 수정하는 것"에서 "프로세스를 수정하는 것"으로의 전환이라고 설명했습니다. 동일한 실수를 수동으로 반복해서 수정하는 대신, 팀은 프롬프트(prompts), 규칙(rules), 메모리(memories), 예시(examples), 제한 사항(restrictions), 그리고 검증 루프(validation loops)와 같은 하네스(harness)를 업데이트할 수 있습니다.
그러한 사고방식은 중요합니다. 만약 동일한 AI 실수가 두 번 발생한다면, 그것은 코드의 문제가 아닐 수도 있습니다. 그것은 워크플로 설계(workflow design)의 문제일 수 있습니다.
이는 Stack Builders의 더 넓은 AI 포지셔닝과 일치합니다. AI는 품질, 보안, 그리고 장기적인 유지보수성(maintainability)을 보존하면서 가치를 창출하는 곳에 적용되어야 합니다.
대화 시작하기 (Conversation starter): 우리 팀에서 반복적으로 발생하는 AI 실수 중 팀 차원의 규칙, 테스트 또는 재사용 가능한 기술이 되어야 할 것은 무엇인가요?
4. AI의 영향력을 측정하는 것은 PR 개수를 세는 것보다 어렵습니다
한 팀은 도입 전후의 기간을 비교함으로써 AI의 영향력을 측정하기 시작했습니다. 그들은 초기 측정 기간 동안 생성된 PR(Pull Requests)이 36% 증가했다고 보고했지만, 팀은 그것을 전체 이야기로 취급하지 않도록 주의했습니다.
그러한 주의가 중요합니다. 더 많은 PR은 더 높은 처리량(throughput)을 의미할 수도 있지만, 더 많은 리뷰 부하, 더 많은 미완성 작업, 또는 더 많은 후속 조정(downstream coordination)을 의미할 수도 있습니다.
그룹은 다음과 같은 대안적인 지표들을 논의했습니다:
- 티켓 오픈부터 티켓 완료까지의 시간
- 생성, 종료 및 병합(merged)된 PR
- 해결된 리뷰 코멘트(Review comments)
- QA 및 스테이징(staging)을 거치는 사이클 타임(Cycle time)
- DORA 및 SPACE와 같은 팀 수준의 생산성 프레임워크
- 단일 지표만으로 신뢰할 수 있는 이야기를 전달할 수 있는지 여부
유용한 프레임워크가 도출되었습니다: AI 지표는 개발자의 활동(activity)과 전달 결과(delivery outcomes)를 구분해야 합니다. PR은 활동입니다. 검증되고, 배포되었으며, 유지보수 가능한 변경 사항이 결과입니다.
대화 시작하기 (Conversation starter): 단순히 코드 양에 보상을 주지 않으면서, AI의 도움을 받은 전달(delivery)을 가장 잘 포착할 수 있는 지표의 조합은 무엇인가요?
5. 스토리 포인트(Story points)는 새로운 의미가 필요할 수 있습니다
AI는 전통적인 추정(estimation) 방식에 도전합니다. 적절한 모델, 컨텍스트(context), 그리고 리뷰 경로가 있다면 예전에 며칠이 걸리던 작업이 이제는 오후 한때에 완료될 수도 있습니다.
이 논의를 통해 두 가지 가능한 변화가 부상했습니다.
한 가지 접근 방식은 시간 대신 복잡성(complexity)을 추정하는 것입니다. 쉬운 작업은 가벼운 리뷰와 함께 AI가 잘 처리할 수 있는 반면, 더 어려운 작업은 더 세심한 인간의 검증(validation)을 필요로 합니다.
또 다른 접근 방식은 요구되는 판단(judgment)의 수준을 추정하는 것입니다. 어떤 작업은 코드를 작성하는 데 시간이 오래 걸린다고 해서 반드시 "규모가 큰" 것은 아닙니다. 그 접근 방식이 올바른지 확인하기 위해 깊은 도메인 지식(domain knowledge)을 가진 사람만이 검증할 수 있다면, 그 작업은 규모가 큰 것일 수 있습니다.
이는 날카로운 통찰입니다. AI 보조 전달(AI-assisted delivery) 환경에서 희소한 자원은 타이핑이 아닐 수도 있습니다. 그것은 바로 판단력일 수 있습니다.
대화 시작하기: 추정 시 구현 노력(implementation effort), 리뷰 리스크(review risk), 도메인 판단(domain judgment), 또는 이 세 가지 모두를 고려해야 할까요?
6. 병렬 에이전트(Parallel agents)는 폭발적인 진전을 이끌어낼 수 있지만, 인간의 분류(triage)가 필요합니다
한 실험에서는 AI 워크플로우를 사용하여 약 15개의 이슈를 여러 에이전트에게 병렬로 위임하는 방식을 사용했습니다. 에이전트들은 이슈를 조사하고, 분류(triage)하며, 명확한 이슈 중 상당수를 해결하고, 인간의 개입이 필요한 사례들을 찾아냈습니다. 결과적으로: 많은 PR이 빠르게 생성되었으며, 대부분의 인간의 주의력은 실제로 판단이 필요한 소수의 이슈에 집중되었습니다.
이러한 패턴은 중요해 보입니다. AI는 알려진 작업 전반으로 확장(fan out)될 수 있지만, 인간은 여전히 성공 조건(success conditions)을 정의하고, 결과를 검토하며, 모호함(ambiguity)을 처리해야 합니다.
PR을 모니터링하거나, 빌드 실패를 수정하거나, 성공 조건이 충족될 때까지 루프를 도는 등의 다른 도구와 워크플로우도 언급되었습니다. 이러한 방식들은 유망하지만, 거버넌스(governance)에 대한 질문도 제기합니다. 리뷰 프로세스가 진정한 전달 병목 현상(bottleneck)이 되기 전에 에이전트에게 어느 정도의 자율성을 부여해야 할까요?
대화 시작하기: 에이전트 군집(agent swarms)에게 맡기기에 안전한 작업은 무엇이며, 어떤 작업은 의도적으로 인간 주도로 남겨두어야 할까요?
7. 모델 선택과 접근 권한이 여전히 개발자 경험을 결정합니다
또한 팀들은 도구와 모델에 따라 경험이 불균등하다고 보고했습니다. 일부는 TypeScript에 대한 Copilot 사용과 작은 Haskell 변경 사항에서 강력한 결과를 얻었습니다. 반면, 선호하는 도구에 대한 접근 권한을 잃거나, 환각 (hallucinations), 더 느린 모델, 또는 토큰 제한 (token limits) 문제를 겪을 때 마찰을 보고했습니다.
이는 AI 도입이 단순히 방법론의 문제가 아니라는 점을 상기시켜 줍니다. 이는 또한 인프라 (infrastructure)의 문제입니다. 동일한 워크플로 (workflow)라도 모델의 품질, 토큰 가용성, 통합 (integration), 지연 시간 (latency), 그리고 조직적 제약 조건에 따라 원활하게 느껴질 수도 있고 고통스럽게 느껴질 수도 있습니다.
대화 시작하기 (Conversation starter): 팀은 하나의 AI 툴체인 (toolchain)으로 표준화해야 할까요, 아니면 각 프로젝트가 가장 적합한 모델과 워크플로를 사용할 수 있도록 유연성을 유지해야 할까요?
이 대화가 우리에게 말해주는 것
논의에서 나타난 가장 강력한 주제는 AI 도입이 단순히 새로움에 관한 것이 아니라, 엔지니어링 규율 (engineering discipline)에 관한 것이 되어가고 있다는 점입니다.
팀들은 "AI가 코드를 작성할 수 있는가?"라고 묻지 않습니다. 그들은 더 나은 질문을 던지고 있습니다:
- 어떻게 하면 AI를 프로젝트별 표준에 맞게 정렬 (aligned)할 수 있을까?
- 리뷰 (review) 중 인지 부하 (mental load)를 어떻게 줄일 수 있을까?
- 실제 전달 (delivery) 임팩트를 어떻게 측정할 수 있을까?
- 추정 (estimation)은 어떻게 진화해야 하는가?
- 무엇이 시니어의 판단을 필요로 하는가?
- 어떤 워크플로가 프로젝트 전반에 걸쳐 재사용 가능해야 하는가?
- AI가 어디에서 새로운 리스크나 병목 현상 (bottlenecks)을 유발하는가?
그것이 현재의 진짜 작업입니다. AI는 출력을 가속화할 수 있지만, 내구성 있는 소프트웨어는 여전히 명확한 프로세스, 세심한 리뷰, 공유된 컨텍스트 (context), 그리고 숙련된 판단에 달려 있습니다.
실질적인 다음 단계
실험 단계에서 신뢰할 수 있는 AI 지원 전달 (AI-assisted delivery) 단계로 넘어가려는 팀이라면, 하나의 워크플로 압박 지점 (pressure point)을 선택하여 작은 실험으로 전환하는 것부터 시작하십시오:
- 대규모 요청 (large requests)을 이해하기 위한 재사용 가능한 기술 (reusable skill)을 생성하십시오.
- 반복되는 실수에 대해 프로젝트별 AI 규칙 (project-specific AI rules)을 추가하십시오.
- AI 도입 전후의 티켓 사이클 타임 (ticket cycle time)을 비교하십시오.
- PR 볼륨뿐만 아니라 리뷰 노력 (review effort)을 추적하십시오.
- 리스크와 판단력을 중심으로 스토리 포인트 (story points)를 재구성하십시오.
- PM 및 기술 리드 (technical lead)가 참여하는 AI 보조 정제 (AI-assisted refinement)를 시도하십시오.
- 두 가지 명세 기반 워크플로 (spec-driven workflows) 간의 A/B 테스트를 실행하십시오.
목표는 AI 사용량을 키우는 것이 아닙니다. 목표는 AI 사용을 더 읽기 쉽고 (legible), 측정 가능하며 (measurable), 신뢰할 수 있게 (trustworthy) 만드는 것입니다.
AI는 소프트웨어 전달 (software delivery) 방식을 바꾸고 있지만, 북극성 (north star)은 여전히 익숙합니다: 신뢰할 수 있는 시스템을 구축하고, 품질을 가시화하며, 엔지니어링 판단력 (engineering judgment)을 포기하지 않으면서 더 나은 도구를 사용하는 것입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기