• Scrum의 과정
○ Planning Meeting
○ Kanban board - Trello 등을 사용하여 진행
○ Daily Standup Meeting 서서 진행한다는 것은 회의 후 바로 일을 시작하고자 하는 효율성의 상징
○ Github - PR & Code Review
• 2 week projects - 2 Sprints
위 그림은 IT 프로젝트의 초기 요구사항의 불확실성, 복잡성에 대해서 각 담당자가 이해한 결과물을 보여준다. 사실 고객은 나무에서 타이어 그네를 타고 싶었습니다. 프로젝트가 끝날 때쯤에 알았다면 이미 늦어 버린 것이다.
프로젝트 기간, 비용, 품질 3박자를 충족시키고 시장(고객)의 반응이 좋을 때 성공했다고 판단한다. 여기서 한 가지 더 개발사도 만족한다면 최고의 성공이라고 생각한다.
따라서 프로젝트 성공에 대한 관점을 3가지로 보게되는데,
전체 개발 프로젝트의 68% 정도가 실패하게 된다고 한다 여기서 말하는 실패란 다음과 같은 상황을 이야기 한다.
소프트웨어 개발 프로젝트 운영은 어렵다. 단순히 시간을 많이 쓴다고 해서 잘되는게 아니다. 만일 단순히 시간과 비례한다고 하면 노동시간이 긴 회사나 국가가 소프트웨어 개발을 잘했을 것이다. 하지만 현실은 그렇지 않다. 왜냐하면 인류에게도 길게 잡아 60년정도. 우리나라는 20년 정도로 새로운 분야이기 때문에 아직까지 발전단계에 있어서 그렇다. 산업이 비교적 최근에 생긴 만큼 소프트웨어 프로젝트 운영에 관해 많은 노하우나 경험이 쌓여있지 않기 때문에 많은 회사들과 담당자들이 자신들이 익숙한(그러나 소프트웨어 프로젝트 운영에 적합하지 않은) 방식으로 운영하기 때문에 그런 것도 있다.
• 그래도 역시 미국이 선두주자
• 소프트웨어 프로젝트 운영 방법에 대해서 많은 고민과 토론을 하고 방법론들을 발명하였음
• 그 중 가장 효과가 입증되었고 널리 쓰이고 있는 것이 Scrum(스크럼)이다.
• 스크럼은 1986년 일본 도요타에서 먼저 발명
- 개발 업무는 소요시간과 진행과정을 예상하기가 굉장히 어려움.
- 한시간 걸린다고 생각하면 2~3시간 기본, 1달 걸린다고 하면 2~3달
- 이것은 초급 개발자부터 고급 개발자, 한국 개발자부터 미국 개발자까지 예외사항 없음
실제로 구글 페이스북, 아마존, MS 같은 기업들 모두 프로젝트의 기한 및 비용 초과의 문제가 있다.
○ 스프린트가 시작하는 첫 날 Planning 미팅을 갖고, 스프린트 동안 할 일을 결정 ○ 스프린트를 진행하면서 각자 주어진 일을 완료 ○ 매일 standup 미팅을 통해 팀원끼리 서로의 진행사항을 공유.(standup 미팅의 목적은, 앉지 않고 빨리 서로 진행사항 공유하고 다시 일하자는 취지) ○ Stand up meeting에서는 다음 3가지를 한 사람 씩 돌아가면서 이야기 1. 어제 했던 일 2. 오늘 할 일 3. 다른 사람에 의해 막혀있는 것 이나 다른 사람이 해줘야 하는 것(blocker) 4. 이야기가 너무 길어 질 것 같으면 끊고 다른 시간을 만들어 이야기를 이어나가거나 해야 할 일 속행(이러한 주기를 프로젝트가 끝날 때 까지 반복) ○ 즉 큰 프로젝트를 sprint 단위로 나누어서 계획하고 실행하는 것 ○ 이렇게 함으로 좀 더 현실적인 계획을 할 수 있다. ○ 또한 프로젝트의 진행상황 파악이 쉬워짐으로 문제나 차질이 있을 때 미리미리 대처할 수 있게 된다.
Waterfall 방식 : 설계, 구현, 테스트를 순차적으로 진행 된다. 이 형태는 중간에 요구사항만 변경하지 않는다면 단계가 명확해서 관리가 쉽다. 하지만 고객 자신도 원하는 것이 모르는데(요청 사항이 수시로 바뀜) 변경사항에 대한 반영이 늦고 비용도 많이 들 수 있다. 최종적으로 실패할 가능성이 높다.
Scrum 방식 : overhead가 조금씩 있지만 변동사항에 대해 짧은 주기로 빠르게 해결하면서 개선해 나감 고객의 요구사항을 즉시 받아들여 프로젝트에 늦지 않게 대응할 수 있다.
Product backlog(작업할 내역들이 생기면 backlog에 누적) -> Sprint planning meeting -> In Progress(작업 진행) -> Done(작업 완료)