2020년의 경영 키워드로 뽑히기도 했던 Agile, 비단 소프트웨어 분야뿐 아니라 산업이나 경영에 관심이 있다면 한 번쯤 들어봤을 법한 용어이다. 그러나 무슨 뜻인지도 잘 모르겠고, 응애 나 아기 학부생 ~ 이란 마인드인 사람들을 위해 (사실 내가 그렇다) 간략하게나마 정리해봤다.
우선 Agile은 프레임워크나 프로그램 같은 게 아니다. 내가 제일 헷갈렸던 부분. 무슨 프로그램 언어인지, 자바 스프링같은 프레임워크인지 잘 이해가 안 갔었다.
Agile이라는 단어의 뜻은 "민첩함과 기민함"인데, 단어의 뜻 그대로 조직의 생산효율과 속도를 극대화하기 위한 철학이라고 생각하면 된다.
후술하겠지만 1990년대 후반까지 소프트웨어 분야는 여느 다른 공학분야처럼 waterfall 방식으로 개발하였다. 그러나 이는 소프트웨어 분야 특유의 유동성과 빠른 발전속도 등으로 인해 한계가 있었다. (그렇다고 이 때 소프트웨어 분야에서 사라진 건 아니고 지금도 쓰이고 있다고 한다)
소프트웨어 개발자들은 기존과 다른 관점이 필요하다는 결론을 내렸고, 2001년 17명의 소프트웨어 개발자가 모여 미국 유타 주에서 'Agile menifesto'를 선언하며 Agile의 역사가 시작되었다. 기업들이 '소프트웨어 프로그램'을 제공하던 문화에서 더 유동적이고 고객의 피드백을 빠르게 받아들일 수 있는 '서비스'를 제공하게 된 전환점이라고 할 수 있겠다.
어떤 내용의 철학이길래 이렇게 유명해졌을까? 선언문의 Key Philosophy는 다음과 같다.
공정과 도구보다 개인과의 상호작용을,
포괄적인 문서보다 작동하는 소프트웨어를,
계약 협상보다 고객과의 협력을,
계획을 따르기보다 변화에 대응하기를 가치 있게 여긴다.
출처 입력
이는 기존 소프트웨어 분야에 이용되었던 Waterfall 개발 방식과도 연관이 있다. 기존에는 시장 조사나 계획 수립에 엄청난 시간을 때려부었다. 완벽한 계획과 문서를 세우고, 개발을 시작해서 오랜 시간 작업에 착수했다. 그러다 보니 고객의 요구사항이 바뀌어도 적용시키기 어려웠고, 그렇다고 고객의 요구를 수용하지 않자니 아무도 사용하지 않는 소프트웨어가 개발되는 것이다. Waterfall의 한 라이프사이클이 워낙 거대하고 커다랗다 보니 생기는 문제점이었다.
Agile은 기존의 방법에서 사이클을 더 작게 축소하고, 더 빠르고, 변화를 잘 수용할 수 있도록 고안되었다고 볼 수 있다.
더 자세하게 설명된 원칙도 있는데, 기본적으로 저 네 문장에서 출발한다. 우리가 흔히 아는 선진기업의 기업문화가 모두 Agile에서부터 시작된 것이라고 생각하면 된다.
Agile 조직의 특징은 다음과 같다.
1. 계획 수립에 지나친 시간을 투입하지 않는다.
Agile 조직의 가장 큰 목표는 불확실하고 빠르게 변화하는 상황에 대응하여 빠르게 성과를 도출하는 것이다. 완벽한 분석과 계획보다는 빠른 시제품을 시장에 선보이고 피드백을 반영하는 방식을 추구한다.
2. 고객과 접촉하는 조직에 많은 권한을 부여한다.
피드백이 굉장히 중요하게 작용하기 때문에 고객과 접촉하는 조직이 핵심 역할을 한다. 그만큼 많은 권한을 가지고 ,보고는 하되 경영진의 직접적인 지시를 받지 않는다.
3. 민첩하고 효과적인 의사결정이 가능하다.
구성원들이 서로에 대한 신뢰를 가지고 있고, 가감 없고 솔직한 소통을 전제로 하기 때문에 빠른 의사결정이 가능하다. 실수가 발생하더라도 책임을 묻지 않고 빠르게 대처한다.
4. 모든 구성원이 정보를 공유한다.
정보의 비대칭은 생산성에서 좋지 않다. 임원들만 정보를 알고 있어도 그것은 개발에 하등 도움이 되지 않는다. 정보를 공유하고 최선의 의사결정을 한다.
5. 비주얼 플래닝을 사용한다.
한 눈에 프로젝트의 상황을 파악할 수 있게 비주얼 플래닝을 사용한다.
'Development methods' 카테고리의 다른 글
[TDD] Test Driven Development - python unittest 모듈을 사용하며 (0) | 2022.06.10 |
---|
댓글