TL;DR

  • 소프트웨어 팩토리가 작업 관리 도구를 늘리는 대신, 에이전트 실행 속도와 인간의 입출력(HCI)을 개선해 더 적은 에이전트로도 같은 생산성을 내도록 해야 함.
  • 에이전트가 느릴 때 새 에이전트를 추가해 지연을 숨기는 방식은 인간의 흐름 상태와 정신적 페이지 캐시를 망가뜨림.
  • 인간과의 대화에는 코딩 도구 없이 짧고 집중된 문맥을 사용하는 빠른 모델 Luna 6를 활용할 수 있음.
  • Shelley의 화면 녹화 기능은 오디오와 화면을 함께 기록해 발언을 당시 화면 내용과 연결하며, 시각 작업에서 더 깊고 풍부한 피드백을 가능하게 함.
  • HTML 산출물과 DOM 기록, 피드백 실시간 전송을 활용해 인지 부담을 줄이고 집중을 유지하는 방식을 실험 중임.

작업 관리가 소프트웨어 팩토리는 아님

  • 지난주 콘퍼런스에서 본 여러 소프트웨어 팩토리 시연은 칸반 보드, Slack 인터페이스, 이메일 인터페이스, 의존성 그래프, 티켓 관리, 그래픽 인터페이스 등 모두 작업 관리에 집중함.
  • 에이전트의 실행 속도가 느릴 때 지연을 숨기는 쉽고 명백한 방법은 막힐 때마다 새 에이전트를 시작하는 것임.
  • 그러나 동시 작업은 사람에게 스트레스를 주며, 흐름 상태를 깨고 정신적 페이지 캐시를 뒤흔듦.
  • 작업 관리는 해결책이 아니라 임시방편임.
  • 필요한 것은 에이전트 수를 줄이면서도 같은 생산성을 낼 수 있게 하는 것임.

쓴 교훈이 해결책이 될까?

  • 모델이 개선되면 ‘충분히 좋은’ 모델은 점점 더 빨라질 것이며, 이는 자연스럽게 지연과 동시 작업을 줄임.
  • 테스트를 빠르게 실행하는 등 전통적인 엔지니어링도 계속 필요함.
  • 다만 이런 변화를 기다릴 필요는 없으며, exe에서 몇 가지 접근법을 실험 중임.

사람과 대화할 때 빠른 모델 사용

  • 작업은 강력한 모델로 시작하되, 긴 글을 읽고 에세이로 답하는 대신 인간과의 모든 소통을 Luna 6 같은 빠르고 유능한 모델에 맡기는 방식임.
  • Luna에는 코딩 도구를 제공하지 않고, 문맥 창을 의도적으로 짧게 설정해 사람과의 대화에 필요한 내용에만 집중시킴.
  • 작업 진행 상황을 확인할 때 Luna와 실시간으로 대화할 수 있으며, 빠른 피드백 주기로 주의가 분산되지 않고 더 오래 참여할 수 있음.
  • Luna가 준비된 정보를 모두 소진하면 더 강력한 모델이 다시 작업을 이어받고, 풍부하고 구체적인 사용자 피드백을 활용함.
  • 이 방식은 상당히 잘 작동하지만, 대화로 정보를 주고받는 방식 자체가 제약이 됨.
  • 소통을 좁은 통로에 밀어 넣는 일은 답답함을 유발함. Luna가 흥미롭고 유연한 빨대일 수는 있어도 여전히 빨대임.

