삽질의 현장/- 에자일

애자일_#001.5_Agile 방법론 쪼금만 더 겉핥기!

shovelman 2015. 6. 17. 14:46

환영합니다 여러분 ~!

대학생이라면 고생하고 있을 시즌인 지금! 

휴학생인 삽잡이는 여유를 즐기고 있답니다.... (곧 정신 없을 건 비밀)


사람이 여유로우면 쳐지나봐요... 

그리 열심히 포스팅하겠다는 마음이! #001 에서 멈췄었다니!


우선 한대 맞아!


삽이 삽에게 맞는 아이러니한 상황...

정신잡고 다시 시작합니다. Go! Go! Go!



애자일 방법론의 종류에 알아보고자 했지만 그전에 조금 더 살펴보고자

#001.5 라는 괴상한 챕터가 생겼습니다...


애자일 선언문에는 '애자일 소프트웨어의 12가지 원칙'이라는 

좀 더 구체적인 실천원칙에 대해서 말하고 있습니다.

살펴보도록 하시죠.




 우리는 다음과 같은 원칙들을 따른다.


* 우리의 최고 우선 순위는 가치 있는 소프트웨어를 일찍 그리고 지속적으로 전달함으로써 고객을 만족시키는 것이다.


* 비록 개발 후반부일지라도 요구사항 변경을 환영하라. 애자일 프로세스들은 변화를 활용해 고객의 경쟁력에 도움이 되게 한다.


* 작동하는 소프트웨어를 자주 전달하라. 약 2주에서 2개월의 정도의 간격으로 전달하되, 간격이 짧을수록 좋다.


* 비즈니스 영역 사람들과 개발자들은 프로젝트 전체에 걸쳐 매일 함께 일해야 한다.


* 동기가 갖추어져 있는 개인들로 프로젝트를 구성하라. 그들에게 그들이 필요로 하는 환경과 지원을 제공하라. 그리고 그들이 일을 끝낼 수 있도록 신뢰하라.


* 어떤 다른 개발팀을 상대로, 혹은 개발팀 내에서, (서로 간의) 정보를 전달하는 가장 효율적이고 효과적인 방법은 얼굴을 보고 하는 대화이다.


* 작동하는 소프트웨어가 진척 측정의 주된 척도이다.


* 애자일 프로세스들은 지속 가능한 개발을 장려한다. 스폰서, 개발자, 그리고 사용자들은 일정한 속도를 계속 유지할 수 있어야 한다.


* 기술적 탁월함과 좋은 설계에 대한 지속적 관심이 기민함(눈치가 빠르고 동작이 날쌔다) 을 향상시킨다.


* 간결함-하지 않아도 되는 일의 양을 최대화하는 기술-은 필수적이다.


* 최상의 아키텍쳐, 요구사항, 그리고 설계는 자기조직화(self-organizing)되어 있는 팀에서 나온다.


* 정기적으로, 팀 차원에서 어떻게 하면 더 효과적일 수 있을지에 대해 되돌아보며 자신들의 행동을 이에 따르도록 조율하고 조정한다.




느낌상으로는 

정적임 보다는 동적임을, 개인 플레이 보다는 팀 플레이를, 

딱딱함 보다는 유연함을, 복잡함보다는 깔끔함이라는 분위기가 느껴지네요.


애자일 방법론은 이전부터 사용되어지던 

폭포수 방법론을 대체할 수 있는 떠오르는 방법론이라는 관심을 가지고 있었습니다.

(물론 이 글을 포스팅 할 당시가 아닌 그 이전에요 ^^....)

심지어 특정 기업인들은 '폭포수 개발을 버리고 애자일로 전환하라'는 강조가지 한다는데요

우선 폭포수 방법론은 뭘까요?


폭포수 방법론은,

위에서 떨어지는 방식으로 (폭포가 떨어지는 장면을 떠올려 보도록 하십시다) 

개발, 테스트, 배포, 운영을 단계적으로 시행하는 방법론입니다. 

즉, 단계를 clear 할때마다 다음 단계로 떨어진다는 느낌말입니다. 


자 그럼, 다시 애자일로 들어가보도록 하겠습니다.

