애자일 방법론: 의미, 장점, 단점 등

게시 됨: 2021-03-20

애자일 방법론은 지속적인 수정을 포함하면서 더 짧은 개발 주기를 사용하여 고객에게 더 나은 가치를 제공하는 것을 목표로 하는 소프트웨어 개발 철학입니다.

소프트웨어 개발은 ​​수학과 과학 분야에서 성장했습니다. 그래서 원래 그 분야의 과학적 방법을 통합했습니다.

이러한 방법은 1970년대에 오늘날의 요구 사항을 충족하기 위해 폭포수 접근 방식으로 발전했습니다. 그 당시의 컴퓨터와 소프트웨어는 크고 복잡했으며 수십 년 동안 지속되도록 설계되었습니다. 그래서 폭포수법이 잘 맞았다.

그러나 1990년대 후반까지 인터넷은 세상을 극적으로 변화시켰고 새로운 접근 방식이 필요하게 되었습니다. 그래서 애자일 방법론이 탄생했습니다.

다음은 이 소프트웨어 개발 운동과 그것이 귀하와 귀하의 팀에 어떻게 도움이 될 수 있는지 자세히 살펴봅니다.

목차

애자일 개발 방법의 역사

애자일 소프트웨어 개발은 ​​1990년대와 2000년대 초반의 호황기 동안 인터넷과 애플리케이션에 대한 끝없는 요구에서 성장했습니다.

이 시기는 컴퓨터 공학 배경이 없는 많은 개발자들이 다양한 그룹과 산업에 적합한 웹사이트에 대한 엄청난 수요 때문에 웹 개발로 전환한 시기이기도 합니다.

당연히 대부분의 스타트업은 소규모였다. 따라서 대부분의 개발은 소규모 팀에서 이루어졌으며 궁극적인 목표는 종종 빠른 시장 출시였습니다. 늦었다는 것은 시장 점유율을 잃는 것을 의미했습니다.

제품을 가능한 한 빨리 시장에 출시하는 데 있어 폭포수 모델이 제기한 제한 사항에 대응하기 위해 1990년대에 여러 개발자가 다양한 방법을 고안했습니다. 여기에는 RAD(Rapid Application Development), Scrum, XP(Extreme Programming), Kanban 등이 포함됩니다.

그런 다음 2001년 어느 날, 초기 애자일 개발 또는 다른 형태를 연습한 17명의 개발자가 미국 유타에 모였습니다. 그런 다음 그들은 '애자일 소프트웨어 개발을 위한 선언문(Manifesto for Agile Software Development)'을 발표하면서 회의를 마쳤습니다.

이 선언문은 4가지 가치와 12가지 원칙을 기반으로 합니다.

애자일 개발의 4가지 가치와 12가지 원칙

회의에서 모은 경험을 통해 17명의 개발자는 소프트웨어를 보다 효율적으로 만들기 위한 일련의 가치에 대한 합의에 도달했습니다.

이 네 가지 값은 다음과 같습니다.

  1. 프로세스 및 도구에 대한 개인 및 상호 작용 . 즉, 특정 프로세스를 따르면서 도구를 사용하여 소프트웨어를 개발하는 것이 중요합니다. 그러나 유능한 사람들이 더 효과적으로 함께 일하는 것이 더 중요합니다.

  2. 포괄적인 문서에 대한 작업 소프트웨어 . 이것은 실제 소프트웨어 개발 프로세스 전에 먼저 소프트웨어를 설계하고 이에 대한 문서를 작성하는 폭포수 방식을 공격합니다.

  3. 계약 협상을 통한 고객 협업 . 고객 또는 사용자와 긴밀하게 협력해야만 고객이 필요로 하는 것을 정확히 배우고 개발할 수 있습니다. 이것은 더 많은 가치를 창출합니다.

  4. 계획 에 따라 변경에 응답합니다 . 프로젝트 계획을 따르는 것이 중요합니다. 그러나 계획이 너무 엄격해서는 안 됩니다. 이해 관계자의 기대에 부응하기 위해 변경 사항을 수용해야 합니다.

