애자일 개발 방법론은 기존 산어 개발 방법론에서 파생한 소프트웨어 개발 방법 접근에 대해 문제를 제기하고, '소프트웨어 개발'에 적합한 방식을 제시하는 개발 방법론이다. 'Agile'의 의미를 '기민함'이라 할 수 있는데, 여기서의 기민함은 피드백에 빠르게 대응하고, 그 대응의 움직임에 낭비가 없음을 의미하는 것.
Agile 개발 방법론은 아래의 문구로 그 철학을 대표할 수 있다.
Scrum은 일본에서 시작된 소프트웨어 개발 방법론이며, 미국에서 '스크럼'으로 이름이 붙여졌다. 스크럼은 비즈니스 요구를 충족시키는 소프트웨어를 개발하는데 초점을 두고 복잡함을 제거하는 관리 및 제어 프로세스다.
애자일에서는 핵심 구성요소를 통해 다음과 같은 가치를 표방한다.
솔직히, 우리가 좋은 친구들을 만나면서 지속적으로 서로 작업 내용을 확인하고, 같이 밥을 먹으러 가면서 프로젝트 이야기를 하고, 같이 도서관에서 가서 참고문헌을 찾아보는 것도 Agile개발 방법론의 일부이다. Scrum은 이런것들이 잘 안될때 프로젝트를 잘 이끌어 나갈수 있도록 만들어주는 '도구'일 뿐, 이것이 만약 프로젝트의 전부가 되어버리면 팀은 뻣뻣한 시스템에 반감을 가지게 될 것.
사실 같이 동업하고 있는 사람과 이 프로젝트에 대해서 잘 알고, 잘 끌고 나간다는 생각이 절로 들고 있다면, Scrum과 같은 시스템은 필요 없다. 이는 친구와의 이러한 동업 만으로도 Agile한 프로젝트를 이행하고 있기 때문이다. 투명한 프로젝트 성과를 매번확인하고, 매 기간마다 동작 가능한 소프트웨어가 나온다면 말이지.
다만, Agile에서는 또한 Code Craftmanship을 요구하고 있기 때문에, 프로젝트 문화 및 분위기와는 별개로 좋은 코드를 만들기 위한 자기개발은 필수.
Agile에서 제시하는 소프트웨어 철학을 올바르게 이해한 가운데 XP나 Scrum에서 제시하는 도구와 방법을 받아들인다면 나날이 발전하는 프로젝트와 코드와 팀원과 자신을 발견할 수 있다.