위의 책 내용을 참고 하여 정리한 글입니다.
자세한 내용은 책에서 확인하세요.
" 좋음, 빠름, 저렴함, 완성. 이 중 셋만 고를 수 있다. 네 번째 것은 가질 수 없다. " - Iron Cross
저렴하며 빠르고 완성은 가능하지만 과연 좋은 품질을 가질까?
빠르고 좋고 완성은 가능하지만 과연 저렴할까?
애자일에서 좋은 관리자는 네 가지 조건을 100%로 만들려 하지 않고 가중치를 관리한다.
뭘 보고 가중치를 정해야 할까?
프로젝트를 진행하고 있다.
마감 기한은 두달이 남았고, 아직 시작도 못한 기능을 넘쳐나고 있다.
좋고 빠르고 저렴하고 완성까지 하는 것은 불가능하다.
무언가의 가중치를 낮춰야하는데 뭘 보고 판단 할 것인가?
이러한 데이터는 애자일을 통해서 얻을 수 있다.
애자일
분석한다.
애자일에서의 분석은 시작은 있고 끝은 없다.
프로젝트 전반에 걸쳐서 분석을 진행한다.
마감기한에 맞춰 일정을 일정한 크기로 작게 나눈다.
이것을 "반복 주기" 또는 "스프린트" 라 한다.
반복 주기 0
기능 목록을 만들고 이를 "스토리" 라 부른다.
개발 환경 세팅, 스토리 크기 측정, 최초의 계획을 세우고,
아키텍쳐의 설계에 대한 밑그림을 그린다.
반복 주기 1
"반복 주기 0" 에서 만들어 둔 스토리중 이번 "반복 주기" 에 하기로 한 작업들을 진행한다.
당연하게 모든걸 완료할 수 는 없다.
대신 이를 통해 첫 번째 데이터를 얻었다.
반복 주기 2 ~ N
"반복 주기 1" 에서한 행동들을 반복한다.
몇 번의 반복이 더 진행되면 "주기당 완료 스토리의 개수" 에 대한 데이터를 얻을 수 있다.
데이터가 정확하지는 않지만 계획에 대한 오차 범위는 줄어 든다.
희망 제거
데이터를 통해 마감기한에 맞출거라는 희망이 사라진다.
이것이 애자일의 주요 목표이다.
다시 처음 질문으로 돌아가자면
우리는 이제 팀의 작업량, 남은 작업량, 기한, 모든 것에 대한 데이터를 가지고 있다.
마감 기한은 두달이 남았고, 아직 시작도 못한 기능을 넘쳐나고 있다.
-> 팀의 주간 평균 작업량은 평균 40 이고 남은 기간이 두달, 총 남은 작업량은 대략 500이 남았다.
이제 우리는 가중치를 어떻게 바꿀것이 선택할 수 있다.
일정 변경하기
평균 작업량과 남은 작업량을 통해 작업이 완료 될 수 있는 시점을 변경할 수 있다.
= 빠름의 가중치를 낮추기
사람 추가하기
작업량을 늘리기 위해 사람을 추가할 수 있다.
브룩스의 법칙에 의해 작업량은 더 떨어질 수 있다.
충분한 시간이 있다면 작업량은 이전보다 높아지지만, 일정에 쫒긴다면 좋은 선택은 아니다.
= 저렴함의 가중치 낮추기 ( 길게 보면 빠름의 가중치도 높이는 것인가? )
품질 떨어트리기
"쓰레기를 만든다고 더 빨리 갈 수는 없다."
오히려 일정이 더 딜레이 될 수 있다.
일정을 당기고 싶다면 품질을 올려야 한다.
= 좋은의 가중치 낮추기
범위 변경하기
중요도가 떨어지는 기능을 빼면된다.
만약 그런 기능이 이미 개발되었다면,
분석 과정에서 기능의 우선순위를 더 주의해야했다.
= 완성 ( 전체 기능의 구현 ) 의 가중치 낮추기
애자일
애자일은
프로젝트를 반복주기로 나누고,
결과물의 측정하여 데이터를 수집하고,
우선순위에 맞춰 개발하고,
높은 품질은 유지하고,
일정에 맞춰 범위를 조절하는 것이다.
'개발' 카테고리의 다른 글
잘되던 쿼리 heroku 에서만 에러 날때 (0) | 2021.02.18 |
---|---|
Clean Agile - Chapter 5 (0) | 2021.01.28 |
Clean Agile - Chapter 4 (0) | 2021.01.21 |
Clean Agile - Chapter 3 (0) | 2021.01.18 |
Clean Agile - Chapter 2 (0) | 2021.01.14 |