ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 애자일과 워터폴
    프로그래밍 기초 공부 2023. 1. 19. 00:46

    애자일 (Agile)

    신속한 반복 작업을 통해 가동 가능한 소프트웨어를 개발하여 지속적으로 제공하기 위한 소프트웨어 개발 방식
    협업과 work flow를 보는 하나의 관점
    무엇을 어떻게 만들지에 관한 선택지를 주는 가치 체계
    유연하게 일을 진행하고, 변화에 잘 대응하기 위함

     

     

    주요 특성 4가지

    • 개인과 개인 간의 상호작용이 프로세스 및 툴보다 우선
    • 작동하는 소프트웨어가 포괄적인 문서보다 우선
    • 고객과의 협업이 계약 협상보다 우선
    • 변화에 대응하는 것이 계획을 따르는 것보다 우선

     

    애자일의 핵심 가치

    협력

    SW를 개발한 사람들 안에서의 협력을 말한다. 특히, 직무 역할을 넘어선 협력을 의미
    좋은경험이나 통찰을 공유함으로써 팀 전체적인 발전이 이루어지고
    혼자 생각하지 못한 기회나 방법을 생각해낼 수 있음
    안좋은 일을 나눔으로써 문제가 되는 것을 찾기 쉽고 협력자들로 인해 혼자 해결 못 하는 부분들을 해결 가능케함

     

    피드백

    내가 개발한 것이 어떤 결과를 나타내는지 확인하고
    그것을 다른 사람들이 사용하고 그러한 과정속에서 문제점을 찾거나 해결방안을 찾아가며 학습하는 것

     

     

    애자일의 역사

    90년대 중반 기존의 무겁고 규범적인 방법론으로 부터 탈피하여 가벼운 방법론을 지향하며 등장
    -> 경량 방법론 등으로 불리다 애자일 선언문을 만들게 되면서 Agile로 불리게 됨
    -> 이후 Agile은 소프트웨어 개발에 있어 한가지의 특징적인 개발 방식으로 의미를 가지기 시작함

     

     

    애자일 방법론의 특징

    • 피드백 -> 재설계 -> 피드백 -> 재설계의 방식
    • 계획세우기에 과도한 시간과 비용을 투자하지 않음
    • 권한을 고객과 가까운 조직과 구성원에게 상당부분 위임
    • 민첩하면서도 효과적인 의사결정이 이루어짐
    • 모두에게 높은수준으로 정보가 공유
    • 빠른속도나 저렴한 비용을 뜻하지 않음

     

     

    애자일 프레임워크

    • 애자일 사상에 기반한 개발 접근방식
    • 방법론, proecess로 규정하기도 함
    • ex) 스크럼(scrum), 칸반(kanban), XP(eXtream), LSD(Lean SW Development)...

     

     

     

    워터폴 (Water fall)

    소프트웨어를 개발하는데 있어서, 각 단계가 위에서 아래로 물이 떨어지는 것처럼 순차적으로 진행
    완료된 단계는 다시 되돌리기 어려운 특성을 가진 과거의 개발 방법론

     

     

    워터폴 구조

    • 크게 요구사항분석 -> 설계 -> 구현 -> 테스트 -> 유지보수 로 나뉨
    • 폭포수라는 말 그대로 폭포에서 물이 떨어지는 것처럼 위에서 아래 단계로 순차적으로 단계가 진행
    • 여러단계가 병렬적으로 진행되거나 역으로 진행되는 경우는 없음

     

     

    워터폴 방법론의 특징

    • 체계화된 문서를 바탕으로 안정적으로 진행 가능
    • 프로젝트를 진행하는데에 있어 리스크가 적음
    • 단계가 진행된 후 요구사항이나 설계 등이 변경된다면 큰 문제 발생 가능
    • 요구사항분석과 타당성 검토에 많은 시간 소요
    • 관리가 용이

     

    애자일과 워터폴

    장점

    애자일 1. 개발과정이 빠르고 유연
    2. 개발과정중 신속하게 제품 변경 가능
    3. 소규모의 여러팀이 여러과제를 각각 할당받아 처리 가능
     
    워터폴 1. 팀 규모에 상관없이 따르기 쉬움
    2. 개발주기가 정해져 있어 새 프로젝트를 안정적으로 시작 가능
    3. 필요한 예산과 자원이 초기에 확정되어 예상결과와 리스크 관리 가능
    4. 정해진 요구사항 때문에 목표를 자주 변경하지 않아도 됨

     

    단점

    애자일 1. 빠른 반복 작업에 숙련된 개발자가 필요
    2. 수많은 변경사항이 있을 수 있으므로 관리가 용이하지 않음
     
    워터폴 1. 개발속도가 느리며 유연성이 떨어짐
    2. 개발 요구사항이 초기에 정해지기 때문에 변경에 자유롭지 못함

     

    사용하는 집단

    애자일 1. 고품질의 결과물과 지속적 개선이 필요한 집단
    2. 프로세스를 간소화하여 변화에 신속대응 하고자 할 떄 (ex : IBM, AT&T, 마이크로소프트)
    3. 결과물에 대하여 빠른 피드백이 필요한 집단
     
    워터폴 1. 순차적인 프로젝트 타임라인 사전 확정 예산이 필요한 집단
    2. 개발상의 변경이나 리스크에 민간하지 않은 집단
    3. 요구사항이 간단하거나 타임라인이 긴 프로젝트를 진행하는 집단

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    '프로그래밍 기초 공부' 카테고리의 다른 글

    스크럼이란?  (0) 2023.01.25
    iBatis와 MyBatis  (0) 2023.01.24
    Race Conditions, Deadlocks, Process Starvation  (0) 2023.01.16
    그래프와 트리  (0) 2023.01.10
    slf4j란?  (0) 2023.01.10
Designed by Tistory.