AI 생산성 격차: 우리가 생각하는 것보다 작업 효율은 덜 오른다
AI가 코드 작성 속도를 크게 높였음에도 불구하고, 개발자의 실제 업무 중 순수 코딩 비중은 작고 설계 및 디버깅 등에 많은 시간이 소요되어 전반적인 생산성 향상은 제한적입니다. 특히 AI는 주니어 개발자의 작업 효율을 크게 높여주지만, 시스템 설계와 복잡한 문제 해결이 필수적인 시니어 개발자의 생산성은 기대보다 덜 향상시킵니다. 따라서 경영진은 AI가 즉각적인 극적 생산성 향상을 가져올 것이라는 환상에서 벗어나 실무의 복잡성을 이해해야 합니다.
AI가 이미 엔지니어링 팀의 생산성을 크게 높였으며, 앞으로 몇 년간 더욱 발전할 것이라는 점은 의심의 여지가 없습니다. 하지만 일부 리더들은 프로토타입을 빨리 뽑아내는 속도로 완벽하게 구현된 기능(production features)도 즉시 만들어낼 수 있다고 생각합니다. 안타깝게도 실제 서비스용 기능을 구축하는 데에는 여전히 예전과 거의 비슷한 시간이 걸리는 것 같습니다. AI가 우리 모두를 초고효율의 10배 엔지니어(10xers)로 만들어주지 않았나요?
이러한 AI 생산성 격차를 이해하려면, 개발자들이 실제로 하루 일과를 어떻게 구성하는지 인정해야 합니다. 현실에서 새로운 코드를 작성하는 데 대부분의 시간을 쓰는 것은 아닙니다. 특히 시니어 엔지니어들은 어떤 코드를 작성해야 하는지 파악하는 데 많은 시간을 할애하며, AI는 아직 그 부분을 더 쉽게 만들지 못했습니다.
때로는 AI가 코딩 외의 작업을 오히려 더 느리게 만든다는 것을 알아차리기도 합니다. 예를 들어, AI가 작성한 제품 요구사항 문서나 Linear 티켓을 검토할 때 사람이 직접 작성한 문서를 검토할 때보다 더 오래 걸립니다. AI가 작성한 글은 지나치게 세세한 경향이 있어 핵심을 파악하기 더 어려울 수 있습니다. 하지만 AI를 통해 나의 작업은 쉽게 만들면서 다른 사람의 작업은 더 어렵게 만드는 것은 또 다른 주제입니다. 일단 이 글에서는 AI가 그저 도움만 된다고 가정해 봅시다. 그렇다 해도 상황은 생각만큼 장밋빛이 아닙니다.
먼저 시니어 개발자를 살펴보겠습니다. 빅테크 기업에서 일하는 시니어 개발자의 하루는 다음과 같을 수 있습니다:
- 신규 코드 작성: AI 도입 전 1.5시간 -> 도입 후 0.5시간
- 코드 읽기 및 디버깅: 1.5시간 -> 1.0시간
- 설계 및 아키텍처: 1.0시간 -> 1.0시간
- 코드 리뷰: 0.75시간 -> 0.75시간
- 문서화 및 관리: 0.75시간 -> 0.75시간
- 테스트, CI/CD, 배포: 0.5시간 -> 0.75시간
- 멘토링 / 페어 프로그래밍: 0.5시간 -> 0.5시간
- 회의: 1.5시간 -> 1.5시간
- 총합: 8.0시간 -> 6.75시간
따라서 AI가 코딩 속도를 3배 높여주고(신규 코드가 늘어났으므로 테스트, CI/CD 및 배포에 약간의 시간이 더 소요된다고 가정할 때), 이 시니어 개발자는 하루에 고작 1.25시간, 즉 약 15%의 시간을 절약합니다.
이제 비슷한 상황의 주니어 개발자를 살펴봅시다:
- 신규 코드 작성: AI 도입 전 2.75시간 -> 도입 후 1.0시간
- 코드 읽기 및 디버깅: 1.5시간 -> 1.0시간
- 설계 및 아키텍처: 0시간 -> 0시간
- 코드 리뷰: 0.5시간 -> 0.5시간
- 문서화 및 관리: 0.5시간 -> 0.5시간
- 테스트, CI/CD, 배포: 0.75시간 -> 1.0시간
- 학습 / 페어 프로그래밍: 1.0시간 -> 1.0시간
- 회의: 1.0시간 -> 1.0시간
- 총합: 8.0시간 -> 6.0시간
AI는 이 주니어 개발자에게 하루 2시간을 절약해 주어 약 25%의 효율성을 높여줍니다. 이는 시니어 개발자보다 더 큰 향상인데, 주니어 개발자가 AI가 가장 크게 도와주는 코딩 작업에 더 많은 시간을 사용하기 때문입니다. AI가 주니어 개발자에게 더 큰 도움을 준다는 점을 생각하면, 내가 리더들로부터 "AI가 이제 주니어들의 일을 대신하니까 우리는 시니어 엔지니어만 고용한다"는 말을 아직도 듣는 것은 아이러니합니다. 현실에서 AI로부터 가장 큰 이득을 얻는 것은 주니어 개발자들입니다. 특히 사소한 일을 기꺼이 대신해 주는 열성적인 조수가 아닌 학습 도구로 AI를 잘 다룰 줄 알 때 더욱 그렇습니다.
위의 관찰 결과가 놀랍거나, 개발자들이 하루에 몇 시간 이상 실제로 코드를 작성하는 데 시간을 보낸다고 생각한다면, 여러분은 아마 이 직업의 진정한 복잡성을 이해하지 못할 것입니다. 이렇게 생각해 보세요. 코딩은 잘하지만 시스템을 추론하는 데 어려움이 있고, 다른 사람들과 어려운 문제를 해결해 나갈 인내심이 없으며, 모호한 요구사항을 구체적인 실행 항목으로 세분화할 수 없는 사람을 뽑는다고 상상해 보십시오. 저는 이 사람을 채용하지 않을 것입니다. 그들에게 결여된 기술이 업무에서 가장 중요한 부분이기 때문입니다. 코딩을 잘하는 것은 이제 누구나 갖춰야 할 기본 조건일 뿐입니다.
물론 AI는 계속 발전하고 있으며, 개발자 업무의 더 많은 부분을 능숙하게 처리하게 되면 생산성도 계속 높아질 것입니다. 하지만 지금 당장은, 특히 시니어급 개발자들에게 획기적인 생산성 향상을 기대하지 마십시오.
주석:
- 여기서 구체적인 수치에 대해서는 의견이 다를 수 있지만, 이 수치가 너무 터무니없다고 생각한다면 당신은 아마 시니어 개발자가 되어본 적이 없을 것입니다. ↩
- Andrew Murphy는 컨퍼런스에 다녀와서 '불을 처음 발견한 것처럼 AI가 이제 주니어 업무를 대신한다'고 말하는 오해에 빠진 VP들에 대해 더 자세히 글을 썼습니다. ↩
- 이러한 이유로 최근 많은 사람들이 도어맨 오류(doorman fallacy)에 대해 이야기하는 것을 듣게 되었습니다. ↩