(애자일 위주의) Agile vs Waterfall

Morphine Oak·2023년 1월 11일
0

Computer Science

목록 보기
1/2
post-thumbnail

애자일이 무엇인가?

  • 앞을 예측하며 개발하지 않고, 일정한 주기를 가지고 계속 검토해 나가며 필요할 때마다 요구사항을 더하고 수정하여 커다랗게 살을 붙이면서 개발해 프로세스 모델 방식이다.

애자일의 장점과 단점

장점

  • 2~4주간의 짧은 사이클로 고객의 요구사항을 최대한 반영한 프로그램를 만들기 때문에 워터폴 방식보다는 고객의 참여 범위가 비교적 넓고 고객 가치를 효과적으로 전달할 수 있다는 큰 장점이 있음.

  • 급변하는 시장에 변화에 민첩하게 대응하기 비교적 수월함

  • 제품 개발 과정에서 각기 다른 직무를 수행하는 팀원들의 기민한 협력으로 예상치 못했던 시너지 효과가 발생할 수 있음

단점

  • 고객 가치가 급변하는 불확실성이 높은 시장에서는 적합하겠지만 반대로 변화가 적고 유동성이 낮은 시장에서는 오히려 애자일 방식이 효율성이 떨어질 수 있음

  • 고객이 가진 문제와 해결책을 분명하게 이해하고 결과에 대한 확신이 있다면 (이미 입증된 결과라면) 워터폴 방식이 적합함

  • 애자일 적용으로 인해 내부 협력이 잘 이루어지지 않아 부작용이 생길 수 있고, '무한 수정'으로 인해 너무 개발자 중심으로 프로젝트가 흘러갈 수 있음

스프린트란?

  • 스프린트는 팀이 일정량의 작업을 완료하는 시간이 정해진 짧은 기간입니다.

스크럼이란?

  • 스크럼은 팀이 함께 작업할 수 있도록 지원하는 프레임워크입니다.

  • 스크럼은 팀이 경험을 통해 배우고, 문제를 해결하면서 스스로 구성하고, 얻은 것과 잃은 것을 되돌아보며 지속적으로 개선하도록 유도합니다.

스크럼 이벤트

1. 백로그 구성

  • 주요 업무는 제품 비전을 향해 제품을 유도하고 시장과 고객에 대한 최신 정보를 파악하는 것입니다.

  • 그렇게 해서 제품 소유자는 사용자 및 개발 팀의 피드백을 사용하여 이 목록을 유지하여 이 목록을 정돈된 상태로 유지하고 언제든지 작업할 준비가 되도록 돕습니다.

2. 스프린트 계획

  • 이번 스프린트동안 수행할 작업(범위)을 개발 팀이 해당 회의에서 계획합니다.

  • 이 회의는 스크럼 마스터가 주도하며 팀이 스프린트 목표를 결정하는 곳입니다.

  • 그런 다음 특정 사용자 스토리가 제품 백로그에서 스프린트에 추가됩니다.

  • 이러한 스토리는 항상 목표와 일치하며 스프린트 중에 구현할 수 있도록 스크럼 팀에서도 동의합니다.

3. 스프린트

  • 스프린트는 스크럼 팀이 함께 작업하여 증분을 완료하는 실제 기간입니다.

  • 스프린트에서 일반적인 기간은 2주지만, 어떤 팀은 범위를 지정하는 데 1주일, 또는 중요한 증분을 제공하는 데 1달이 더 쉽다고 느낄 수 있습니다.

  • 이 기간 동안 필요에 따라 제품 소유자와 개발 팀 간에 범위를 다시 논의할 수 있습니다.

  • 이것이 스크럼의 경험적 성격을 나타내는 가장 중요한 부분입니다.

  • 계획부터 회고에 이르는 모든 이벤트는 스프린트 중에 발생합니다.

  • 스프린트에 대한 특정한 시간 간격이 수립되면 개발 기간 동안 일관성을 유지해야 합니다.

  • 이를 통해 팀은 과거의 경험으로부터 배우고 그 통찰력을 이후의 스프린트에 적용할 수 있습니다.

3. 일일 스크럼 또는 스탠드업

  • 같은 시간(보통 아침)에 진행하는 아주 짧은 회의이며 일을 간단하게 유지하는 데 도움을 줍니다.

  • 대부분 15분정도 소요됩니다.

  • 일일 스크럼의 목표는 모든 팀원이 같은 정보를 공유하고, 스프린트 목표를 이해하고, 다음 24시간 동안의 계획을 세우는 것입니다.

  • 스탠드업은 스프린트 목표를 충족하는 데 우려 사항 또는 방해 요소에 대해 알리는 시간입니다.

Agile Manifesto (애자일 선언서)

1. 가치 있는 소프트웨어를 조기에 지속적으로 제공하여 고객을 만족시키는 것

  • 이 개념을 적용하면 프로세스의 민첩성을 높이고 변화에 대응할 수 있음

  • 고객은 '지불하는 가치'를 더 자주 얻을 수 있기 때문에 만족함

  • 초기 피드백을 제공하므로 프로세스 후반에 중요한 변경을 수행할 가능성을 줄임

2. 프로젝트 후반에도 요구 사항 변경 가능함

  • 고객의 경쟁 우위를 위해 변화를 활용함

  • 불확실성을 포용하고 늦게 변경하더라도 최종 고객에게 많은 가치를 제공할 수 있음을 인정하는 것을 목표로 함

  • Agile의 반복 프로세스 특성으로 인해 팀은 적시에 이러한 변경 사항에 대응하는 데 문제가 없어야 합니다.

3. 빈번하게 가치 제공

  • 몇 주에서 몇 달까지의 주기로 작동하는 소프트웨어를 자주 제공함

4. silo를 붕괴해라

  • silo : 다른 사람과 격리되어 운영되는 시스템이나 프로세스
  • 목표는 가치를 창출하는 사람들과 가치를 계획하거나 판매하는 사람들 사이의 동기화를 만드는 것임

  • 이러한 방식으로 내부 협업을 원활하게 수행하고 프로세스 성능을 향상시킬 수 있음

5. 동기가 부여된 개인을 중심으로 프로젝트 구축하라

  • 세세한 부분까지 관리하는 것을 줄이고 의욕적인 팀 구성원에게 권한을 부여하여 신속하게 프로젝트를 수행하는 것에 있음

  • 팀을 신뢰하지 않고 회사의 가장 작은 결정조차 중앙 집중화하면 팀 참여를 방해할 뿐임

6. 가장 효과적인 의사 소통 방법은 대면이다

  • 직접 대화하면 질문을 하고 답변을 받는 데 걸리는 시간을 줄일 수 있음

7. 작동하는 소프트웨어는 진행의 주요 척도이다.

  • 얼마나 오래 시간을 썻는지, 코드 줄수가 얼마나 긴지는 중요하지 않다

  • 고객이 기대하는 방향으로 코드가 구현이 안되면 그것이 문제다.

8. 지속 가능한 작업 속도 유지

  • 민첩한 프로세스가 지속 가능한 개발을 촉진합니다. 후원자, 개발자 및 사용자는 일정한 속도를 무기한으로 유지할 수 있어야 합니다

9. 지속적인 우수성으로 민첩성 향상

  • 기술적 우수성과 좋은 디자인에 대한 지속적인 관심은 민첩성을 향상시킵니다.

10. 심플함은 필수

  • 고객은 개발자가 투자한 노력에 대해 비용을 지불하지 않는다.

  • 그들은 그들이 가지고 있는 특정한 문제에 대한 해결책에 비용을 지불한다.

  • Agile을 구현할 때 이 점을 명심하고 단지 하기 위한 작업을 피하도록 하여라.

11. 자기 조직화 팀이 가장 큰 가치를 창출합니다

  • 최고의 아키텍처, 요구 사항 및 디자인은 자기 조직화 팀에서 나온다

12. 작업 방식을 정기적으로 반영하고 조정하여 효율성 향상

  • 지속적으로 계획한 대로 일이 진행되지 않으면 무엇이 잘못되었는지 논의하고 조정하도록 해라

워터폴이 무엇인가?

  • 프로젝트의 단계 구분이 뚜렷하게 나누어진 순차적 프로젝트 관리 방법론입니다.

워터폴의 장점과 단점

장점

  • 프로젝트 관리가 수월하다. 초기부터 출시에 이르기까지 각 단계 별로 만족시켜야 할 최소 요구 사항이 있고 요구 사항에 따라 문서화가 잘 돼있기 때문이다.

  • 각 단계별 업무 분담의 효율성을 최대한 끌어올려 초기 설정한 요구 조건을 만족시키는 것에 집중하기 때문에 손에 익은 작업일수록 생산 속도를 가속화할 수 있다는 장점이 있음

단점

  • 초기 요구 사항이 명확하기 때문에 프로젝트가 끝나고 제품이 완성되었을 때 결과물이 고객에 기대에 미치지 못할 수 있다는 한계점이 있다.

  • 고객이 참여할 수 있는 단계는 시작 단계와 마지막 단계(출시 시점)이기 요즘처럼 고객의 요구사항이 급변하는 시대에는 즉흥적으로 대응이 어려움

  • 만약 뒤늦게 제품을 다시 수정해야 하는 상황이 생긴다면 수정하고 시험하기를 다시 번복해야 하기 때문에 많은 비용과 많은 시간을 지불해야함.

[참조] https://blog.codegiant.io/agile-vs-waterfall-key-differences-and-definition-which-model-is-better-d3987dfabab0

[참조] https://kanbanize.com/agile/project-management/principles

profile
hello world

0개의 댓글