[Deployment_Note] 2.Agile 방법론


폭포수 방법론



폭포수 모델은 소프트웨어를 개발하는데 있어서, 각 단계가 위에서 아래로 물이 떨어지는 것처럼 순차적으로 진행되게 됩니다.


image



이 모델의 특징은 폭포에서 물이 떨어지는 것처럼 위에서 아래 단계로 순차적으로 각 단계가 진행되고,

여러 단계가 병행적으로 진행되거나 거꾸로 진행되는 경우가 거의 없습니다.



각각의 개발 단계에서 진행이 완료된 다음 다음 단계로 진행하기 때문에 개발 프로젝트를 진행하는데 리스크가 적다는 장점이 있습니다.

하지만 각 단계가 진행된 뒤에 요구사항이 변경되거나 설계 등이 변경되면 추후에 커다란 문제가 발생할 수 있습니다.

그리고 실제 현실에서는 개발 프로젝트에서 요구 사항이 변경될 가능성이 높아, 각 단계가 반복될 수 있기 때문에 다소 현실적이지 못한 개발방법론이 될 수 있습니다.

또, 실제 작동하는 소프트웨어는 개발 후반부에 확인할 수 있다는 것이 추가 단점이 될 수 있습니다.



애자일(Agile) 방법론



폭포수 모형은 고객과의 의사소통이 적다는 것 또, 그 때 그 때마다 테스트하는 것이 아닌 마지막 단계에서 테스트함으로써 요구사항이 변경될 때 커다란 문제가 발생하는 커다란 문제점이 있었습니다.


이것을 극복하기 위해 Agile 방법론이 나왔습니다.


image



agile 방법론은 고객들과 더 많은 의사소통을 하고, 지속적인 변화관리, 순차적인 단계별로가 아닌 우선순위에 따라 중요한 것을 먼저 처리하는 모델입니다.


다음은 Agile 방법론의 원칙입니다!


  • 우리의 최우선 순위는, 가치 있는 소프트웨어를 일찍 그리고 지속적으로 전달해서 고객을 만족시키는 것이다.



  • 작동하는 소프트웨어를 자주 전달하라. 2-4주 간격으로 하되 더 짧은 기간을 선호하라



  • 작동하고 있는 소프트웨어를 보여주는 것이 진척을 확인할 수 있는 길이다.



  • 비록 개발의 후반부일지라도 요구사항 변경을 환영하라. 애자일 프로세스들은 변화를 활용해 고객이 경쟁력에 도움이 되게 한다.



  • 비즈니스 쪽의 사람들과 개발자들은 프로젝트 전체에 결쳐 날마다 함께 일해야한다.



  • 동기가 부여된 개인들 중심으로 프로젝트를 구성해라. 그들이 필요로 하는 환경과 지원을 주고 그들이 일을 끝내리라고 신뢰하라



  • 개발팀으로, 또 개발팀 내부에서 정보를 전하는 가장 효율적이고 효과적인 방법은 얼굴을 보며 할 수 있는 대화이다.



  • 최고의 아케텍처, 요구사항, 설계는 스스로 움직이는 조직적인 팀에서 탄생한다.



  • 기술적 탁월성과 좋은 설계에 대한 지속적인 결과물의 전달이 민첩성을 높인다.



  • 애자일 프로세스들은 지속 가능한 개발을 장려한다. 스폰서, 개발자, 사용자는 일정한 속도를 계속 유지 할 수 있어야 한다. (단기간 높은 성과보다 길고 꾸준한 성과가 좋다.)



  • 단순함, 안 해도 되는 일은 최대한 안 하게 하는 기교, 이것이 획심이다.



  • 팀은 정기적으로 더 효과적으로 일할 수 있는 방법을 숙고하고 그에 따라 자신의 행동을 조율하고 수정한다.





에자일은 Scrum, XP, Kanbam 등의 개발 방법론을 이용하며, 대부분이 원하는 기술과 프로세스들을 연결하여 사용합니다!