Agile?
진짜 간단하게 말하면 일종의 개발 방법론이다
많은 블로그 포스팅들이 되게 어렵게 설명을 해놓았는데, 정말 직관적이고 쉽고 정리해볼까 한다.
우선 당장 위키백과에 들어가 있는 핵심 정리본을 가져올까 해요
그러므로 애자일 개발 방법론은 계획을 통해서 주도해 나갔던 과거의 방법론과는 다르게
앞을 예측하며 개발을 하지 않고, 일정한 주기를 가지고 끊임없이 프로토 타입을 만들어내며
그때 그때 필요한 요구를 더하고 수정하여 하나의 커다란 소프트웨어를 개발해 나가는
adaptive style 이라고 할 수 있다. - 위키백과
아하,
그러니까 소비자로부터 일방적으로 모든 요구사항이 내려오면 개발을 시작하는 것이 아니라
개발해 나가면서 필요한 것들을 피드백을 바탕으로 주도적으로 개발하겠다는 뜻이다!
너무 당연하다
소비자로부터 요구사항을 전달받았다고 해도
그 시점으로부터 요구사항은 끊임없이 바뀌고, 개발환경도 끊임없이 바뀐다
정해진 틀, 정해진 납기일, 정해진 기능에 갇혀 살게 되면
유연한 소프트웨어 혹은 시스템을 절대 만들 수 없다
이게 핵심이다!
실제로 애자일 선언문에서도 다음과 같은 내용이 포함되어 있다.
* 공정과 도구보다 개인과 상호작용을
* 포괄적인 문서보다 작동하는 소프트웨어를
* 계약 협상보다 고객과의 협력을
* 계획을 따르기보다 변화에 대응하기를
그렇다면 어떠한 프로세스로 임하는지 알아볼까.?
애자일 흐름과정
기본적으로는 스크럼(Scrum) 프로세스에 의해 진행된다고 한다
일단 어색한 용어들이 많은데 하나씩 풀어볼까 한다
- 스프린트(sprint) : 작은 기능에 대한 [계획, 개발, 테스트, 기능 완료] 에 대한 전체 주기
- 스프린트 계획 회의 : 스프린트 목표와 백로그를 계획하는 회의
- 스프린트 백로그(sprint backlog) : 각각의 스프린트 목표에 도달하기 위해 필요한 작업 목록
- 스크럼(scrum) : 개발 과정에 대한 모든 주기(30일 정도)
- 일일 스크럼 회의 : 날마다 진행되는 미팅(어제 한일, 오늘 할일, 장애 현상 등을 공유)
- 스크럼 마스터(scrum master) : 프로젝트 관리자(코치)
정말 간단하게 설명하면, 일종의 스프린트(sprint)를 바탕으로 한 피드백 기반 개발방식이다!
작은 기능들을 개발하면서 필요한 기능들을 더 개발하거나 삭제하고, 점진적으로 개선하는 방식이다!
벌써 정리가 끝났다.
우리는 어렵게 생각하지 말자
각자가 기능을 개발하는 것이 아닌 공유하면서 모자란 부분을 서로 채워나가는 개발 방법인 것이다!
Why Agile?
그럼 도대체 왜 공유할까?
기존에 순차적인 개발(=폭포수 개발) 방식은 큰 단점이 하나 있는데,
이전 단계가 완료되기 전까지는 다음 단계로 갈 수 없다는 점이다!
그러니 피드백이 느리고,
공유를 안하니 개발하는데 오래 걸리고,
기준이 정해져 있으니 변경에 취약하고,
타 부서와 쓸데 없는 의사 소통에 시간 낭비하고,
효율이 바닥을 치는 것이다
How to Agile?
보통은 흔히들 Jira, Confluence를 Agile 개발 방법을 위한 도구로 사용하고 있다!
일일 스크럼 회의때 서로 공유할 수 있게
과거에 했던 일, 오늘 할일, 해야할 일
이렇게 구분되어 있는게 보이는가?
다시 강조해도 지나치지 않지만,
프로젝트는 혼자하는 것이 아니라 다같이 하는 것이다
꼭 명심하자
내가 무슨일을 하고 있는지 다른 사람이 알아야 피드백을 받을 수 있고,
다른 사람이 무슨일을 하고 있는지 알아야 피드백을 줄 수 있다
그러니까 우리 다같이 Agile해지는 것은 어떨까? ^-^
참고
위키백과 - 애자일
위키백과 - 스크럼
'Developer > 개발일기장' 카테고리의 다른 글
Backend 서버 개발시에 유용한 Intellij 인텔리제이 플러그인 추천 (1) | 2022.10.03 |
---|---|
DDD(Domain Driven Design) - 도메인 주도 설계란? 마이크로서비스의 관점에서 (8) | 2020.04.16 |
짧은 우아한 테크코스(Wootech) 후기 (0) | 2019.06.17 |
[개발방법론] - Java를 올바르게 개발하자! (0) | 2019.04.06 |
Socket(TCP) 통신을 이용한 Chatting Project 만들기 (0) | 2019.02.19 |