한가지 개발 언어에 대해서 어느정도 이해를 하고, 내가 숙련한 개발 언어를 가지고 제대로된 프로덕트를 만들어나가려고 하는 시점에 우리는 이 단어를 접한다.
"애자일(Agile)"
프로젝트를 애자일하게 만들어가보자, 애자일을 채택하자 등... 뭔가 전문적인 이 단어.. 이게 뭘까?
문맥상으로만 이해하게 된다면, 아마 '빠르게' 또는 '작은 규모로 여러번' 정도의 뜻으로 이해하게 될 것이다.
애자일의 일부분으로써는 맞는 말일 수도 있겠다.
하지만 정확히 이해하지 않고서는 '애자일하게 하면 ~~하지 않겠어?', '우리 프로젝트는 변화사항이 없는 완성형이라 애자일할 필요 없을 것 같아.' 등 내 의견을 피력하지 못하고, 프로젝트에 맞지 않는 성격의 업무 구조를 가지게 될 수도 있다.
"애자일"이란 소프트웨어 개발 방법론인데, 아래와 같은 성격을 가지는 SW 프로젝트 프로세스라고 보면 된다.
1. 변화를 수용, 협업을 강조, 결과물의 빠른 속도를 강조
2. 문서보다는 작동되는 SW를 중요시함.
3. 요구 사항에 대해서 대응하는 것을 현실적이라고 판단.
4. 재작업시 생기는 리스크 최소화
"애자일"하게 프로젝트를 만들어나가는 것은 결과물을 최종에 다다라야지 확인할 수 있는 "워터폴" 방식에 비해 훨씬 더 까다로울 수 있는 방법이다.
1. 내부적으로 모두가 이 프로젝트에 대해서 100% 이해하고, 프로젝트 인원들간 씽크가 확실한 협력이 가능해야 한다.
2. 유저 피드백에 의해 일정 기능의 변화가 생겨야할 때 모두가 애자일이라는 명목하에 이유에 납득하고 적용할 수 있어야한다.
애자일을 채택하여 내-외부의 피드백에 의해 꾸준히 변화하면서 큰 프로젝트가 되어갈 수 있는 것이다.
"애자일" 개발방식은 단순히 작은 규모로 프로젝트를 쪼개서 빠르게 개발 결과물을 생산하는 것이 아니다.
프로젝트 중 지속적인 협업과 피드백을 통해서 변화에 대응하고, 피드백은 작동되는 결과물을 토대로함으로써 중간 과정들도 완성도를 추구하기 위해 존재한다고 할 수 있다. 이런 과정들은 개발 재작업을 최소화하고, 완성도와 만족도가 높은 결과물을 만들기 위해 존재한다.
"애자일" 개발방식에는 다양한 종류가 있는데
그 중 대표적으로 스크럼 / 익스트림 프로그래밍(XP) 이 있다.
스크럼은 정해진 주기에 완성될 수 있는 목표를 정하고, 끝나는 시점에 동작하는 결과물을 토대로 필요한 변화/변경점을 찾고, 이를 수용하여 다음 정해진 주기의 목표를 정하여 또다시 개발에 매진하는 방식의 일종이다.
익스트림 프로그래밍은 주기보다는 커스터머의 요구사항에 해당하는 부분들이 개발되어질 때마다 하나하나를 작동가능한 결과물로 수시로 제공하고, 커스터머에게 테스트를 요청하여 피드백을 받고 이를 보정해나가는 과정을 거치는 것이다. 특히, 개발 중 테스트를 꼭 거치는 것이 특징이다.
이런 다양한 방식들은 하나로 정해야하는 것이 아니라서, 프로젝트의 성격과 환경에 따라 적당히 커스터마이즈하여 상호 협의하에 룰을 정하면 되는 것이다.
결론적으로, "애자일하게 개발하자" 는
작은 규모의 작동되는 결과물을 토대로 피드백(유저 and 스스로)을 받고, 변화요인을 적극적으로 수용하여 기획을 지속적으로 변경/확장해나가면서, 시간적/기술적 리스크를 최소화하여 완성도 높은 결과물을 만들어 내는 것의 함축된 의미이다.
"애자일"은 절대로 적당한 퀄리티의 MVP 모델을 만들기 위한 프로세스가 아니라, 리소스를 효율적으로 활용하고 적은 리스크로 완벽한 프로덕트를 만들기 위한 방법인 것이다.
"애자일" 개발방식의 모든 설명에서 개발을 빼고 생각해봐라. 효율적으로 완성도 높은 어떠한 프로덕트를 내기 위한 프로덕트 개발방식인 것이다.
제대로된 "애자일" 개발 방식은 연속적이고 유기적인 협업과 피드백을 통한 변화를 통해서 완벽한 프로덕트를 만들어나가는 방식이기 때문에, SW 개발 뿐만 아니라 기획/디자인/개발/마케팅 모든 측면에서 사용되고 이 방식을 따른다면 최적의 효율을 낼 수 있다고 확신한다.
"애자일" 개발 방식이 스타트업에 최적의 솔루션이라고 생각한다. 모두가 한 아이템의 완벽한 이해를 할 수 있고, 그들이 만들어나가는 프로덕트에 적용되는 변화가 뚜렷하게 보이고, 동시에 리소스가 적은 가운데 몰입을 통해 완성도를 높일 수 있는 방법이기도 하기 때문이다.
똘똘뭉쳐서 하나의 프로젝트를 하는 팀의 일부 혹은 전부가 시니어급의 능력을 갖췄다면, 처음부터 애자일 개발방식을 채택해서 프로젝트를 진행해봐라. 기업에서 하는 것처럼 결과물을 확인하는 데까지 오래걸리는 워터폴 방식보다, 훨씬 더 짧은 시간안에 완성된 결과물을 얻고, 훨씬 더 좋은 프로젝트가 될 것이라고 확신한다.
'Development' 카테고리의 다른 글
Cloudflare 도메인 비공개 릴레이 접속 안되는 문제 해결 방법 ( How to troubleshoot issues with accessing Cloudflare's domain private relay ) (0) | 2023.06.25 |
---|---|
AWS 사용하는 앱 통신판매업 호스트 서버 주소 신고 팁 (0) | 2023.06.14 |