LG CNS 부트캠프 학습일지 67일차
학습 내용
- 애자일(Agile) 방법론 이론
- 애자일(Agile) 방법론 실습
애자일 방법론 이론
애자일(Agile)이란 무엇인가. 어질리티(Agility)의 사전적 의미는 민첩성을 뜻한다. 단순히 빠른 것(Fast, Quickly)과는 조금 다르다. 민첩함은 예를 들어 축구선수가 상대 선수를 피해 이리저리 움직이는 모습을 표현하는 것에 가깝다. 마찬가지로 애자일 방법론은 변화하는 외부 환경에 민첩하게 대응하기 위한 방법론이다.
전통적인 개발 방식의 스케줄은 선형적이다. 주어진 요구사항을 차례대로 구현하고 어느 정도 마무리되면 테스트를 한다. 버그를 발견하면 버그를 수정한다. 그리고 원하는 수준에 도달할 때까지 테스트와 버그수정을 반복한다.
반면 애자일 방법론을 사용하는 프로젝트를 진행할 때는 큰 목표를 작은 목표로 나누고, 그 작은 목표를 점진적으로 이루어나간다. 예를 들어 로그인 페이지를 만든다고 했을 때, 첫 번째 스프린트(Sprint)에서는 로그인 페이지 UI의 뼈대를 만드는 것을 목표로 정한다. 예를 들어 스프린트 기간을 일주일로 정했다면, 일주일 후에 모여서 목표를 얼마나 달성했는지를 확인하고 다음 목표로 넘어가거나 미흡한 부분을 채워나간다. 그 과정에서 중요한 요구사항을 구현할 때 더 많은 시간과 노력을 투입하게 되고, 프로젝트를 성공시키는 확률을 높일 수 있다.
애자일 방법론 실습
애자일 방법론 실습을 따라가면서 느낀 점이 있는데, 결국엔 구성원들이 소통을 더 원활하게 하고 프로젝트를 효율적으로 관리할 수 있도록 행동 양식을 정리한 것이다. 코드를 어떻게 작성해야한다거나 그런 이야기를 한 것은 아니었다. 개인적으로는 그런 부분에 더 관심이 있긴 하지만, 다들 인공지능을 사용해서 코드를 생성하고 있기 때문에 큰 의미가 없는 것일 수도 있겠다. 반면 인공지능을 적극적으로 활용하는 환경에서도 애자일 방법론은 팀원간 프로젝트 방향성과 아이디어를 공유할 수 있다는 점에서 의미가 있다고 느꼈다.
비전 테이블 작성하기
- 비전(Vision)
- 필요로 하는 것(Needs)
- 상품(Product)
- 사업 목표(Business Goal)
결국 프로젝트의 내용을 정하는 단계이다. 현실에 어떤 문제가 있고 프로젝트는 그 문제를 어떻게 해결할 것인지를 팀원들과 공유할 수 있다.
페르소나 정의하기
누가 프로젝트 결과물을 사용하게 될 것인지 고민하는 단계이다. 단순히 만들고 싶어서 만들었거나, 만들 수 있어서 만든 소프트웨어는 취미 프로젝트라고 부를 수는 있어도 상품이라고 할 수는 없다. 소비자가 없기 떄문이다. 그렇기 때문에 잠재고객층 정의하는 것은 필요한 일이다.
Theme과 Epic 정의하기
구현하려는 기능을 정의하는 단계이다. Theme을 정의하고 Epic이라는 이름의 세부기능을 정의한다. 예를 들어 사용자 관리 시스템이라는 Theme을 만들었다면 회원가입 기능과 로그인 기능을 Epic이라고 할 수 있다.
코드를 작성하는 것은 아니기 때문에 기능을 어떻게 구현할 것인지까지 정하지는 않지만 구현하려는 기능을 어느 정도 구체화할 수 있다.
스토리라인 작성하기
애자일 방법론 맥락에서 스토리라인이라고 부르는지는 모르겠다. 내가 임의로 사용한 용어이다. 소비자가 원하는 기능을 구현하기 위해서 이전 단계에서 정의한 세부기능을 어떤 순서로 사용하게할지 정한다. 예를 들어 출금(Deposit)을 한다고 하면 아래와 같은 순서로 되어야 할 것이다.
- 사용자 로그인
- 계좌 잔액 확인
- 출금
Comments powered by Disqus.