왜 사람들은 애자일 애자일 하는 것일까요?

요즘 시대에는 사용자의 요구가 빠르게 변화되는 시기로 '자주 자주', '빨리 빨리'의 시대입니다.

즉, 빠른 변화에 애자일 방법론이 어울린다고 생각을 한다고 하는 거죠. 


한번 둘의 차이를 살펴보도록 하겠습니다. 


1. 계획 중심 vs 고객 중심

폭포수 방법론은 프로젝트를 시작하기전에 전체 일정을 잡고 진행을 하며, 

이와 반대로 애자일 방법론 같은 경우 현재 시점에서 고객중심에 맞춰 프로젝트가 진행이 됩니다. 

그렇기에, 고객이 중요하게 생각하는 기능을 먼저 개발하는 것을 원칙으로 한다고 합니다.


느낌만 보면 폭포수 방법론은 고지식하고 보수적인... 애자일 방법론은 자유로워보이는 느낌을 받습니다...  

 

2. 빅뱅 릴리즈 vs 작은 릴리즈

빅뱅... 가수가 아닙니다... 죄송합니다!!!

폭포수 방법론은 프로젝트가 종료되는 시점에 한번에 펑(빅뱅!!) 터트린다면,

애자일 방법론은 조금 조금씩 릴리즈한다고 합니다. 

쉽게 생각해보자면, 폭포수 방법론 같은 경우 버전 1을 프로젝트가 종료되는 시점에 출시한다면,

애자일 방법론 같은 경우 버전 1.0.0.1, 1.0.0.2 이와 같이 조금조금씩 출시한다는 것이죠...

고객의 변동되는 요구에 유연하게 대처할 수 있을 것 같습니다.


아! 그리고 애자일 방법론은 반복점진적(iterative and incremental) 개발을 기본 스타일로 가진다고 합니다...

반복 점진... 그래서 작은 릴리즈!?


3. 산출물 중심 vs 동작하는 SW 중심

폭포수 방법론은 단계별로 완료가 됬는지 check 함으로써 진행 여부를 파악합니다.

애자일 방법론은 단계별 파악보다는 현재 소프트웨어가 제대로 동작하는지, 고객의 요구사항에 맞도록 개발되고 있는지에 중점을 둡니다. 



음... 솔직히 뭐 저도 공부하면서 작성하고 있지만,

폭포수 나쁜놈 애자일 좋은놈 같네요... ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

아무튼...


현 시대에 어울리는 개발 방법론은 애자일 방법론인가봐요...

빠른 제품 출시를 원하면서, 갈대처럼 흔들리는 우리들의 심리가 반영되서일까요...

애자일 방법론은 폭포수 개발 방법론에 대한 반성에 의해 생겨났다는 자료도 확인했었습니다.


결과적으로 자료들 기사들에 의해 보자면 애자일이 짱이에요...

물론, 본인은 회사 프로세스를 잠시 경험해볼 기회가 있었는데,

실제로 애자일 방법론들중 몇몇이 녹아들어있는 프로세스를 경험해보며

애자일에 대한 긍정적인... 그리고 위대함을 느꼈습니다.


항상 애자일만이 옳지는 않겠죠... 

만에 하나 폭포수 개발 방법론이 더 어울리는 상황이 있을 수도 있구요...

아직 휴학생인 풋내기로써 

'연애를 글로 배웠어요'

와 다를바 없는 처지에 포스팅을 하고 있지만, 잠깐 그리고 조금 경험해본 애자일 방법론이 

녹아들어 있는 프로세스는 참 매력적이었습니다.


주절주절 잡담이 많앗군요...

다음시간에는 정말 그 방법론들에 대해서 살펴보도록 하겠습니다.


이상 삽잡이었습니다!



[참고자료]

#애자일 초심자를 위한 애자일 SW개발 101 #소프트웨어공학센터


[검색 키워드]

#Agile #Agile선언문 #소프트웨어공학 #폭포수이론




 


'삽질의 현장 > - 에자일' 카테고리의 다른 글

애자일_#002_ Scrum? Scramble?  (0) 2015.06.18
애자일_#001_Agile 방법론 겉핥기!  (0) 2015.06.09