화면 녹화

  • 이 문제를 해결하기 위해 인간-컴퓨터 상호작용(HCI)에 주목함.
  • 손으로 코딩하던 시절에는 텍스트가 가득한 화면을 찬찬히 살피고, 파일 사이를 자유롭게 오가며 생각할 수 있었음.
  • 반면 대부분의 코딩 하네스가 보여주는 사용자 인터페이스(UI)는 하나의 선형 텍스트 스레드이며, 관련 없는 도구 호출이 자주 끼어듦.
  • 사람에게 주어지는 주도권과 통제권은 거의 없고 정보 구조도 없음. 뒤늦게 응답하는 하위 에이전트의 잡음이 주 에이전트의 응답을 덮어 가장 중요한 내용이 항상 아래에 있다고 기대할 수도 없음.
  • 에이전트에 맞춰 사람이 적응하게 하는 대신, 사람의 주도권을 되살리고 인간의 입출력에 최적화하는 방법을 찾는 것이 과제임.
  • 입력 측면에서 인간의 망막은 구조가 주어지면 강력한 정보 처리 시스템으로 작동함. 터미널 로그가 초당 30프레임으로 흘러가도 Go 패닉 스택 트레이스를 찾아낼 수 있음.
  • 출력 측면에서는 가장 빠른 타이피스트도 보통 말하기보다 느리게 입력함.
  • 타이핑에는 컴퓨터의 다른 여러 요소와의 조율도 필요함. 텍스트 입력 창에 포커스를 맞추고 커서를 올바른 위치에 둬야 하며, 키보드와 마우스로 할 수 있는 일과 볼 수 있는 대상도 제한됨.
  • Shelley를 비롯한 여러 코딩 에이전트는 텍스트, 변경 사항(diff), 웹 페이지에 주석을 달 수 있는 기능으로 이를 보완했지만, 여전히 클릭이 필요하고 다른 모든 구성 요소의 협조에 의존함.
  • 최근 Shelley에 사람을 위해 설계한 간단한 화면 공유 기능을 출시함.
  • 카메라 버튼을 누르면 Shelley가 오디오와 화면을 녹화하므로, 화면을 살펴보며 소리 내어 생각할 수 있음.
  • 화면에 보이는 모든 것을 가리키고 말하거나 언급할 수 있으며, 둘러보고 생각을 이어 가거나 되돌아가고, 말을 흐리거나 다시 시작하고, 생각을 바꾸는 등 자유로운 방식으로 피드백을 남길 수 있음.
  • 에이전트는 두서없이 이어지는 말을 이해하는 데 매우 능숙함.
  • 녹화를 멈추면 Shelley가 단어 단위 타임스탬프를 포함해 오디오를 전부 전사하고, 영상에서 콘택트 시트를 생성함.
  • 발언 시점의 화면 내용과 말을 연결해 피드백을 정리하는 어려운 작업을 컴퓨터가 맡음.
  • 경험상 이 상호작용 방식은 에이전트와 채팅하는 것보다 대체로 더 깊고 풍부하며 길고 몰입도 높은 피드백을 만들어냄. UI 작업이나 시각적인 작업에서 특히 유용함.

DOM 기록

  • 시각 작업이 아닌 엔지니어링 작업에도 같은 아이디어를 적용할 수 있음.
  • 인간의 인지 특성 중 하나는 추상적인 설명보다 구체적인 사례를 잘 다룬다는 점임. 에이전트는 설명을 들어도 괜찮지만 사람은 직접 보여주는 방식을 선호함.
  • 사람에게는 다이어그램, 차트, 시각적으로 구조화된 변경 사항 비교도 유용함.
  • 이를 바탕으로 Shelley에 아직 출시하지 않은 별도의 시스템을 사용 중임.
  • 에이전트가 원시 텍스트를 쏟아내는 대신 HTML 산출물을 생성함.
  • 이 HTML은 시각적 잡음을 줄이고, 장황함과 복잡성을 과감하게 낮추며, 정보를 시각적으로 구조화하고 탐색을 쉽게 하도록 표준화됨.
  • 일반적인 섹션에는 주요 결정 사항, 미해결 질문, 사례, Git 변경 사항 비교가 포함됨.
  • HTML 산출물에는 녹화 버튼이 포함됨. 버튼을 누르면 오디오를 녹음하며, 화면 녹화 대신 비용이 더 낮고 정밀한 페이지 내 DOM 추적 JavaScript를 사용함.
  • DOM 추적기는 현재 보고 있는 항목, 스크롤 위치, 포인터 위치(포인터가 있는 경우), 강조 표시된 텍스트, 클릭·탭 위치를 타임스탬프와 함께 기록함.
  • 앞선 방식과 마찬가지로 타임스탬프를 오디오와 연결해 에이전트에 다시 전달함.
  • 이 방식은 정신적 부담을 줄여 콘텐츠에 집중할 수 있게 함.

지연을 더 숨기는 방법

  • 콘텐츠에 깊이 참여하는 데 시간이 걸리므로, 지연을 숨기는 방법을 추가로 적용할 수 있음.
  • 아직 실험 중인 아이디어는 피드백이 녹음되는 동안 그 앞부분을 에이전트에 보내고, 에이전트의 응답을 이미 보고 있는 동일한 HTML 산출물의 탭으로 실시간 전송하는 방식임.
  • 10분 동안 읽고 살펴보는 사이 질문을 하고 잠정적인 지침을 제공하게 됨.
  • 다른 작업으로 전환하기 전에 일부 질문의 답변을 받아볼 수 있고, 일부 설계 결정에 대해서는 후속 질문을 받을 수 있으며, 녹화는 계속 진행됨.
  • 이 방식은 집중을 깨지 않고 에이전트와의 왕복을 한 차례 추가함.

아직 할 일이 남아 있음

  • 아직 에이전트 한두 개로 여러 에이전트를 사용할 때와 같은 순처리량을 내지는 못함.
  • 다만 조금씩 주의력을 되찾고 있음.