애자일 (Agile) 이란?
- 애자일은 소프트웨어 개발 방법론 중 하나입니다. 애자일은 반복적인 개발과 고객의 요구사항을 빠르게 반영할 수 있도록 하는 방법론입니다.
- 애자일은 코드 기반(Code-oriented)이며, 폭포수 모델(Waterfall model)과는 다르게 반복적인 개발을 통해 고객의 요구사항을 빠르게 반영할 수 있도록 하는 방법론입니다.
- 공정과 도구보다는 개인과 상호작용에 더 가치를 둡니다.
애자일 소프트웨어 개발 선언
우리는 소프트웨어를 개발하고, 또 다른 사람의 개발을 도와주면서 소프트웨어 개발의 더 나은 방법들을 찾아가고 있다. 이 작업을 통해 우리는 다음을 가치 있게 여기게 되었다
공정과 도구보다 개인과 상호작용을
포괄적인 문서보다 작동하는 소프트웨어를
계약 협상보다 고객과의 협력을
계획을 따르기보다 변화에 대응하기를
가치 있게 여긴다. 이 말은, 왼쪽에 있는 것들도 가치가 있지만, 우리는 오른쪽에 있는 것들에 더 높은 가치를 둔다는 것이다.
애자일 소프트웨어 개발 방법론의 12가지 원칙
- 최우선 순위는, 가치 있는 소프트웨어를 일찍 그리고 지속적 으로 전달해 고객을 만족시키는 것이다.
- 비록 개발 후반부일지라도 요구사항 변경은 언제나 환영한다. 애자일 프로세스는 변화를 활용해 고객의 경쟁력을 높이는 데 도움을 준다.
- 작동하는 소프트웨어를 자주 전달하라. 2주에서 2개월 사이의 주기를 유지하라. 더 짧은 주기가 더 좋다.
- 비즈니스 사람과 개발자들은 하루에 같이 일해야 한다. 그들은 하루 종일 함께 일해야 한다. 그들은 프로젝트의 모든 측면을 함께 이해해야 한다.
- 동기가 부여된 개인들이, 그들이 가진 최고의 능력을 사용해, 최상의 설계와 아키텍처를 만들어 내는 것이다.
- 개발팀으로, 또 개발팀 내부에서 정보를 전달하는 가장 좋은 방법은 얼굴을 마주보고 대화하는 것이다. (Face-to-face conversation)
- 작동하는 소프트웨어가 주요 측정 항목이다.
- 지속 가능한 개발을 장려한다.
- 기술적 탁월성과 좋은 설계에 대한 끊임없는 관심이 기민함을 높인다.
- 단순함 -- 하지 않는 일의 양을 최대화 하는 기술 --은 최고의 설계와 아키텍처를 만든다. (Simple the best)
- 최고의 아키텍처, 요구사항, 설계는 자기 조직화하는 팀에서 나온다.
- 팀은 정기적으로 어떻게 더 효율적으로 일할 수 있는지 회고한다.
애자일 vs 폭포수
- 애자일 모델과 반대되는 개발 방법론으로 폭포수 모델이 있습니다.
- 폭포수 모델(waterfall model)은 소프트웨어 개발의 과정을 여러 단계로 나누고 각 단계가 끝나야 다음 단계로 넘어갈 수 있도록 하는 방법론입니다.
- 폭포수 모델은 개발 과정을 요구사항 분석, 설계, 구현, 테스트, 유지보수로 나누고 각 단계가 끝나야 다음 단계로 넘어갈 수 있도록 하는 방법론입니다.
- 한 단계가 끝난 뒤 다음 단계가 시작되는 방식이 마치 폭포수가 내려오는 것과 같아서 폭포수 모델이라고 부릅니다.
Reference