카테고리 없음

애자일이란 무엇인가?

Dodledd 2024. 6. 27. 20:22

개발에 관심을 가지고 있다보면 애자일이란 단어가 계속해서 들려온다.

 

애자일 해야해!

애자일 안해?

 

그럼 명확한 정의가 뭘까?

 

Agile Software Development

소프트웨어 개발 방법론의 하나로, 처음부터 끝까지 계획을 수립하고 개발하는 폭포수(Waterfall) 방법론과는 달리 개발과 함께 즉시 피드백을 받아서 유동적으로 개발하는 방법이다.

-애자일 소프트웨어 개발 선언-
우리는 소프트웨어를 개발하고, 또 다른 사람의 개발을 도와주면서 소프트웨어 개발의 더 나은 방법들을 찾아가고 있다.
이 작업을 통해 우리는 다음을 가치 있게 여기게 되었다:

공정과 도구보다 개인과 상호작용을
포괄적인 문서보다 작동하는 소프트웨어를
계약 협상보다 고객과의 협력을
계획을 따르기보다 변화에 대응하기를

가치 있게 여긴다.
이 말은, 왼쪽에 있는 것들도 가치가 있지만, 우리는 오른쪽에 있는 것들에 더 높은 가치를 둔다는 것이다.
Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler,
James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin
Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas
© 2001, 상기 저자들
이 선언문은 어떤 형태로든 자유로이 복사할 수 있지만, 본 고지와 함께 전문으로서만 가능하다.

 

하지만 한국에서 특히 중소기업에서는 이야기가 다르다고 한다.

실제로 애자일 형태로 개발할 시간적, 금액적 한계가 명확하기에 애자일을 쓰면 안되지만 대기업이나 큰 규모의 사업에서는 애자일을 사용했다는 이유로 개발 시작전에 애자일을 사용한다는 포부를 던지지만 막상 개발이 시작되면 타임어택의 형식을 지닌 개발 지옥이 된다. ( 물론 잘 지키는 회사도 있겠지만 대부분 끄덕인다고 한다)

 

그럼 우리는 진짜 애자일을 하고있을까? 막상 시작하니 워터폴 방식으로 하고있지는 않나?

이에 대해서는 6월 25일에 KB국민은행에서 주최한 KB국민은행 애자일 컨퍼런스 『KB애자일 하자CON』 을 보고 느낀 바를 정리해보려 한다.

 

컨퍼런스중 발표하신 컨그루언트애자일의 조승빈님이 하신 말씀이 가장 와닿아서 메모해본다.

애자일이란?

(speed)
우사인볼트는 100미터 앞에 선도 그어져있고 도착지도 정해져있다. (심플한 문제 해결)

(agility)=민첩성, 기능성, 안테나로 수집한 정보들에 대해 얼마나 빠르고 다양하게 대응할 수 있는가
리오넬메시는 순간순간 판단력이 필요하고 다양한 선택들이 가능하다.(점수차이, 날씨, 이기고있냐 등) 변수들이 경기 내내 영향을준다

느끼기에 우사인볼트는 워터폴 방식이고 리오넬메시는 애자일을 표현하신 말씀같다.

비지니스 어질러티(애자일 왜 해야하는가? -> 안죽으려고 한다),
기업들의 수명주기 : 국회의 예산을 예를들어서 1년주기로 예산 수립, 1년 후에 예산 검토하면 1년내에 예상치못한 일이 발상한다.
그럼 반대로 꼭 필요한 곳에 예산이 모자라지거나 필요하지 않은 예산이 남는 변수가 생긴다.
이것을 한달 주기로 하면 어떻게 하냐?
-분명 1년 주기로 하는 것 보다는 예산 선정이나 방법이 달라져야한다-

 

그리고 애자일을 적용할 때는 크게 두 가지 방법으로 나뉜다고 하셨다

 

bottom-up : 이번에 새로운 프로젝트하고 팀이 꾸려지는데 이런 방법, 이런 식으로 하는게 어때?
밑에서 변화를 위해 자발적으로 버블을 만들어내고 뭉친다
장점 : 편하다
문제점 : 평가와 보상, 조직 구조, 예산 정책의 문제는 팀이 어떻게 해결할 수 없기때문에 여기서 애자일이 멈춰버린다.
자기를 갈아넣는구조-> 잘한는 사람이 퇴사하거나 번아웃이오면 다시 예전으로 돌아간다.

 

top-down : 대표님이 어디서 애자일 듣고와서 실행해봐 -> 위에서 밑으로 시킴