위의 Agile Manifesto 값은 12가지 원칙을 기반으로 하며 다음과 같습니다.

  1. 가치 있는 소프트웨어를 조기에 지속적으로 제공함으로써 고객 만족을 실현합니다.
  2. 개발 후반에도 변화하는 요구 사항을 환영합니다.
  3. 작업 소프트웨어를 자주 제공(몇 달이 아닌 몇 주)
  4. 비즈니스 사람과 개발자 간의 긴밀하고 일상적인 협력
  5. 프로젝트는 신뢰할 수 있는 동기 부여된 개인을 중심으로 구축됩니다.
  6. 면대면 대화가 최고의 커뮤니케이션 수단(코로케이션)
  7. 작동하는 소프트웨어는 진행 상황의 주요 척도입니다.
  8. 지속 가능한 발전, 일정한 속도를 유지할 수 있음
  9. 기술적 우수성과 좋은 디자인에 대한 지속적인 관심
  10. 하지 않은 일의 양을 최대화하는 기술인 단순성은 필수적입니다.
  11. 최고의 아키텍처, 요구 사항 및 디자인은 자체 구성 팀에서 나옵니다.
  12. 팀은 정기적으로 어떻게 하면 더 효과적이 될 수 있는지 숙고하고 그에 따라 조정합니다.

반복 또는 스프린트

애자일 소프트웨어 개발의 반복 또는 스프린트는 일반적으로 개발 작업이 중단되는 1~4주의 짧은 기간입니다. 이렇게 하면 계획이 덜 필요하므로 일을 더 쉽게 관리할 수 있습니다.

또한 각 팀은 일반적으로 다른 기능을 가진 구성원으로 구성되며 여기에는 계획, 분석, 디자인, 코딩 및 테스트가 포함될 수 있습니다.

팀은 각 반복 또는 스프린트에서 함께 소프트웨어 작업을 합니다. 그리고 그들은 결국 작동하는 제품을 생산합니다. Agile Manifesto에 따르면 이 작동하는 소프트웨어는 진정한 발전의 척도입니다.

제품 및 고객의 요구에 따라 반복 제품이 시장에 출시되거나 출시되지 않을 수 있습니다. 따라서 단일 릴리스에 대해 많은 반복이 필요한 경우가 많습니다.

애자일 개발의 장점

상상할 수 있듯이 애자일 방법론은 많은 이점을 제공합니다. 그것들은 다음과 같습니다:

  1. 더 빠른 아이디어 구현
  2. 폭포수 접근 방식보다 더 많은 유연성
  3. 반복 관리로 생산성 향상
  4. 사용자 상호작용을 통한 더 나은 제품
  5. 오류를 신속하게 식별하고 제거합니다.

애자일 방법론의 단점

또한 애자일 개발 방법으로 작업하는 데에는 몇 가지 단점이 있습니다. 다음을 포함할 수 있습니다.

  1. 처음에는 전체 비용을 평가하기 어려울 수 있습니다.
  2. 많은 고객 입력이 필요합니다.
  3. 계획되지 않은 작업을 많이 포함
  4. 명확하게 정의된 프로젝트 끝 없음

애자일 방법을 사용해야 하는 경우

  1. 소프트웨어에 필요한 것을 예측할 수 없을 때
  2. 고객에 대한 충분한 액세스 권한이 있습니다.
  3. 웹 앱 또는 업데이트하기 쉬운 시스템을 개발 중입니다.
  4. 조기 출시로 시장 점유율을 빠르게 확보해야 합니다.

인기 있는 애자일 개발 프레임워크

많은 인기 있는 애자일 개발 프레임워크가 있습니다. 일부는 2001년 애자일 선언보다 훨씬 이전에 시작되었지만 다른 일부는 나중에 나왔습니다.

프레임워크의 목표는 단순히 메소드의 규칙을 정의하는 것입니다. 따라서 참조용으로 가장 인기 있는 프레임워크가 아래에 나열되어 있지만 더 많은 프레임워크가 있습니다. 또한 팀에 맞게 자유롭게 자신의 프레임워크를 만들거나 기존 프레임워크를 수정할 수 있습니다.

  1. Scrum : 이 프레임워크는 10명 이하의 구성원으로 구성된 팀을 위해 설계되었습니다. 작업은 매일 15분 회의와 함께 2-4주의 스프린트로 나뉩니다.

  2. Kanban : Toyota에서 시작된 Kanban은 빌보드를 의미하는 일본어 단어로 시각 자료를 좋아하는 팀에게 매우 유용합니다. 작업은 스티커 메모나 앱과 같은 시각적 표현을 사용하여 한 단계에서 다른 단계로 이동됩니다.

  3. Rapid Application Development RAD : 이 문구는 일반적인 애자일 소프트웨어 개발 또는 James Martin 방식을 모두 가리킬 수 있습니다. RAD는 사용자 인터페이스 요구 사항에 중점을 두고 프로토타이핑에 크게 의존합니다.

  4. 린 스타트업( Lean Startup ) : 이 프레임워크는 제품이나 서비스를 개발해야 하지만 먼저 시장 생존 가능성을 결정해야 하는 사람들을 위한 것입니다. 그것은 효과가 있는 것과 그렇지 않은 것을 보기 위해 실험을 사용하는 것을 포함합니다.

