반응형
소프트웨어 개발은 우리가 어떤 언어와 프로젝트, 대상을 고르냐에 따라서 많은 방법이 존재한다. 방법 중 반드시 하나만이 옳은 방식이라고는 할 수 없다. 처음부터 확실하게 정해진 일정을 따라 순차적으로 진행하거나, 진행하며 적응하고 바꾸고 테스트하는 방법을 사용할 수도 있을 것이다. 또한 개발 프로젝트의 규모나, 개발자들의 의견 및 성향, 고객의 성향에 따라서도 다르게 방법론을 적용해야 한다.
일반적으로 가장 많이 사용되어 왔던 방법론은 엄격한 폭포수(waterfall) 방법이다. 하지만 우리가 매일 그 날에 개발한 작업 및 요소들에 대해 수정을 거치면서 하고싶다면, 좀 더 유연한 에자일 방법이 적합할 것이다.
폭포수 방법론
- 소프트웨어 개발의 초기부터 언급되어 이어져 온 개발의 표준 방식이다.
- 비즈니스 요구 → 기술 디자인 → 코딩과 테스팅 → 클라이언트 승인 및 런칭으로 이어진다.
- 엄격하게 구조화 된 방식이며, 소프트웨어나 웹 개발만이 아니라 제조업 또는 건설업 등 여러 산업 분야에서 효과적으로 쓰였다.
- 확실하고 명확한 계획으로 시작되고, 각 단계가 겹치지 않고 다음 단계로 넘어가기 전 사실상 완료가 되어야만 한다.
- 제품 테스트는 모든 개발이 완료된 후에 이루어진다.
- 원하는 것과 예산을 정확히 알고 있고, 개발 과정중에 사소한 부분들로 계획이 자주 바뀌지 않는 경우에 좋은 선택이 될 수 있다.
에자일
- 에자일의 사전적 뜻 : 기민한, 좋은 것을 빠르고 낭비없게
- 개발에서 에자일 처리 방식이란 반복적인 일이나 경험에 의한 피드백을 통해 예측 불가능한 일에 대응할 수 있도록 하는 것을 말한다.
- 에자일 방식에서 가장 핵심이 되는 것은 협력과 피드백이다.
- 에자일 방법론이 나오게 된 이유는 전통적인 순차 방식은 일련의 차례를 거쳐 각각의 단계가 마무리 되어야만 다음 단계로 넘어갈 수 있고, 각각의 단계를 수행하는 사람들 사이에서 소통이 사라지기 때문이었다.
에자일 개발 방법론의 특징과 장점
- 개발 주기를 통해서 프로젝트의 방향, 목표를 가늠하기 좋게 도와준다.→ 반복적인 주기(스프린트)를 거쳐서 이루어지고 과정 후에 마지막에 실행 가능한 제품을 발표.
- 단축된 일의 반복, 제품 기능에 중점을 둔다.
- 폭포수 모델(워터폴 모델)에서는 개발자들이 한 번의 기회로 프로젝트의 모든 측면에 대해 검토했어야만 했지만 에자일 방법론을 사용하면 일정한 주기를 통해 모든 측면을 재검토하며 넘어갈 수 있다. (예를 들어 2주마다 프로젝트 목표를 재검토해야 한다면 처음과는 또 다른 방향으로 전환할 기회가 있다.)
- 이런 inspect-and-adapt 개발 방식은 개발 비용 및 시간을 크게 줄여준다. → 개발자들이 소프트웨어를 개발하는 동시에 필요한 부분을 수집하기 때문에 프로젝트 규정이 덜 엄격하고, 또한 초기에 버그를 빠르게 발견할 수 있다.
- 또한 적합한 제품을 만드는 것을 도와준다. → 회사가 아직 완성되지 않은 소프트웨어를 시장에 출시하는 것을 막고, 제품의 출시에 대해 재검토하고 계획을 세울 수 있도록 만들어 가치를 최적화할 수 있도록 도와줌.
- 가벼운 개발 방법을 통해 고객과의 협력을 강조하며, 과정과 도구보다는 개인과 상호작용을 더 중요시하는 좀 더 외향적인 개발 방식이다.
- 위와 같은 점들을 통해 시장 경쟁력, 적합성을 갖출 수 있게 된다. → 투자 및 개발팀의 노력이 헛수고가 되지 않도록 보장해준다.
스크럼
- 에자일 개발 과정의 하나
- 단순함과 융통성으로 인해 가장 인기있는 방법론
- 경험에 의거한 피드백, 팀의 자가적인 관리, 짧은 반복을 통해 적합한 제품 테스트에 중점을 두는 개발 방법론
- 제품 책임자, 팀, 스크럼 마스터 3개의 역할이 존재
- 제품 백로그 → 스프린트 계획 → 일일 스크럼 → 스프린트 검토 회의 → 스프린트 후행 회의
Reference
반응형