Agile
[Sprint](https://texonom.com/sprint-44b3b699d1e64dcb83ea358b7e2f93dd) 


### Agile software development
프로젝트의 생명주기동안 반복적인 개발을 촉진한다
### Agile Development Processes
|Title|
|:-:|
|[eXtrem Programming](https://texonom.com/extrem-programming-296a1b480336496aa668468de35799b8)|
|[Scrum](https://texonom.com/scrum-f4b1b58b9613468987b7b2d82f4c37f7)|
계획이 없는 방법론의 경우, 앞으로의 일을 예측하기 힘들고 효율적이지 못하다는 점에서 취약점을 가지고 있으며
계획에 너무 의존하는 경우는 그 형식적인 절차를 따르는데 필요한 시간과 비용을 무시할 수 없으며, 전체적인 개발의 흐름 자체를 느리게 하는 단점을 가지고 있다.

다른 고전적인 방법론, 예를 들면 폭포수 모델, 계획 기반 개발 또는 나선 모형과 구별되는 가장 큰 차이점은 less document-oriented, 즉 문서를 통한 개발 방법이 아니라, code-oriented, 실질적인 코딩을 통한 방법론이라는 점이다.

계획을 통해서 주도해 나갔던 과거의 방법론과는 다르게 앞을 예측하며 개발을 하지 않고, 일정한 주기를 가지고 끊임없이 프로토 타입을 만들어내며 그때 그때 필요한 요구를 더하고 수정하여 하나의 커다란 소프트웨어를 개발해 나가는 adaptive style 이라고 할 수 있다.

"애자일(Agile=기민한, 좋은것을 빠르고 낭비없게 만드는 것) 개발을 가능하게 해 주는 다양한 방법론 전체를 일컫는 말이다. 예전에는 애자일 개발 프로세스는 "경량(Lightweight)" 프로세스로 불렸다. 익스트림 프로그래밍 (XP:eXtreme Programming)이 애자일 개발 프로세스의 대표적인 방법이라 볼 수 있다

애자일 개발 프로세스는 제한된 시간과 비용 안에서 정보는 불완전하고 예측은 불가능하다는 전제를 가진다. 그리고 그 전제 아래에서 합리적인 답을 내도록 하는 것이 애자일 개발 프로세스이다.
애자일 개발 프로세스의 상당수는 객체지향 기술을 기반으로 한다.

전통적인 개발 프로세스들은 공업에서 사용하는 정형적 프로세스 제어 모델을 따르고 있다. 정형적 프로세스 제어모델은, 동일한 입력에 대해서 동일한 결과가 기대 될 경우에 적합하다. 하지만, 소프트웨어를 포함한 IT의 개발은 경험적 프로세스 제어 모델로 접근할 필요가 있다. 경험적 프로세스 제어 모델은 항상 불확실성을 수반하고 포용하고 있다. 애자일 개발 프로세스는 경험적 프로세스 제어모델로 개발을 관리한다.

### 고전방법 부작용


- 납기일 전 철야
- 철야에도 불구하고 납기일 지연
- 지연에 따른 비난과 스트레스로 개발자 에너지 소진
- 결국 납품된 솔루션은 고객의 요구를 충족하지 못함



> [[원팀 원브레인] ⑱애자일조직, 스크럼 &스프린트 방식](http://it.chosun.com/site/data/html_dir/2019/05/07/2019050702284.html)