다른 주목할만한 프레임워크로는 익스트림 프로그래밍(XP), 적응형 소프트웨어 개발, 애자일 모델링, 동적 시스템 개발 방법 및 확장된 애자일 프레임워크가 있습니다.

애자일 대 폭포수 방법론

다음은 소프트웨어 개발을 위한 애자일 및 폭포수 방법을 나란히 살펴봅니다. 각 방법이 다른 방법에 대해 스택되는 방식을 아는 것이 도움이 될 수 있습니다. 따라서 작업에 가장 적합한 도구를 쉽게 선택할 수 있습니다.

기민한 폭포
증분 및 반복 접근 방식 선형 및 순차 수명 주기 모델
유연하게 변경 엄격한 구현
테스트 및 검토가 진행 중입니다. 완료 후 하나의 테스트 단계만 있습니다.
요구 사항은 변경될 수 있습니다. 요구 사항은 계획 후 수정됩니다.
많은 소규모 프로젝트 모음 하나의 단일 프로젝트
더 많은 고객 참여 고객 참여 감소

적응형 대 예측형 개발

애자일 소프트웨어 개발의 목표는 현실 세계의 변화에 ​​적응하는 것입니다. 그리고 이는 종종 고객 또는 사용자의 요구 사항의 결과입니다. 적응은 폭포수 모델의 예측 특성과 완전히 대조됩니다.

상황이 어떻게 될지 확신할 수 없는 시스템을 개발할 때 애자일 방법을 사용하는 것이 합리적입니다. 또는 산업에 끊임없는 변화와 진화가 있을 때. 인터넷이 큰 예입니다.

그렇지 않으면, 모든 것을 알고 있고 거의 변경되지 않거나 변경에 영향을 받지 않는 시스템이나 시장을 위해 개발 중인 경우입니다. 그러면 폭포수 철학의 예측적 성격이 도움이 될 수 있습니다.

소프트웨어 장인 정신

소프트웨어 장인 정신은 애자일 개발 원칙을 기반으로 하는 또 다른 철학이며 프로젝트에 관련된 소프트웨어 개발자의 기술을 강조하는 데 중점을 둡니다.

소프트웨어 장인 정신 운동에는 선언문이 있으며 다음과 같이 명시되어 있습니다.

 소프트웨어 장인 지망생으로서 우리는 그것을 연습하고 다른 사람들이 기술을 배울 수 있도록 도와줌으로써 전문 소프트웨어 개발의 기준을 높이고 있습니다. 이 작업을 통해 우리는 다음을 가치 있게 생각하게 되었습니다.
 
 · 작동하는 소프트웨어뿐만 아니라 잘 만들어진 소프트웨어
 · 변화에 대응할 뿐만 아니라 꾸준히 가치를 더하는 것
 · 개인 및 상호작용 뿐만 아니라 전문가 커뮤니티
 · 고객 협업뿐만 아니라 생산적인 파트너십
 
 즉, 왼쪽에 있는 항목을 쫓다가 오른쪽에 있는 항목이 없어서는 안 될 항목을 찾았습니다.
 
  2009, 아래 서명.
 이 진술은 어떤 형태로든 자유롭게 복사할 수 있지만 이 고지를 통해서만 그 전체를 복사할 수 있습니다.

결론

애자일 방법론과 소프트웨어 개발을 살펴보면서 많은 옵션이 있음을 알 수 있습니다.

팀마다 다릅니다. 그리고 서로 다른 팀이 변화하는 시대에 적응하기 위해 서로 다른 방법을 개발한 것처럼. 당신도 이미 확립된 프레임워크를 사용하거나 팀에 맞게 조정하여 적응해야 합니다.