1. 애자일(Agile)?
1-1) 개념
프로젝트의 생명주기동안 반복적인 개발을 촉진한다. 최근에는 애자일 게임 보급 등의 여파로
소프트웨어 엔지니어링뿐 아니라 다양한 전문 분야에서 ‘실용주의적 사고를 가진 사람'이
애자일 방법론을 적용하려는 시도를 하고 있다.
애자일 방법론은 소프트웨어 개발 방법에 있어 아무런 계획이 없는 개발 방법과 계획이 지나치게
많은 개발 방법 사이에서 타협점을 찾고자 하는 방법론이다.
너무 의존하는 경우 형식적인 절차를 따르는데 필요한 시간과 비용을 무시할 수 없으며
전체적인 개발의 흐름 자체를 느리게 하는 단점을 가지고 있다.
애자일 방법론은 계획을 통해 주도해 나간 과거의 방법론과 다르게 앞을 예측하며 개발하지 않고
‘일정한 주기'를 가지고 끊임없이 ‘프로토 타입'을 만들어내며 그때 그때 필요한 요구를 더하고
수정해 하나의 커다란 소프트웨어를 개발해 나가는 ‘Adaptive Style’이라고 할 수 있다.
1-2) 애자일 개발 프로세스란?
어느 특정 개발 방법론을 가리키는 말은 아니다.
애자일(Agile = 기민한, 좋은 것을 빠르고 낭비없이 만드는 것) 개발을 가능하게 해주는 다양한 방법론
전체를 일컫는 말이다.
익스트림 프로그래밍(eXtreme Programming)
2. 애자일(Agile), 개발 배경?
소프트웨어 개발 자체가 다른 공학적인 프로세스와는 큰 차이가
있음을 인지하는데에서부터 시작했다.
90년대 후반까지 소프트웨어 공학과 개발 방법론은 장기간에 걸쳐 많은 사람들을 투입하고
충분한 비용을 투입해 진행하는 다른 공학의 프로세스와 비슷한 맥략에서 진행되었다.
원인?
소프트웨어는 유동적이고 개방적이기 때문에 요구사항의 변경에 따른 작업량을
예측하기 힘들다.
고전적인 소프트웨어 공학이나 관리 기법만으로 대처할 수 없게 되었다.
기술적인 해결책
기술적인 해결책이 바로 ‘객체지향'이다.
객체지향 기술은 그동안의 개발 문제를 적절하게 대체해주었다.
객체지향 개발을 하기 위해 그에 적합한 ‘개발 프로세스'가 필요했다.
그게 바로 ‘애자일 개발 프로세스’다.
결론
애자일 프로세스
3. 애자일 개발 프로세스와 전통적인 개발 프로세스와의 차이?
3-1) 전통적인 개발 프로세스
3-2) 애자일 개발 프로세스
개념
자사가 대중에게 직접 제공하는 서비스를 단계적으로 개선해 나가려는 입장에서
주로 사용된다. 소프트웨어 개발 업무를 수주해 납품하는 것을
주 업무로 행하는 ‘개발 업체'의 업무 범위에서 그 특성을 한정해 비교하는 것은 바람직하지 않다.
애자일 개발 프로세스의 종류
고객과 함께 2주 정도의 반복개발을 하고 테스트우선 개발(TDD) 특징으로 하는
명시적인 기술과 방법을 가지고 있다.
테스트우선 개발(TDD)를 우선하는 ‘익스트림 프로그램밍'의 경우
→
크리스털 패밀리(Crystal Family)가 가장 소규모 프로젝트라고 하는데 ‘토이 프로젝트’할 때크리스털 패밀리 방법론을 적용시켜보면 어떨까?
→
애자일 개발 프로세스의 문제점
결론
4. 애자일 선언문