📗 Docs

[소프트웨어공학] 소프트웨어 개발 방법-agile 방법론

date
Jul 14, 2023
slug
sweg-agile
author
status
Public
tags
Tech
summary
type
Post
thumbnail
updatedAt
Jul 14, 2023 02:40 PM
category
📗 Docs

agile 방법론

Business변화가 빠르고, 요구 변화가 빠른 요즘, 안정적인 소프트웨어 요구 사항 생성이 불가능해졌다. 재작업 없이 요구사항에 빠르게 반응하는 방법으로 집중하기 시작했다. 다음은 그 특징이다.
  • agile 방법론의 특징
1. 고객이 긴밀이 협조한다.
2. 기능 단위로 개발한다.
3. 프로세스를 강제하지 않는다. 개인에 최적화한다.
4. 요구사항을 예측한다.
5. 단순성을 강조한다.
→ 팀이 작고, 요소들이 서로 밀접한 기능이라면 agile이 좋다.
output도 개발 중간중간에 일어나게 된다.
⇒ 따라서, Plan driven과 거의 반대된다.
 

1. XP (Extreme Programming)

agile 방법론 중 하나이다. 반복적인 개발을 위해 extreme 한 방법을 사용한다.
  • XP 특징
1. 개발해야 하는 story 들을 task로 나눈다.
2. 기능 개발을 작게작게 쪼갠다.
3. 설계에 많은 투자를 하지 않는다.
4. 새로운 기능 구현 전, 기능에 대한 test를 먼저 한다.
5. 지속적인 code refactoring을 한다. simple&sexy
6. 개발자가 짝을 이루어 일한다.
7. 모든 개발자가 모든 코드에 책임을 진다.
8. 모든 unit test 통과해야 한다.
9. 지속 가능한 속도를 제공한다.(야근 금지욧!)
10. 고객과 team이 full time으로 관여한다.
(약간 estp???)
 

2. SCRUM

agile 방법 중 하나다. 기능 개발을 반복적으로 하고, 작은 단위의 업무를 반복 진행한다. 하루 한번이나 몇 일에 한번 정기 미팅이 있고, 개발 중 문제를 즉시 발견하고 해결한다.
업무를 큰 그룹으로 나눠서 진행하고, 자기가 스스로 일정을 조절해야 한다.
 

3. Plan-driven vs. Agile

Plan-driven
  • 구체적인 설계를 갖추는게 필요할 때
  • 개발될 시스템의 규모가 클 때
  • 구현 전에 분석이 많이 필요할 때
  • 오래 사용하는, Long-lifetime system일 때
    • 나중에도 Plan을 보고 유지, 보수하기 위해
  • 개발 팀이 잘 조직화되었을 때
  • 시스템이 외부 regulation에 의해 좌우될 때
    • 문서를 통한 커뮤니케이션을 위해
Agile
  • 증가분 구분이 현실적으로 가능할 때
    • 굳이 Plan X
  • 시스템 규모가 작고, 작은 개발팀에 의해 이루어 질 때
    • 굳이 Plan X
  • 시스템 개발 과정에서 설계가 진화되는 track을 보여주는 도구가 존재할 때
  • 설계자나 프로그래머의 역량이 높을 때
    • 수정 가능한 실력이 되기 때문에!