애자일 개념 쉬운 설명

우선 이 글의 목적은 애자일 소프트웨어 개발에 대하여 알기 쉽게 대략적으로 소개하는 것임을 밝힌다. 정확한 설명을 원한다면 위키 백과의 애자일 소프트웨어 개발 항목을 살펴보라. 애자일 개발 선언도 읽어보기 바란다. 애자일 프랙티스, 사용자 스토리, 스크럼, 칸반과 스크럼 같은 책을 읽어봐도 좋다.

도대체 애자일이란 무엇인가? 기술자만 이해할 수 있는 특수한 개념인가? 현실과 동떨어진 이상론인가? 그저 좋은건 다 애자일인가? 모두 아니다. 애자일은 변화에 기민하게 대응하기 위해 고안된 경영 기법이다. 스티브 잡스의 말 처럼 탁월한 경영의 원리는 단순하고 당연하다. 하지만 이를 실천하기란 쉽지가 않다.

애자일이 실천하려는 기본 원리는 다음과 같다.
  • 일을 작게 쪼개자. (천리 길도 한 걸음 부터.)
  • 중요한 일을 먼저 하라. (핵심 가치 중심으로 명확한 과업 우선 순위를 도출하자.)
  • 요구 사항 변화에 유연하게 대처하라. (동작하는 소프트웨어를 가지고 소통하자.)


사람은 분류하기를 좋아한다. 정보의 양에 압도 당한다고 느낄 때 사람은 분류를 통해 세상을 이해하려고 든다. 사람의 뇌는 선천적으로 정보를 모으고 분류하도록 설계되어 있다. 따라서 이미 구조화된 생각을 잘게 쪼개고 우선 순위를 정하는 것이 처음에는 어색할 수 있다. 하지만 마음 먹고 노력하면 누구나 할 수 있다.

그렇다면 애자일은 왜 필요할까? 질문을 바꿔보자. 경영은 왜 필요한가? 주먹구구식 운영만으로는 소프트웨어 개발처럼 복잡한 문제를 해결할 수 없기 때문이다. 핵심 가치와 명확한 우선 순위가 없는 경영은 경영의 탈을 쓴 주먹구구식 운영일 뿐이다. 우선 순위가 명확해서 해로울 것은 아무것도 없다.

물론 주먹구구 방식이 반드시 실패하는 것은 아니다. 제법 큰 규모의 성공을 거둘 수도 있다. 하지만 불확실성이 커지면 주먹구구 방식은 위험에 무방비 상태로 노출된다. 주먹구구 경험을 창의, 직관, 경륜 따위로 착각한다면 위험은 더욱 커진다. 문제를 해결하려면 공상과 합리화를 멈추고 현실을 직시해야 한다.


어떤 이는 애자일 프로젝트의 실패 사례를 들며 애자일을 의심한다. 원래 소프트웨어 개발은 불확실성이 크기 때문에 관리가 어렵고 자주 실패한다. 애자일은 성공 보증 수표가 아니다. 하지만 점진적 개선을 통하여 실패의 징후가 보다 빨리 드러나도록 한다. 암도 조기에 발견하면 치료할 수 있다.

애자일을 어설프게 적용하여 실패한 프로젝트를 경험하고 애자일을 의심하는 경우도 있다. 실패 원인을 명확히 파악하지 못하고 애꿏은 애자일 탓만 하는 것이다. 조선 민주주의 인민 공화국의 민주주의가 효과를 발휘하지 못하는 것 처럼, 애자일 개발 역시 어설프게 실행하면 효과를 보기 어렵다.

애자일을 적용하고 싶지만 애자일이라는 용어가 모호하고 어렵게 느껴진다면, 그래서 동료나 고객과의 소통이 힘들어졌다면, 당분간 애자일이라는 말을 입 밖에 내지 말고, 대신 '일을 작게 쪼개자, 우선 순위를 명확히 하자, 일부 기능이라도 갖춘 제품을 최대한 빨리 릴리즈하여 직접 써 보자'고 말해보자.

댓글 없음: