Post

[Agile] 애자일 프로젝트란? 기본 개념과 3원칙!

✏️ Edit
[Agile] 애자일 프로젝트란? 기본 개념과 3원칙!

Agile 개요

Agile은 소프트웨어 개발 방법론 중 하나로, 개발자가 분석, 설계, 개발, 테스트의 모든 프로세스에서 주도적으로 결정할 수 있도록 권한이 부여되는 것을 강조합니다.

Agile 방식에서는 개발자들이 자율성을 가지고 업무를 진행하며, 이는 성공적인 프로젝트 수행에 필수적입니다.

요구사항 정의와 고객 피드백

Agile 환경에서는 요구사항을 초기 단계에서 명확하게 정의하기 어려운 경우가 많습니다.

이러한 경우, 고객의 의도를 파악하는 것이 우선시됩니다.

이를 위해 실제 개발을 진행하며, 고객으로부터 반복적인 피드백을 받아 요구사항을 점차 구체화해 나가는 과정을 거칩니다.

확정된 프로젝트의 목표와 일정과 비용(m/m) 하에서

위험도(애매하고 복잡한 것)가치에 따라,

반복 점진적으로 EXPERIMENT(do,act)-INSPECT(check)-LEARN(act)-ADAPT(plan, act)과정을 진행한다. (PDCA)

Kent Beck’s의 애자일 3원칙

  1. 먼저 원하는 기능을 만든다

    • 편한대로 코딩한다.

      “기능 수행이 안되면 사업은 망한다!”

  2. 그리고 제대로 만든다 - 리팩토링, 표준(아키텍쳐) 준수

    • 코드를 이해할 수 있고,

    • 변경 요구에 따라 진화하거나, (유연성이 좋도록)

    • 더 잘 이해할 수 있도록 코드를 고친다.

      제대로 되는지 확인하고, 더 좋은 해결책을 찾는다

  3. 그리고 빠르게 만든다 - 리팩토링, 완성도 제고

    • 요구되는 성능 확보를 위해 코드를 고친다.

Agile 프로세스 산출물

  1. User Story (사용자 스토리): 사용자 스토리는 개발이 필요한 기능에 대한 요구사항을 간단하고 명확하게 서술한 것입니다. 각 스토리는 사용자의 관점에서 작성되며, 해당 기능이 구현될 때 사용자에게 어떤 가치를 제공하는지를 나타냅니다.
  2. 제품 백로그 (Product Backlog): 제품 백로그는 프로젝트에서 구현해야 할 모든 항목의 목록입니다. 이 목록에는 기능 요구사항뿐만 아니라 기술적 검토 항목, 버그, 비기능적 요구사항 등이 포함됩니다. 제품 백로그는 우선순위에 따라 관리되며, 가장 중요한 항목부터 차례대로 개발됩니다.
  3. 스프린트 백로그 (Sprint Backlog): 스프린트 백로그는 특정 반복 주기(스프린트, 일반적으로 2~4주 단위) 동안 수행할 작업 목록입니다. 스프린트 백로그는 제품 백로그에서 선택된 항목들로 구성되며, 팀은 해당 기간 내에 이 목록의 모든 항목을 완료하는 것을 목표로 합니다.

  4. Agile 프로젝트 진행 단계

    agile 프로젝트 진행 단계

    • 요구사항과 아케텍쳐 단계에서는 실험위주로 진행한다.
    • 구축 단계에서부터는 요구사항과 아키텍쳐를 다소 수정해가며, 개발과 테스트를 동시에 반복적으로 진행한다.
      • 이때, 구축 초기단계에서는 실험비중이 높으나 후반으로 갈수록 완성된 개발 위주로 가는 것이 이상적이다.
    • 테스트 단계에서는 테스트만 진행되는 것이 가장 이상적이다.

제품지식대비-계획주도-요구사항

지연비용-결정비용-곡선

그렇다면 결정은?

결정을 내릴 때는 지연 비용이 결정 비용을 초과하는 시점 바로 전, 마지막 순간까지 결정을 미루는 것이 이상적입니다.

이는 재작업으로 인한 변경 비용을 최소화하는 데 기여합니다.