당신은 주제를 찾고 있습니까 “애자일 프로세스 – IDG.tv | 에자일 개발 프로세스 이해하기 [한글 자막]“? 다음 카테고리의 웹사이트 https://you.maxfit.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://you.maxfit.vn/blog/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 ITWorld Korea 이(가) 작성한 기사에는 조회수 7,082회 및 좋아요 95개 개의 좋아요가 있습니다.
애자일 프로세스 주제에 대한 동영상 보기
여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!
d여기에서 IDG.tv | 에자일 개발 프로세스 이해하기 [한글 자막] – 애자일 프로세스 주제에 대한 세부정보를 참조하세요
모두들 애자일 개발을 추진하고 있지만 많은 조직이 애자일 개발 프로세스를 제대로 파악하지 못하고 있습니다. 애자일 개발 프로세스의 작동 원리를 레스토랑 요리 프로세스에 비교하면서 쉽게 설명합니다.
애자일 프로세스 주제에 대한 자세한 내용은 여기를 참조하세요.
애자일이 도대체 뭐길래? – Evan Moon
이번 포스팅에서는 소프트웨어 개발 방법론 중 하나인 애자일 프로세스(Agile Process) , 줄여서 애자일이라고 부르는 그것에 대해서 포스팅하려고 …
Source: evan-moon.github.io
Date Published: 1/4/2022
View: 4973
애자일(Agile) 프로세스란?(1/2) – 2WEEKS
스크럼은 위의 사진과 같이 럭비에서 유래된 용어입니다. 팀원들이 어깨동무를 하고 상대편과 원을 이루고 중앙에 럭비공을 놓아서 경쟁하는 것을 …
Source: insight-bgh.tistory.com
Date Published: 10/22/2022
View: 966
애자일 개발 프로세스 – velog
애자일 방법론이란? … 애자일은 신속한 반복 작업을 통해 실제 작동 가능한 소프트웨어를 개발, 지속적으로 제공하기 위한 소프트웨어 개발 방식을 의미 …
Source: velog.io
Date Published: 10/5/2022
View: 1743
애자일 방법론(Agile Methodology) 개념, 방식, 기법 – Red Hat
애자일 방법론이란 신속한 반복 작업을 통해 실제 작동 가능한 소프트웨어를 개발하여 지속적으로 제공하기 위한 소프트웨어 개발 방식을 뜻합니다.
Source: www.redhat.com
Date Published: 10/5/2022
View: 9888
애자일 방법론 – 인코덤, 생물정보 전문위키
애자일 방법론은 계획 → 설계(디자인) → 개발(발전) → 테스트 → 검토(피드백) 순으로 반복적으로 진행된다. 계획을 세운 후 다음 단계까지 기다려서 …
Source: www.incodom.kr
Date Published: 5/27/2021
View: 2298
조직을 애자일(Agile)하게 운영하는 방법 | 시프티 – Shiftee
애자일(Agile)의 사전적 의미는 ‘날렵한’, 민첩한’, ‘기민한’ 뜻으로 원래는 소프트웨어 개발 방법론 중 하나인 애자일 프로세스(Agile Process)에서 …
Source: shiftee.io
Date Published: 5/27/2022
View: 3719
소프트웨어 개발 방법론 – 애자일(Agile) 방법론
애자일(Agile) 방법론은 구체적인 개발 프로세스가 아닌 개발 지침, 철학에 가깝다. 변화를 수용하고 협업과 제품의 빠른 인도를 강조하는 반복적 개발 …
Source: atoz-develop.tistory.com
Date Published: 7/17/2022
View: 2059
애자일(Agile) 개발 프로세스란? – Studying S
애자일 개발 프로세스는 개발에 대한 개념적 방법론으로, 개발 프로젝트 기간을 짧은 주기로 나눠 반복적인 개발을 하는 것이 특징입니다.
Source: studyingandsuccess.tistory.com
Date Published: 1/10/2022
View: 7810
주제와 관련된 이미지 애자일 프로세스
주제와 관련된 더 많은 사진을 참조하십시오 IDG.tv | 에자일 개발 프로세스 이해하기 [한글 자막]. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.
주제에 대한 기사 평가 애자일 프로세스
- Author: ITWorld Korea
- Views: 조회수 7,082회
- Likes: 좋아요 95개
- Date Published: 2018. 8. 2.
- Video Url link: https://www.youtube.com/watch?v=5kILHLwE81Q
애자일이 도대체 뭐길래?
이번 포스팅에서는 소프트웨어 개발 방법론 중 하나인 애자일 프로세스(Agile Process) , 줄여서 애자일이라고 부르는 그것에 대해서 포스팅하려고 한다. 최근 많은 조직들이 애자일 프로세스를 사용하고 있고, 필자가 다니고 있는 현 직장도 마찬가지로 애자일 프로세스를 도입해서 사용하고 있다.
많은 조직이 애자일을 그냥 단순히 이슈마다 스토리 포인트를 매겨서 얼마나 걸릴 지 산출한다, 1~2주 단위의 스프린트를 돌린다, 매일 아침 데일리 스크럼 회의를 한다 등 표면적인 것들에 집중하고 있다. 필자의 직장도 애자일을 계속 해서 해왔지만 어떤게 진짜 애자일한 업무 방법인가? 에 대해서 다들 의문만 가질 뿐 제대로 배워볼 기회가 없었다.
애자일의 본질은 모른 채 그냥 내가 이렇게 몇번 해봤는데 되게 좋았어! 혹은 다른 회사가 이렇게 하면서 좋아졌대! 정도로 시작했으니 잘 굴러갈리가 없었고 매번 빗나가는 에스티메이션과 망가지는 스프린트로 인한 팀원들의 의욕 저하 등 여러가지 문제점이 발생했다. 그래서 필자의 현 직장인 숨고에서는 꽤나 비싼 돈을 들여 애자일 코치 를 초빙해서 약 한달간 애자일에 대한 교육을 시행했던 적이 있다. (그 분 한달 수입이 거의 한 사람 연봉이라 많은 이들이 애자일 코치로의 전업을 꿈꿨다…갓자일 코치…)
그 경험을 바탕으로 필자가 배웠던 애자일에 대한 내용과 직장에서 실제로 여러가지 시도를 해본 후 느꼈던 점에 대해서 한번 얘기해볼까 한다.
애자일을 왜 사용하는걸까?
최근에는 많은 조직에서 이미 애자일 프로세스를 사용하고 있기 때문에 애자일이 무엇인지는 많이 알고 계실거라 생각한다.
애자일(Agile) 은 기민하다 라는 뜻으로 너무 계획이 없는 개발 방법론과 너무 체계적인 계획이 있는 개발 방법론 사이의 균형을 잡아보자는 의도로 나온 개발 방법론이다.
전통적인 개발 방법론으로는 폭포수 모델(Waterfall) 이 대표적인데, 이 개발 방법론의 특징은 바로 앞만 보고 달리되, 굉장히 긍정적인 마인드를 품은 개발 방법론이라는 것이다. 폭포수 모델을 포함한 이런 전통적인 개발 방법론들은 대략 다음과 같은 큰 틀을 가진다
기획 > 디자인 > 개발 > 테스트 > 배포 > 유지보수
굉장히 익숙하지 않은가? 우리도 알게 모르게 여러 번 겪었을 프로세스다. 이 프로세스는 마감 기한을 딱! 정해놓고 그 마감 기한 안에 프로젝트를 끝내기 위해 모든 팀원이 자신이 맡은 일을 끝낸 후 다음 차례로 넘긴다. 이렇게 아무 문제 없이 끝난다면 모두가 행복한 해피엔딩이겠지만 현실은 그렇지 않다.
M06B님의 “무리한 요구를 하는 클라이언트” 카톡 이모티콘
현실 세계에서는 갑 인 클라이언트님께서 프로토타입을 보고 수정 사항을 요청할 수도 있고, 인하우스 프로덕트를 개발하는 회사라고 해도 열심히 개발해서 배포했더니 유저의 반응이 예상과는 전혀 다르게 안좋을 수도 있다.
이런 상황에서의 폭포수 모델 은 너무 많은 리스크를 팀원들에게 강요한다. 기껏 한두달 열심히 개발했더니 그동안 고생한게 모두 물거품이 되버리기 쉽다는 얘기다. 또한 이런 경우도 생긴다.
기획 > 디자인 > 개발(어? 이건 지금 상황에선 불가능 한데…?)
개발자가 기획 회의에 참여한 경우 이런 경우를 어느 정도 방지할 수 있지만 그렇지 않은 경우 다시 기획자에게 찾아가서 현재 상황과 불가능한 이유를 설명하고 다시 기획 > 디자인 프로세스부터 시작해야한다. 이런 경우, 작게는 시간 낭비부터 시작해서 크게는 팀원간의 감정도 상할 수 있고 그로 인해 팀 사기에도 좋지 않은 영향을 끼치기 때문에 좋은 경험은 아니라고 생각한다. (필자는 팀원들의 감정 상태를 굉장히 중요하게 생각한다)
그럼 전통적인 방법들의 이런 단점을 극복하고자 고안된 애자일이 무엇인지 한번 알아보도록 하자.
애자일 선언에 대해서
애자일 개발 방법론은 2001년 발표한 애자일 선언에서부터 시작한다.
우리는 소프트웨어를 개발하고, 또 다른 사람의 개발을 도와주면서 소프트웨어 개발의 더 나은 방법들을 찾아가고있다. 이 작업을 통해 우리는 다음을 가치 있게 여기게 되었다. 공정과 도구보다 개인과 상호작용 을
을 포괄적인 문서보다 작동하는 소프트웨어 를
를 계약 협상보다 고객과의 협력 을
을 계획을 따르기보다 변화에 대응하기를 가치 있게 여긴다. 이 말은 왼쪽에 있는 것들도 가치가 있지만, 우리는 오른쪽에 있는 것들에 더 높은 가치를 둔다는 것이다. 애자일 선언 한국어 원문 agilemanifesto.org
우리는 이 선언에서 애자일이 어떤 것을 지향하는 지 알 수 있다. 이 얘기를 좀 더 쉽게 풀면 이런 식이다.
자, 우리는 팀이니까 따로 놀지말고 커뮤니케이션을 잘하고!
쓸데없는 문서 작성에 너무 시간 뺏기지 말고 일단 작동하는 뭔가를 만들고!
고객이 실제로 가치를 느낄 수 있는 프로덕트를 만들고!
계획은 늘상 변하는 거니까 변화에 대응할 수 있게 유연한 작업 방식으로 일하자!
애자일은 굉장히 이상적이다. 오직 고객만을 위한 제품을 만들기 위해 유연하게 움직이는 조직이 되자는 의미이기 때문이다.
애자일 선언 이면의 원칙(12개 원칙)
애자일은 애자일 선언 외에도 12개의 원칙을 세워놓고 그 원칙을 따르자고 한다.
우리는 다음 원칙을 따른다. 우리의 최우선 순위는 가치 있는 소프트웨어를 일찍 그리고 지속적으로 전달해서 고객을 만족시키는 것이다. 비록 개발의 후반부일지라도 요구사항 변경을 환영하라. 애자일 프로세스들은 변화를 활용해 고객의 경쟁력에 도움이 되게 한다. 작동하는 소프트웨어를 자주 전달하라. 두어 주에서 두어 개월의 간격으로 하되 더 짧은 기간을 선호하라. 비즈니스 쪽의 사람들과 개발자들은 프로젝트 전체에 걸쳐 날마다 함께 일해야 한다. 동기가 부여된 개인들 중심으로 프로젝트를 구성하라. 그들이 필요로 하는 환경과 지원을 주고 그들이 일을 끝내리라고 신뢰하라. 개발팀으로, 또 개발팀 내부에서 정보를 전하는 가장 효율적이고 효과적인 방법은 면대면 대화이다. 작동하는 소프트웨어가 진척의 주된 척도이다. 애자일 프로세스들은 지속 가능한 개발을 장려한다. 스폰서, 개발자, 사용자는 일정한 속도를 계속 유지할 수 있어야 한다. 기술적 탁월성과 좋은 설계에 대한 지속적 관심이 기민함을 높인다. 안 하는 일의 양을 최대화하는 기술이 필수적이다. 최고의 아키텍처, 요구사항, 설계는 자기 조직적인 팀에서 창발한다. 팀은 정기적으로 어떻게 더 효과적이 될지 숙고하고, 이에 따라 팀의 행동을 조율하고 조정한다. 애자일 선언 이면의 원칙 agilemanifesto.org
우리가 애자일 프로세스 하면 떠올리는 몇가지 일들은 이 12개의 원칙을 기반으로 생겨난 것이다. 예를 들면 스프린트(Sprint) 는 3번 원칙에 기초하며 매 스프린트가 끝날 때마다 행하는 회고(Retrospective) 는 12번 원칙에 기초한다. 또한 애자일에서는 거대한 팀보다는 일명 Task Force Team(TF Team) 을 선호하는데, 이건 5번에서 기초한다. 그 이유는 거대한 팀보다 작은 팀이 더 유기적으로 움직이기 편하기 때문이다.
이 12개의 원칙은 어떻게 하면 더 애자일하게 , 즉 기민하게 프로덕트를 생산하고 고객에게 전달할 수 있는지에 대한 일종의 가이드라인 역할을 하는 셈이다.
애자일의 기본적인 요소들
애자일은 12개의 원칙에 기초하는 여러 개의 요소를 가지고 있다. 이 포스팅에서는 구성 요소들 중 필자가 중요하다고 생각하는 User Story , Backlog , Estimation , Retrospective 를 짚고 넘어가겠다. 한번 간단하게 하나하나 살펴보자.
User Story
애자일은 유저 스토리 기반으로 구성된다. 이 스토리라는 것이 상당히 중요한데, 이건 철저히 유저 중심 으로 만들어져야 한다. 우리가 보통 스토리 혹은 이슈를 생성하면 이런 식으로 작성될 확률이 높다.
SD-1234 요청서 페이지 리뉴얼
SD-1235 웹뷰로 되어있는 프로필 페이지를 네이티브로 변경
SD-1236 소셜 로그인을 위한 DB 스키마 설계 및 API 엔드포인트 작성
SD-1237 유저 채팅에 사진 여러 장 한번에 보내기 기능 추가
필자가 애자일 코칭을 받을 때 애자일 코치님이 가장 먼저 지적한 것이 바로 이것이었다. 애자일 코치님은 스토리에 되도록이면 누가(Who) 무엇을(What) 왜(Why) 의 세가지 요소가 들어가면 좋다고 했었다. 이렇게 작성된 스토리는 그 제목 자체만으로 팀이 왜 이 스토리를 해결되어야 하는지 설명해준다. 따라서 위의 스토리들은 이렇게 다시 작성되어야 한다.
SD-1234 고객 은 요청서를 쉽게 보내기 위해 필요한 정보를 한눈에 확인할 수 있다.
은 요청서를 쉽게 보내기 위해 필요한 정보를 한눈에 확인할 수 있다. SD-1235 고객 은 자연스러운 UX를 위해 프로필 페이지를 웹뷰가 아닌 네이티브로 사용할 수 있다.
은 자연스러운 UX를 위해 프로필 페이지를 웹뷰가 아닌 네이티브로 사용할 수 있다. SD-1236 클라이언트 개발자 는 소셜 로그인 기능 개발을 위해 관련 API 엔드포인트를 사용할 수 있다.
는 소셜 로그인 기능 개발을 위해 관련 API 엔드포인트를 사용할 수 있다. SD-1237 고객은 채팅 내에서 여러 장의 사진을 쉽게 보내기 위해 멀티 셀렉트 기능을 사용할 수 있다.
이렇게 작성된 유저 스토리는 이 스토리들과 전혀 관련없는 제 3의 팀원이 보더라도 별다른 부연 설명없이 원하는 정보를 얻을 수 있다.
그리고 유저(Who) 는 반드시 고객이 아니어도 상관없다. SD-1236 의 경우 유저는 클라이언트 개발자 이다. 이런 경우에도 클라이언트 개발자(Who) 는 소셜 로그인 기능 개발을 위해(Why) 관련 API 엔드포인트를 사용할 수 있다.(What) 과 같은 정보를 모두 채워서 넣으면 된다. 팀원들은 프로덕트의 생산자이자 서로의 내부 고객이기도 하기 때문이다.
Product Backlog
Product Backlog 는 앞으로 처리해야할 여러 개의 유저 스토리로 구성되어 있다. 이 스토리들은 PO(Product Owner) 가 정의한 우선 순위대로 정렬되어 있으며 이 우선 순위에 대한 권한은 PO 의 직권이다. 일단 이 애자일은 팀원들이 PO 가 내린 결정을 신뢰해야 한다는 게 기본 전제 조건이다.
그렇다고 무조건 믿고 까라면 까라는 게 아니고, 당연히 의견이 있다면 자유롭게 토의할 수 있지만 최종 결정은 PO 가 한다는 의미이다.
그리고 백로그 는 그냥 방치하면 계속 스토리들이 쌓이게 되는데 PO 는 주기적으로 이 스토리들이 실행 여부를 판단하여 스토리들을 정리해주는 작업을 해줘야한다. 그렇지 않으면 스토리들이 계속 쌓여서 어떤 스토리가 의미가 있고 어떤 스토리가 의미가 없는 지 판단하는 데 걸리는 시간이 길어지게 된다.
Estimation
Estimation 은 한국말로 직역하면 견적 정도의 의미이다. 근데 회사에서는 다들 그냥 에스티메이션이라고 하므로 필자도 거기에 익숙하기 때문에 그냥 에스티메이션 이라고 하겠다.
에스티메이션은 PO 가 만들어놓은 여러 가지 스토리를 가져와서 실제 그 스토리를 해결할 팀원들이 이 이슈가 어느 정도의 크기를 가진 이슈인지 스토리 포인트 를 매기는 것이다.
이때 많이 하는 방법이 1점 === 1시간 으로 생각해서 스토리 포인트를 절대값 으로 매기는 데, 필자의 직장도 처음에는 1점 === 1시간 으로 생각하고 하루에 집중해서 일할 수 있는 시간을 4시간 으로 정한 후 4점 === 이 이슈는 하루 정도는 걸리는 이슈다. 라고 에스티메이션하는 방법을 사용했다.
근데 문제는 이 예상이 거의 대부분 빗나간다는 것이다. 물론 자기가 하는 일이 정확히 언제 끝날 지 산정하실 수 있는 굇수분들도 있겠지만 필자와 필자의 팀원들은 그냥 일반인이기 때문에 그러지 못했다. 예상하지 못한 버그가 터지거나 예상하지 못한 회의가 생겼다거나 혹은 갑자기 아파서 병가를 썼다거나 이런 예외 상황은 생각보다 자주 발생했고 그럴때마다 스프린트도 펑펑 터져나갔다.
그래서 택한 방법은 바로 스토리 포인트를 상대값 으로 매기는 것이다. 방법은 이렇다. 과거에 지나갔던 스토리 중에 기준이 될만한 스토리를 하나 가져와서 그 스토리에 대해서 팀원들이 그때의 경험을 토대로 에스티메이션을 한다.
SD-1234 사용자는 요청서를 쉽게 보내기 위해 필요한 정보를 한눈에 확인할 수 있다. 철수: 이거 생각보다 일이 없었던 것 같은데? 저는 3. 영희: 이거 디자인하느라 맨날 야근했어. 나는 5. 민철: 난 영희를 좋아하니까 나도 5.
이런 식으로 어느 정도 팀원들의 의견이 수렴이 되면 요청서 페이지의 디자인을 바꿨던 스토리가 5정도 된다 라는 기준을 잡을 수 있다. 이제 이 스토리를 기준으로 다른 스토리들의 크기를 상대적으로 측정해나가는 것이다. 측정하는 스토리 포인트는 XS, SM, M, L, XL 와 같이 티셔츠 사이즈로 하는 방법도 있고 1, 2, 3, 4 와 같은 자연수를 사용해도 상관없다. 어차피 상대적인 크기를 측정하는 것이므로 추상적인 크기만 설정할 수 있으면 된다.
참고로 필자의 회사는 1, 2, 3, 5, 8… 의 피보나치 수열을 사용하고 있다.
처음에는 상대적인 크기를 측정한다는 것이 어렵게 느껴질 지 모르지만 필자가 경험해본 느낌으로는 시간 을 측정하는 것보단 이 방법이 더 정확했다. 단, 팀이 한 스프린트에 어느 정도의 스토리 포인트를 쳐낼 수 있는지에 대한 정보가 먼저 필요하다.
이건 그냥 적당히 몇번 돌려보면 각이 나온다. 첫번째 스프린트에 40 , 두번째 스프린트에는 20 을 쳤다면 다음 스프린트에는 평균 값인 30 만큼의 스토리만 넣는 것이다.
비록 첫번째 스프린트에 비해 두번째 스프린트는 달성률이 50% 나 떨어졌지만 걱정하지말자!
두번째 스프린트에 끝내지 못한 이슈는 세번째 스프린트까지 이어진 후 그 스프린트 안에 끝나기 때문에 다음 스프린트의 달성률은 원래 예상치보다 더 높아지므로 세 스프린트의 평균을 내보면 비슷한 값이 나온다. 그런 식으로 몇번 스프린트를 돌려보면 한번의 스프린트가 도는 동안 팀이 평균적으로 몇 만큼의 스토리 포인트를 쳐낼 수 있는지 각이 나온다.
저번 스프린트에 망한 달성률만큼 다음 스프린트에는 초과 달성될 확률이 높다!
그리고 중요한 건 스프린트 마감일은 데드라인이 아니다 . 배포가 예상보다 늦어졌다면 늦어진 이유를 분석하고 다음에 또 늦지않으면 되는거니 너무 부담가지지 말자. 두번 실수하지만 않으면 된다.
Retrospective
회고(Retrospective) 는 스프린트를 마무리하는 단계에서 행하는 것으로 필자는 다른 것들보다 이 회고가 가장 중요하다고 생각한다. 회고는 팀이 발전하기 위한 방향을 논의하는 가벼운 회의이다. 절대 무거운 분위기로 진행하는 것이 아니다!
그래서 필자의 직장에서는 회고를 사무실 근처 카페에서 커피를 마시면서 진행하기도 한다. 회고 방법은 타임라인 을 그려놓고 팀원들이 각자 따뜻하게 느껴졌던 일 과 차갑게 느껴졌던 일 을 포스트잇에 적어서 타임라인에 붙히고 투표를 통해 논의하는 방법도 있고 그냥 각자 미리 주제를 정해와서 자유롭게 토론하는 방법도 있다.
이렇게 회고를 통해서 다음 스프린트에 시행할 액션 아이템(Action Item) 을 정한 다음 각 액션 아이템마다 담당자를 붙혀준다. 해당 액션을 관리할 담당자가 없으면 흐지부지 해지기 쉽기 때문이다. 담당자가 된 팀원은 다른 팀원들에게 주기적으로 노티를 줘서 책임감을 가지고 그 스프린트 안에 해당 액션 아이템을 처리하는 것을 목표로 한다.
그럼 애자일은 좋은 건가?
일단 필자는 개인적으로 데드라인에 쫓기는 폭포수 모델보다는 1~2주 안에 작은 스토리를 처리하고 배포하는 애자일을 좋아하긴 한다. 짧은 시간안에 개발과 배포가 이루어지다보니 사용자의 피드백을 빠른 시간안에 받을 수도 있고 뭔가 배포할때마다 느끼는 상쾌함도 자주 돌아오기 때문에 좋다. 그러나 애자일이 모든 상황에서 항상 잘 듣는 만병 통치약은 아니다. 애매한 상황도 생긴다는 얘기다.
이건 애자일 하지 않아요!
이 대사는 필자가 직장에서 데일리 스크럼 때 꽤나 많이 들었던 말이다. 상황은 대충 이렇다.
뭔가를 해야한다. -> 생각보다 이슈의 크기가 크다. -> 기능 간 디펜던시가 커서 따로 배포는 힘들 것 같다. -> 그냥 한번에 하고 배포하자!
이런 상황에서 누군가 이야기 한다.
흠 근데…이건 애자일 하지 않은 것 같은데요…?
그러면 그 공간에 있는 모두가 머리를 싸매기 시작한다. “애자일하게 이걸 처리하려면 어떻게 해야하지…?” 라는 생각으로 머리가 복잡해지기 시작한다. “그럼 애자일하게 하려면 어떻게 해야할까요?”라고 누군가 서두를 던져보지만 아무도 답을 내지 못한다. 이건 애초에 잘게 쪼갤 수 없는 이슈였기 때문이다.
하지만 애자일 의 본질은 이런게 아니다. 어떤 규칙과 규정으로 정해져 있는게 아니란 뜻이다.
물론 애자일 선언과 12개의 법칙이 있긴 하지만 그건 그냥 가이드라인일 뿐이다. 각 팀마다 성격이 다른데 어떠한 방법이 전세계 모든 팀에게 모두 좋은 효과를 보인다는 건 말도 안된다.
필자는 애자일의 기본 가이드 라인을 따라가되, 각 팀에 맞게 유연해서 변형해서 사용하는 것이 더 자연스럽고, 또 그게 맞는 방법이라고 생각한다. 굳이 애자일 선언이나 뭐 저런 법칙이나 그런 걸 굳이 안 따라하더라도 그 팀에 맞는 어떠한 창의적인 방법이라도 괜찮다. 다 일 잘하자고 하는건데 굳이 어떤 규칙을 만들어서 지켜야할 이유는 없다. 일만 잘하면 됐지.
애자일에 너무 얶매이지는 말자
필자는 사실 애자일 선언을 처음 들었을 때 마치 공산주의 같다고 생각했다.
마르크스가 처음 마르크스주의 를 제창하고 자본론 을 집필했을 때의 사회 분위기는 이러했다. 공산주의는 완벽한 체제이고 점점 발전해가며 자본주의는 언젠가 스스로 붕괴할 것이라는 분위기가 노동자들 사이에서 팽배했다. 그러나 현실에 도입된 공산주의는 현실의 벽 앞에 부딫히고 스탈린주의 , 마오주의 등으로 점점 변질되어 대부분 독재로 마무리 되었다. 원래는 “우리 모두 함께 잘살아보세!”에서 시작했지만 현실에 강림한 공산주의의 실체는 “우리 함께 못살자”가 되버린 격이다.
마찬가지로 현실의 애자일도 생각보다 순탄하게만은 돌아가지 않는다. 방금 위에서 예를 든 상황도 굉장히 애매한 상황 중 하나이다. 이슈를 쪼갤 수 없어서 한 스프린트안에 배포가 힘들 것 같은데 어떻게 해야한단 말인가?
애자일 선언은 물론 굉장히 좋은 말이고 옳은 말이지만 저기에 너무 집착하게 되면 오히려 일을 위한 일을 만들게 되는 조직이 된다고 생각한다.
우리가 지금 누리고 있는 자본주의도 원래 애덤 스미스 형의 “시장은 냅두면 알아서 잘 굴러간다” 운운하던 예전 그대로라면 망테크였겠지만, 공산주의에서 제창하던 것들을 좋은 방향으로 잘 섞은 뉴딜정책으로 인한 국유화 사업과 복지 정책 등이 포텐터지면서 지금까지 발전하게 된 것이다. 뭐든지 절대적으로 완전한 건 없다.
마찬가지로 필자는 애자일이든 폭포수 모델이든 칸반이든 뭐가 됐든 그냥 일만 효율적으로 잘하면 그만이라고 생각하기 때문에 저 애자일 선언은 그냥 한번 듣고 흘렸다. 그냥 좋아보이는 걸 적당히 섞어서 써도 팀에만 잘 맞는다면 상관없다. 애자일 선언은 너무나도 당연한 말들만 해서 오히려 더 담아두지 않았던 것 같다.
마치며
사실 필자가 애자일 코칭을 받고 나서 느낀건 “애자일에는 정답이 없구나”와 동시에 “아니 그럼 저 애자일 선언이고 나발이고 그냥 기민하게 제품을 배포만 할 수 있으면 아무 상관없는 거 아닌가?”라는 아이러니한 생각이었다.
지금도 필자는 애자일은 그냥 제품을 기민하게 고객에게 배송할 수만 있다면 스프린트를 1주로 하든 2주로 하든 에스티메이션을 어떻게 하든, 방법 따윈 뭐가 됐든 상관없다고 생각한다.
다만 만약 여러분의 팀에서 애자일을 도입해보고자 한다면 제대로 해보는 게 좋다고 생각하기 때문에 필자가 애자일 코칭을 하면서 배웠던 경험들을 공유한다. 팀원들이 단합해서 이것 저것 다 시도해보고 회고 를 통해 어떤 점이 좋았는지, 어떻게 하면 우리 팀이 좋은 방향으로 개선될지에 대해 논의하고 실제로 더 나아지는 경험은 쉽게 얻을 수 없는 좋은 경험이기 때문이다. 해보면 되게 재밌다 진짜로.
애자일은 제대로 하려면 생각보다 공부가 굉장히 많이 필요한 개발 방법론이다. 알아야 할 것도 많고 이것들을 각자의 팀에 맞게 응용하고 점검할 수 있는 능력도 있어야 한다. 그러나 필자가 직접 다른 조직에서 경험하거나 근처 개발자들한테 주워들은 얘기를 빌자면, 애자일을 도입한 많은 조직들이 단순히 스프린트를 돌리고 데일리 스크럼 미팅을 하고 JIRA를 사용하기만 하면서 애자일을 한다고 하는 경우도 많이 있다.
우리 팀이 스프린트에 쳐낼 수 있는 스토리 포인트가 어느 정도인지, 또 우리가 애자일을 하면서 외부 고객과 내부 고객들이 만족하고 있는지, 이런 끊임없는 점검이 부재한 애자일은 그냥 1~2주 단위의 데드라인을 반복할 뿐이다. 이거 해봐서 아는데 진짜 죽을 맛이다. 매일 데드라인의 압박을 느낀다는 건…후
이 글을 읽는 여러분이 애자일에 관심을 가짐과 동시에 협업에 대한 열정도 뿜뿜하면서 팀에서 재밌고 즐겁게 일할 수 있기를 바란다.
이상으로 애자일이 도대체 뭐길래? 포스팅을 마친다.
애자일(Agile) 프로세스란?(1/2)
이번 포스팅에서는 소프트웨어 개발방법론중 하나인 애자일 프로세스에 대해서 알아보겠습니다. Agile이란 “민첩한”, “기민한”, “재빠른” 사전적 의미가 있습니다. 많은 조직에서 이 애자일 방법론을 사용하고 있는데 변화에 빠르게 대응하기 위한 프로세스라고 생각하시면 될 꺼 같습니다. 하지만 꼭 개발 프로세스에만 적용해야 하는법은 없고 상황에 맞게 이 방법을 적용할 수 있을꺼 같습니다.
1. 전통적인 폭포수 모델형 개발 방법론
폭포수 모델을 포함한 전통적인 개발 방법론은 다음과 같은 큰 틀을 가지고 있습니다.
서비스 기획 -> 디자인 -> 개발 -> 테스트 -> 배포 -> 유지보수
예를 들어 프로젝트의 총 기간이 6개월이라고 가정한다면, 1개월은 서비스 기획, 1개월은 디자인 , 4개월 개발 및 테스트 배포 후 유저들의 반응을 보고 유지보수 하는 방법이라고 생각하시면 될꺼같습니다. 이런 방식으로 개발을 했을 때 단점은 진행한 프로젝트의 결과가 좋지 않았을 때 대응을 하는 비용이 크다는 것입니다.
스티브 맥코넬의 저서 “Rapid Development”에서 요구사항 상의 결함이 구현이나 유지보수 단계에서 발견되지 않고 남아있을 경우, 이를 수정하는 비용은 요구사항 기술 시에 수정하는 것에 비해 50배에서 200배까지 드는 것을 예측했다고 나와있습니다.
2. 애자일 방법론이란?
애자일 개발 방법론은 2001년에 발표한 애자일 선언에서부터 시작합니다.
우리는 소프트웨어를 개발하고, 또 다른 사람의 개발을 도와주면서 소프트웨어 개발의 더 나은 방법들을 찾아가고있다. 이 작업을 통해 우리는 다음을 가치 있게 여기게 되었다. 공정과 도구보다 개인과 상호작용 을
을 포괄적인 문서보다 작동하는 소프트웨어 를
를 계약 협상보다 고객과의 협력 을
을 계획을 따르기보다 변화에 대응하기를 가치 있게 여긴다. 이 말은 왼쪽에 있는 것들도 가치가 있지만, 우리는 오른쪽에 있는 것들에 더 높은 가치를 둔다는 것이다.
이 선언문을 좀더 알기 쉽게 풀어서 말하면 이런 말입니다.
1. 우리는 팀이니까 커뮤니케이션 잘하고
2. 쓸데없이 문서 작성하는데 시간 들이지 말고, 실제로 동작하는 소프트웨어 만들고
3. 고객이 실제로 가치를 느끼는 프로덕트를 만들고,
4. 계획은 원래 변하는거니까, 이 변화에 대응할 수 있도록 유연한 작업 방식으로 일하자!
요약하면, 고객과 제품을 만들기 위해서 유연하게 움직이는 조직입니다. 애자일 선언 외에도 12개의 우너칙을 세워 놓고 그 원칙을 따르고자 합니다.
우리는 다음 원칙을 따른다. 우리의 최우선 순위는 가치 있는 소프트웨어를 일찍 그리고 지속적으로 전달해서 고객을 만족시키는 것이다. 비록 개발의 후반부일지라도 요구사항 변경을 환영하라. 애자일 프로세스들은 변화를 활용해 고객의 경쟁력에 도움이 되게 한다. 작동하는 소프트웨어를 자주 전달하라. 두어 주에서 두어 개월의 간격으로 하되 더 짧은 기간을 선호하라. 비즈니스 쪽의 사람들과 개발자들은 프로젝트 전체에 걸쳐 날마다 함께 일해야 한다. 동기가 부여된 개인들 중심으로 프로젝트를 구성하라. 그들이 필요로 하는 환경과 지원을 주고 그들이 일을 끝내리라고 신뢰하라. 개발팀으로, 또 개발팀 내부에서 정보를 전하는 가장 효율적이고 효과적인 방법은 면대면 대화이다. 작동하는 소프트웨어가 진척의 주된 척도이다. 애자일 프로세스들은 지속 가능한 개발을 장려한다. 스폰서, 개발자, 사용자는 일정한 속도를 계속 유지할 수 있어야 한다. 기술적 탁월성과 좋은 설계에 대한 지속적 관심이 기민함을 높인다. 안 하는 일의 양을 최대화하는 기술이 필수적이다. 최고의 아키텍처, 요구사항, 설계는 자기 조직적인 팀에서 창발한다. 팀은 정기적으로 어떻게 더 효과적이 될지 숙고하고, 이에 따라 팀의 행동을 조율하고 조정한다.
애자일 방법론과 관련되어 알아야할 용어가 몇가지 있습니다.
2.1 스프린트(sprint)
스프린트의 사전적 정의는 다음과 같습니다.
스프린트(sprint): 육상 경기·수영 경기·스피드 스케이트 등의 단거리 레이스. 또는, 단거리를 전력(全力)으로 행하는 질주(疾走)나 역영(力泳).
단거리 전력질주를 뜻하고, 이 개념을 프로젝트에 대입하여 Task를 너무 크게 잡지 않으며(단거리) 단기간에 전력 질주 하듯이 업무를 수행하는 것을 스프린트라고 생각하면됩니다. 저같은 경우에는 보통 2주 정도의 스프린트를 잡고 프로젝트를 진행하고 있습니다.
2.2 스크럼(Scrum)
이제는 스크럼에 대해서 알아보겠습니다. 스크럼의 사전적 정의는 다음과 같습니다.
럭비에서 반칙이 있을 때, 양편 선수가 밀집하여 서로 팔을 꼭 끼고 뭉치는 일. 그 사이로 굴려 넣은 공을 자기편 쪽으로 빼냄.
스크럼은 위의 사진과 같이 럭비에서 유래된 용어입니다. 팀원들이 어깨동무를 하고 상대편과 원을 이루고 중앙에 럭비공을 놓아서 경쟁하는 것을 말합니다. 스프린트 기간 동안 팀원들과 협업하여 소프트웨어를 개발하는 모습이 이 모습과 비슷해서 나온 용어 같습니다.
2.3 백로그(Backlog)
요구사항 리스트, 제품의 개발 대상 목록으로 이해하면 됩니다. 애자일에서는 요구사항을 User Story라고 부릅니다.
3. 애자일의 기본 요소
위의 그림은 스크럼의 전체 프로세스를 도식화한 그림입니다.
[Product Owner(PO)]제품에 대한 책임자로 요구사항 즉 백로그(Backlog)를 작성하는 주체입니다. 팀이 개발할 소프트웨어에 대한 오너쉽을 가집니다. 또한 어떤 백로그부터 개발을 해야할지 우선순위를 정하는 유일한 사람입니다. 보통 이 역할은 소프트웨어 개발 영역에 있는 사람보다는 제품을 사용할 고객이 직접 하거나 비즈니스 요구사항을 정의 할 수 있는 사람이 합니다.
[Scrum Master(SM)]스크럼 마스터는 팀의 스크럼이 잘 수행할 수 있도록 도와주는 역할을 합니다. 스크럼 마스터는 최대한 객관적인 시각에서 스크럼에 정해진 원칙들이 팀에 잘 적용될 수 있도록 도와주고, 문제가 생겼을 때 해결하는 역할을 합니다.팀 구성원의 분쟁이나, 일에 대한 우선 순위 선정, 일이 정말로 잘 끝났는지 내려진 정의를 보고 의사결정을 할 수 있게 가이드하는 역할을 합니다.
[Team Member]위의 두 역할을 제외한 모든 팀원을 말합니다. 제품이 만들어지기 위해서 필요한 모든인력으로, 개발자, 디자이너, 테스터 등을 뜻합니다. 이렇게 구성된 스크럼팀의 크기는 일반적으로 2개의 피자를 한끼 식사에 먹을 수 있는 인원(Two-pizza team)인 7~8명을 넘지 않는 것이 좋습니다.
스크럼에는 이렇게 3가지 역할만 존재합니다. 우리가 흔히 알고 있는 프로젝트 매니저(PM)나 프로젝트 리더(PL)는 존재하지 않습니다. 프로젝트 매니저나 프로젝트 리더는 과제의 일정을 수립하고 예산에 대한 결정을 내리고 이슈나 리스크가 있으면 핸들링을 하는 ‘강압적인 존재’입니다. 팀원들의 의견을 듣지 않을 수 있고 팀원들의 의사를 반영하기 보다는 빨리 결정해서 Top-Down 방식으로 일을 수행하는 것을 편하게 생각하는 사람도 있습니다.
글이 길어져서 다음편에서 이어서 진행하도록하겠습니다.
REFERENCE
https://brunch.co.kr/@insuk/13
https://velog.io/@dooyou21/%EC%8A%A4%ED%94%84%EB%A6%B0%ED%8A%B8-%EC%8A%A4%ED%81%AC%EB%9F%BC-%EC%95%A0%EC%9E%90%EC%9D%BC
https://brunch.co.kr/@insuk/14
애자일 방법론(Agile Methodology) 개념, 방식, 기법
애자일 작업 방식은 Henry Ford의 1913년 생산 라인의 제조 방법에서 파생되어 나중에 소프트웨어 개발에 적용된 워터폴 방법의 한계를 해결하기 위해 고안되었습니다. 애자일 개발은 2001년에 기반을 다진 이래 다양한 방식이 있긴 하지만 소프트웨어 산업과 프로젝트 관리 부문에서 널리 활용되었습니다.
애자일은 많은 소프트웨어 개발자가 워터폴의 프로덕션 주기와 협업 방법이 원하는 결과를 내지 못한다는 점에 주목하기 시작했을 때 시작되었습니다. 이 문제는 조직의 비즈니스 요구 사항 검증에서 작동 가능한 애플리케이션 제공에 이르기까지 수년간 지체되는 일이 일반적이었던 1990년대 초까지 만연했습니다. 그동안 비즈니스 요구 사항과 시장 상황은 소프트웨어 프로젝트의 상당 부분이 구현되기도 전에 취소될 정도로 변하곤 했습니다. 이처럼 시간과 자원이 낭비되자 많은 소프트웨어 개발자가 대안을 모색하기 시작했습니다.
와해의 위협에 직면한 조직에서는 비즈니스의 빠른 속도를 따라잡기 위해 점차 디지털 트랜스포메이션 전략을 도입합니다. 그리고 이때 애자일 소프트웨어 개발이 종종 중요한 역할을 합니다.
애자일은 오늘날 많은 디지털 워크플로우의 기반을 형성합니다. 유연하고 확장 가능한 IT 인프라를 갖춘 클라우드 컴퓨팅이 애자일 소프트웨어 개발의 수요 증가와 맞물려 성장하고 있습니다. 클라우드 네이티브 개발은 비즈니스 요구에 따라 확장할 수 있는 일련의 상호 연결 서비스로서 애자일과 비슷한 소프트웨어 개념을 수용합니다.
DevOps라는 개념은 소프트웨어 개발과 운영 사이의 오래된 벽을 무너뜨립니다. SRE는 소프트웨어를 툴로 활용하여 시스템을 관리하고, 운영 태스크를 자동화하는 DevOps를 구현합니다.CI/CD 방법은 소프트웨어가 계속 변화하며 새 코드를 배포할 수 있는 속도를 가속하는 툴을 개발자에게 제공한다는 사실을 수용합니다.
이제 “애자일 방법론”이라는 개념 자체가 시간에 따라 변화하는 고객(즉, 소프트웨어 개발자) 요구 사항에 대응하는 민첩한(agile) 아이디어라는 것을 눈치채셨을 것입니다. 이 점을 참고해 여러 가지 이름으로 불리며 구현마다 달라지는 경우가 많은 다양한 애자일 프레임워크를 간단히 살펴보겠습니다.
애자일(Agile) 개발 프로세스란?
개발 프로젝트를 진행할 때 아무런 계획 없이 진행하면 기한내에 완성 못하고 실패하기 쉽습니다. 특히 팀 프로젝트를 할 경우 더 그렇습니다. 아이디어를 모으는데 시간이 많이 걸리고 다양한 의견들 사이에서 타협점을 찾는 것이 쉽지 않습니다. 의견을 모았다고 해도 프로젝트를 진행하는 과정에서 많은 차질이 생깁니다. 진행과정에서 갑자기 다른 의견을 내는 팀원도 있고 가끔 어떤 팀원들은 방향성 자체를 흔들기도 합니다. 초기 계획에 너무 많은 시간과 비용이 들고 개발 과정이 길어져 결과물이 안나오거나 잘못된 결과가 나오는 문제가 발생하는 것입니다. 개발 프로젝트의 이런 문제점들을 해결하고자 사용되는 방법론 중 하나가 애자일입니다.
<그림 1> 애자일 개발 프로세스
애자일(Agile)이란?
애자일 개발 프로세스는 개발에 대한 개념적 방법론으로, 개발 프로젝트 기간을 짧은 주기로 나눠 반복적인 개발을 하는 것이 특징입니다. 소프트웨어 개발자들 사이에서 먼저 유행했고, 현재는 다른 분야에서도 애자일을 많이 사용하고 있습니다. 애자일이 어떤 목적으로 만들어졌는지는 아래 애자일 선언문을 보면 짐작할 수 있습니다.
애자일 선언문
애자일로 진행하는 법에 대해 간단히 설명드리면 아래와 같습니다.
1. 개발 프로젝트의 큰 목표를 작은 단위로 나눕니다.
2. 그 중 가장 기본이 되는 목표부터 해결합니다.
3. 기본 목표가 완료되면 고객에게 보여줍니다.
4. 그 다음 부수적인 목표들을 해결합니다.
5. 목표가 해결될 때마다 고객에게 보여줍니다.
이 과정을 진행하기 위해 다음과 같이 행동합니다.
1. 프로젝트 전체 개발 기간을 짧은 기간으로 여러개 나눕니다.
2. 그 짧은 개발 기간은 정해진 목표만 이룰 수 있는 기간이 좋습니다.
3. 개발 기간동안 목표를 이루기 위한 행동만 합니다. 옆으로 빠져 다른 것을 만들지 않습니다.
4. 매일 업무 시작 전 미팅을 가집니다. 이 시간 동안 자신의 개발 상황과 오늘 할 일등을 공유합니다. 개발 하면서 느끼는 어려움들을 토로해도 됩니다. 매일 매일 상황을 공유하면 목표를 이루기 위해 어느 단계까지 왔는지 쉽게 알 수 있습니다. 자기 할일을 빨리 끝낸 팀원도 있고 그렇지 않은 팀원도 있습니다. 그럴 경우 개인별 업무량을 조절할 수도 있습니다.
이런 개발 방법을 생각하지 않고 그냥 진행할 경우 많은 경우 프로젝트 막바지에 밤을 세게 될 경우가 많습니다. 그렇게 되면 프로제트가 실패하거나 제품이 나오더라도 질이 떨어진 제품이 나오기 쉽습니다. 애자일을 적용할 경우 매일매일 진행상황을 확인해가며 프로젝트 완성도를 쉽게 알 수 있으므로 막바지에 밤을 세지 않아도 됩니다.
예제
그럼 간단한 예제로 자동으로 문이 열리고 닫히는 스마트 사물함을 제작해 보겠습니다. 우선 핵심 기능을 선정하고 제작합니다.
1. 핵심기능 제작: 사람이 근처로 가면 문이 열리고, 물건을 넣으면 자동으로 문이 닫히는 사물함
핵심기능이 완성되면 고객(예: 사물함을 사용할 학생들, 선생님들)에게 보여줍니다. 그리고 의견을 듣고 추가할 기능들을 선정합니다. 이 추가 기능은 하나가 될 수도 있고 여러개가 될 수도 있습니다. 추가기능이 완성될 때마다 고객에게 보여주고 의견을 듣는 것을 반복합니다.
2. 추가기능 제작: 스마트 폰으로 사물함 문을 잠글 수 있게 한다.
고객 의견을 들으면 추가기능뿐 아니라 빼거나 수정해야할 기능들도 알 수 있습니다. 제작에 들어간 시간이 아깝지만 그런 기능은 과감히 바꿔줍니다.
3. 기능 수정: 사물함을 열고 싶지 않아도 사람이 지나가기만 하면 문이 열린다. 문을 여는 것은 스위치로 수정한다.
이상 애자일 개발 프로세스를 간단히 설명 드렸습니다. 만약 이런 단계를 거치지 않으면 기능은 많은데 고객이 원하는 것은 없고 그나마 있는 것도 불편한 사태가 발생할 수 있습니다. 애자일을 진행하는 방법이 많은데, 위에서 설명드린 것은 애자일 중에서 스크럼 방식을 위주로 설명 드렸습니다.
<그림 2> 스크럼 방식 소개
– Product Backlog : 개발 프로젝트에서 완성해야할 요구사항들
– Sprint Backlog : Sprint기간 중 완성해야 할 요구사항들(이 요구사항들은 작동하는 단위로 정해야 합니다. Sprint가 끝난 후 완성된 기능을 시연해야 되기 때문입니다.)
– Sprint : 짧은 기간동안 목표한 기능을 개발하는 과정(일반적으로 30일을 하나 프로젝트 규모에 따라서 조절합니다.)
– 24h : 30일 Sprint가 진행되는 동안 매일 하루동안의 진행상황과 문제점등을 공유합니다.
– Working Increment of the software : 작동하는 기능을 담은 시제품
키워드에 대한 정보 애자일 프로세스
다음은 Bing에서 애자일 프로세스 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.
이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!
사람들이 주제에 대해 자주 검색하는 키워드 IDG.tv | 에자일 개발 프로세스 이해하기 [한글 자막]
- 애자일
- agile
- Kanban
- sprints
IDG.tv #| #에자일 #개발 #프로세스 #이해하기 #[한글 #자막]
YouTube에서 애자일 프로세스 주제의 다른 동영상 보기
주제에 대한 기사를 시청해 주셔서 감사합니다 IDG.tv | 에자일 개발 프로세스 이해하기 [한글 자막] | 애자일 프로세스, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.