hmk run dev

애자일(Agile) 이란? 본문

product

애자일(Agile) 이란?

hmk run dev 2024. 4. 7. 20:57

Agile

애자일은 사전적 의미론 '날렵한', '민첩한' 을 뜻한다.

 

소프트웨어 개발 방법론의 하나인 애자일 프로세스는

처음부터 끝까지 계획을 수립하고 개발하는 폭포수(waterfall) 방법론과는 달리

개발과 함께 즉시 피드백을 받아 유동적으로 개발하는 사상이다.

 

-> 방법론이라고 소개한곳도 있으나, 애자일 자체가 의미하는 것은

사상 혹은 철학일뿐이고 이러한 사상을 계승하여 나온 방법론이 칸반, 스크럼 같은 방법론이라고 한다.

 

 

- 고객 만족을 최우선으로 하는 개발(고객의 지속적인 피드백을 통해 개선)

- 짧은주기의 개발단위를 반복(ex. sprint)하여 하나의 큰 프로젝트를 나가는 방식

- 핵심은 유연성과 의사소통 그리고 동료와의 협업


애자일을 계승한 방법론 스크럼(scrum)

애자일 방법론에는 스크럼, 칸반, XP, LSD 등이 있지만 필자는 scrum만 경험해봤고,

경험에 기반한 글을 써보려고합니다.

 

 

스크럼은 프로젝트 관리의 접근 방식이며,
스프린트(sprint)라고 하는 단기 작업 븡록을 통해 프로젝트를 진행하며

비즈니스 요구를 충족시키는데 초점을 맞추기 위해 작은 목표 짧은 주기로 제품을 지속적으로 개발합니다.

스프린트 기간은 보통 1~4주 정도로 진행합니다. (필자는 보통 1~2주의 스프린트를 경험)

 


주요특징

- 솔루션에 포함할 기능/개선점에 대한 우선순위 부여

 

필자의 경우는 P1 > P5 등의 우선순위를 매겨가며 우선순위를 부여했다.

 

 

 

- 개발 주기는 1~4주 정도로 하고 개발 주기마다 실제 동작할 수 있는 결과를 제공

 

너무 짧으면(분석/설계/개발/테스트) 할 수 있는 시간이 부족하고,

너무 길면 느슨해지고 피드백에 대한 주기가 길어지므로 유동적으로 조절이 필요함

 

주기적인 스프린트 회고 시 실제로 동작하는 화면을 통해 개선점이나 문제 혹은 동료들의 다양한 피드백을 받아 볼 수도 있다.

 

 


 

 

- 개발 주기마다 적용할 기능이나 개선에 대한 목록을 제공

 

해당 주기의 Goal을 작성하지 않으면 목적을 잃은 기능이 될 수있음,

해당 작업의 소요 시간과 중요도와 예상 소요 기간 및 스프린트 종료 시 실제 작업에 걸린 소요 기간을 비교해

예상과 실제 작업에걸린 소요시간을 줄여가며 일정을 더 효율적으로 짤 수도 있음

 


 

- 매일 15분 정도의 Scrum 회의를 가져라

 

사실 해당 부분은 잘 지켜지지 않았다.

스프린트 회고가 아닌 소통은 필요시 유동적으로 소통했으며 주로 작업에 대한 진행도 예외 상황으로 인한 작업소요 리소스 증가 및

새로운 피드백 등을 주로 자유롭게 이야기했다.

 

회의는 너무 정형화된 딱딱한 회의가 아닌 자유로운 분위기로 진행했다.

소소하거나 사소한 이야기를 하다보면 근본적인 해결법이 나오는 경우도 종종있었다.


 

- 항상 팀을 우선으로 생각하라. 

 

개인적으로 유저의 피드백 다음로 중요한 것은 팀이라고 생각한다.

 

자신의 task보다 주변 이슈가 더 급하다면 유동적으로 지원하거나 도와줘야한다.

(마치 배에 구멍이 생기면 구멍을 막는 것이 1순위다.)

 

 

- 원활한 의사소통을 위하여, 구분 없는 열린 공간과 마음을 유지하라

 


Scrum의 추구 가치

  • 용기 : 옳은 일을 할 수 있도록 팀원간 갈등과 도전을 위한 용기를 가져라!
    (설명 : 해당 기능이 이해가 안되거나 문제가 있다면 말할 수 있어야 하고, 더 일을 잘 할 수 있는 환경을 요구하고, 자신의 신념을 설득 시켜야 한다. 또한 도전적으로 시도해보는 용기와 완료 할 수 없는 업무량이라고 모두 말 할 수 있어야 한다.)

  • 집중 : 할 일을 하라. 모든 노력과 기술은 성공을 위해 집중하고, 그 외는 걱정(신경쓰지) 마라!
    (설명 : 한번에 하나의 일부터 마무리하고, 업무에 집중 할 수 있도록 불필요한 회의 참석은 지양하며, 루틴한 반복 작업은 제거 하거나 자동화해야 한다.)

  • 약속(헌신/책임) : 팀의 목표 달성을 위해 개개인이 공약한 목표 달성을 위해 팀에 헌신하며, 이를 달성 위해 필요한 모든 권한을 부여하라!
    (설명 : 개인보다는 팀성과 달성이 우선이고, Value 있는 SW를 개발 할 수 있게 최대한 지원과 권한이 필요하다.)

  • 존중 : 경력과 경험이 사람을 만든다. 팀원들을 존중하라!
    (설명 : 개개인별로 장단점이 있고, 그 사람이 그렇게 할 수 밖에 없는 이유가 있을것이다.)

  • 투명성/개방성 : 프로젝트에 대한 모든 내용을 투명하게 공개하라!
    (설명 : 제품백로그, 스크럼 회의, 스프린트 리뷰를 통해 공유되며, 자신에게 불리해도 숨기지 않고 도움을 요청한다.)
 

 

 


Reference

 

https://medium.com/dtevangelist/scrum-dfc6523a3604

Comments