장점 : 통일성
문제점 : 여러가지 거부감, 사람 줄이려한다 등 불만사항 발생

그럼 어떻게 해야해?

컬처 버블을 지켜야한다.

컬처 버블 : 메세지는 혁신적, 고객중심, 유연하게 계획을 바꿔야하지만 워터풀로 적용한다
핵심은 조직을 변화하는 과정도 반복적이고 점진적이여야한다. (한 번에 모든 걸 갈아엎는건 불가능하기 때문에)
그럼 이 시작점을 컬처 버블이라고 한다 (조직 안에서 새로운 방법을 시도해보고 맞는 방법을 찾아서 익혀나간다).

 

1. bottom(개발팀)에서는 리더가 중요하다.

버블 외부의 다른 구성원들과 건강한 관계를 유지해야한다.

기존의 조직 문화를 존중하며 필요한 지원을 계속 유지하고 성과를 창출하면서 버블 및 그 구성원의 성장을 촉진합니다.

 

2. top(경영, 인사팀)에서는 버블을 지켜내는게 중요하다.

가이드라인을 만들어서 일괄적으로 배포하는게 아니라
의도적이든 자발적으로든 생겨난 버블을 발견하고 어떻게 지켜내고 키워낼거냐 경영진(인사팀)의 역할이라고 한다.

 

때때로 버블은 커지기도 작아지기도 사라지기도 하는데 옳게 된 버블은

"내가 저 버블(변화)에 속하지 못하면 뒤처지겠구나 라는 느낌이 드는 것)"

 

한 가지 예시를 들어주셨다.

 

1. 이유와 목적 : 이거 왜 하려고 하는가?
2. 의미 있는 대화 : 말로 해서 팀원들에게 공감을 받고 이야기를 나눠야한다.
3. 실험 : 모든게 실험이다, ex) 다음 주 부터 아침 15분동안 미팅진행하겠습니다 가 아니라 -> 다음 주 부터 아침에 미팅하는게 어떤게 우리에게 맞는 방법인지 실험해보겠습니다
4. 2주뒤에 다시 정해보죠
5. 어떻게 바뀔지 변화할지 계속해서 피드백을 해야한다.

 

이렇게 5가지 순서가 계속해서 회전해야 건강한 애자일을 유지할 수 있다고 하셨다.

끝으로

에자일은 권한이 있든 없든 변화와 발전을 원한다면 누구나 할 수 있다.

 

 

다음으로 (주)테크레디 COO/CAO(Agile)의 길도현님의 발표이다.

 

애자일 효능감을 진심으로 경험할 수 있는 5가지 프랙티스!

조직이 에자일로 변화할 때 필요한 것?

1. 계획수립을 잘 해야한다.
작업 이해도 향상 -> 불량률 저하
작업 변경점 감소 -> 집중력향샹

2. 고객에 중요하다 (고객/이해관계자와 끊임없이 동기화, 피드백하기)
   1. 목표 동기화
   2. 결과물 동기화
   3. 우선순위 동기화

3. 글과 말 말고 그림으로 가시화 하자
   1. 그림으로 소통
   2. 결과수립 때 작업의 결과를 그림으로 정의
   3. 기획/설계도를 그림으로 소통

4. 비정기 업무의 정기업무화, 정기업무의 비정기 업무화 (프로세스를 지켜야하고 권한이 없으면 좋은 변화가 힘들다)
   1. 정보를 가지고 있는 팀이 결정을 주도한다.
   2. 회고의 필수 논의 항목으로 비정기 업무를 정기업무화로 올리거나 정기업무를 비정기업무로 낮추거나
   3. 전체업무시간 중 정기업무의 시간 관리(너무 많거나 적지 않은가?)
결론 제약조건/기준을 개선하는 변화의 시도를 멈추지 않기

5. 개인 대신 팀으로 일하기
   1. 고객 과 팀 목표 단어를 끊임없이 사용

 

정도이다 마지막으로 "기능위주 개발하면 안된다"

 

라는 말씀을 해주셨는데 개인적으로 이게 가장 와닿았다.

 

최근 진행한 파이널 프로젝트에서 아 맞다! 우리는 물고기 관련 상품을 파니까 상품 신고이 있어야 돼,또는 알람이 필요해 !

하던 우리가 뜨끔했다.

어떻게 보면 당연한 말이다. 기능중에 필수 기능이고 구현해야할 기능이지만 개발목표가, 순서가 저런 의식의 흐름대로 되면 안된다는 걸 다시 한 번 깨달았다.