시행착오를 통한 학습과 애자일 방법론

우리는 시행착오(Trial & Error)를 통해 배웁니다. 애자일 방법론은 시행착오를 통한 학습을 프로그램 개발에 적용한 기법입니다.

폭포수 방법론

프로그래밍 분야에서 예전부터 사용하던 폭포수 방법론에서는 프로그램 설계 – 구현 – 배포 (단순화했습니다) 단계가 순차적으로 진행됩니다. 설계가 끝나면 구현을 시작하고, 구현이 끝나면 배포하는 방식이지요. 구현이 끝나야 최종 결과물이 나오기 때문에 결과물을 얻는데 소요되는 기간이 길어지게 됩니다. 그래서 예전에는 소프트웨어가 1년에 한 번 정도씩 업데이트되어 나왔죠. 최종 결과물이 소비자 마음에 안 든다면? 피드백을 받아 개선해서 새 제품을 내놓는데 또 오랜 시간이 걸립니다. 소비자들의 요구 사항이 빠르게 변하는 세상, 불확실성이 큰 세상에서는 적절치 못한 방법이죠.

애자일 방법론

그래서 애자일 방법론이 나왔습니다. 애자일 방법론에서는 설계 – 구현 – 배포로 이어지는 개발 주기(피드백 고리)를 몇 주 정도로 짧게 잡습니다. 전체 기능을 작은 부분들로 나눠서 중요한 것부터 구현해갑니다. 핵심 기능부터 시작해서 점점 개선해가는데, 완제품이 나오기 전부터 소비자들에게 배포해서 빠르게 피드백을 수집하고 반영합니다. 그래서 요즘 프로그램들 중에는 몇 주 또는 몇 달 간격으로 새로운 버전이 나오는 경우가 많죠.

  1. 문제: 소비자 만족
  2. 여러 가지 가설 시도: 조금씩 개선된 버전 자주 출시
  3. 실패한 해결책 제거: 피드백을 통해 소비자 불만 제거 (2, 3 단계 반복)

각각의 버전들(작은 시도들)이 소비자 만족이라는 문제를 해결하기 위한 가설이 됩니다. 여러 시도들로부터 빠르게 피드백을 받아 프로그램을 개선해갑니다. 소비자를 만족시킬 완벽한 해결책은 존재하지 않을지 모르지만, 이러한 과정을 통해 쓸만한 해결책에 점점 가까워집니다. 개발자들도 시행착오를 통해 배웁니다.

댓글 남기기