기존의 방법론들의 오버헤드가 발생, 오버헤드가 발생한다는 것은 그만큼의 기간, 비용, 인력, 위험성들이 높았다

이런 과거 폭포수, 4세대, 나선형, 원형 같은 무거운 소프트웨어 개발 방법론이 아닌
민첩성과 실용성이 강조된 가벼운 경량급 개발 방법론 == Agile Methodology

애자일 방법론

  • 필요한 요구를 그때그때 더하고 수정하는 코드 중심 점진적 개발 방법
  • 단순성, 의사소통, 피드백, 용기 등의 원칙에 기반
  • 고객에게 최고의 가치를 가장 빨리 전달하는 경량 방법론
  • 협업과 변화 등 빠른 대응에 가치 : 소규모 목표 달성

협업과 변화에 빨리 대응하려면 목표를 간소화 해야한다

애자일 소프트웨어 개발 선언문(2001)


애자일 방법론(개념 용어)

  • 기술적 부채의 청산
    - 기존의 결함들로 인해 새로운 기능을 개발하거나 확장하는데 어려움이 발생하는 것,
    부채를 해결하기 어려워지고 수리 비용 증가

    - 해결 방법
    처음부터 올바르게 만들 수 있는 탁월한 기술력과 도덕 정신이 뒷받침되어야 한다

  • 리팩토링 기법의 적용
    - 소프트웨어를 보다 쉽게 이해할 수 있고, 적은 비용으로 수정할 수 있도록 기존 코드의 설계를 개선하는 기술
    - 잘못된 설계에서 나타나는 기술적 부채를 감소시켜 덜 짜증나게 해준다

 

리팩토링 : 기존의 코드를 쓰되, 새로운 코드가 잘 연동될 수 있도록 하자

 

리팩토링 효과

  • 코드를 쉽게 이해, 다른 프로그래머가 코드 변경을 쉽게 할 수 있다
  • 애자일 방법론은 리팩토링을 코드 구현 작업의 일부분으로 취급한다
  • 기본 코드에 대한 높은 이해도 -> 버그 수정, 새로운 기능 추가 -> 빠른 작업 속도

리팩토링 = 기본 코드의 디자인을 개선하는 방법

 

객체지향 기법의 적용

  • 점진적인 개발 용이
  • 시스템을 수평적인 모습으로 설계 : 재사용성 확장
  • 기존 메소드나 코드에 영향 최소화 + 새로운 메소드나 코드 추가
  • 적응성과 재사용성을 극대화

 

애자일 기법의 장점

  • 상대적으로 낮은 비용과 위험도
  • 프로토타입의 중요성 부각 : 짧은 릴리즈 추가
  • (개발하는 시간대가 단축되기 때문에 고객에게 가지는 릴리즈가 짧아진다 = 업데이트가 잦다)
  • 마음가짐 + 사람중심 + 참여와 소통 중시

단점

  • 낯선 프로세스
  • 프로젝트 팀원에게 요구되는 역량
  • 이끌어 내기 힘든 고객의 참여
 
 

 

'학부과정 > 소프트웨어공학' 카테고리의 다른 글

익스트림 프로그래밍  (0) 2023.01.11
4세대 기법  (0) 2022.10.10
나선형 패러다임(sprial)  (0) 2022.10.09
원형 패러다임  (0) 2022.10.06
폭포수 모델  (0) 2022.09.06

+ Recent posts