2001년 2월, 당시 방대한 문서 작업을 기반으로 하는 소프트웨어 개발 방법론에 어떤 대안이 있을지 토론하기 위한 모임에서 애자일 매니페스토가 창안되었고 애자일 연합이 만들어졌다.
애자일이란 용어를 자주 접하는데, 많은 기업에서 애자일을 쓴다는 말이 있고 하니, 지금까지 경영 & 경제학에서 생긴 개념으로 알았다.
개발 방법론에서 나온 용어라니 기분이 생소하다.
애자일
애자일은 어떤 단일 개념이 아니다, 애자일은 서로 다른 여러 맥락에 따른 방법론과 테크닉의 조합이다.
애자일은 절차적인 부분과 기술적인 부분의 두 종류로 나눠진다.
절차적인 관점에서의 애자일
팀의 조직이 어떻게 구성되고 협업해야 하는지에 대한 것들을 규정한다.
- 회의 방식
- 구성원 각각의 역할
- 요구사항 파악 방법
- 작업 진척 속도 파악 방법
- 점진적/반복적으로 일할 때 취하는 방식
- 진행 상황을 개발팀 밖의 관계자에게 전달하는 방식
- 비즈니스 피드백 방식
이런 절차적인 방법은 비즈니스에 가치가 있는 것에 집중한다. 즉 올바른 목표를 향해 진행 중인지 확인한다.
기술적인 관점에서의 애자일
개발, 확장, 유지보수, 제품 납품, 서비스 배포 등 겪는 어려움들에 대해 특정한 기술적 관례나 기술 자체를 매우 구체적으로 가이드한다.
- 테스트 주도 개발(TDD)
- 페어 프로그래밍
- 지속적인 통합
- 단순한 디자인 원칙
이런 기술적 원칙들은 소프트웨어의 품질에 집중하여 올바르게 만들어 가는지, 즉 목표한 것을 올바르게 실행하고 있는지에 안심할 수 있게 만든다.
두 가지의 관점에서 바라보면 개발자는 더 이상 짜여진 일정대로만 개발하는 단순 코더가 아니다. 여러 방면에서 비즈니스를 이해하고 소통할 줄 알아야한다.
애자일 매니페스토
애자일이 탄생할 때 발표된 매니페스토와 열 두가지의 원칙이 있다.
절차와 도구보다는 개성과 화합을
방대한 문서 작업보다는 동작하는 소프트웨어를
계약 조건에 대한 협상보다는 고객과의 협력을
계획을 따르는 것을 넘어서서 변화에 대처하는 것을
더 가치있게 여긴다.
1. 가치있는 소프트웨어를 일찍, 지속적으로 전달하여 고객을 만족시키는 것을 최우선으로 한다.
2. 개발의 막바지 단계이더라도 고객의 요구사항 변경을 환영한다. 애자일 프로세스들은 변화를 활용하여 고객의 경쟁력을 높이는데 기여한다.
3. 동작하는 소프트웨어를 몇 주에서 몇 개월 단위로 자주 전달한다. 가능한 한 전달주기를 짧게한다.
4. 비즈니스 담당자들은 프로젝트 기간 내내 매일 개발자와 함께 일한다.
5. 프로젝트는 동기가 부여된 개인들로 구성한다. 그들이 필요로 하는 환경과 지원을 제공하고 프로젝트가 완료될 때까지 믿고 맡긴다.
6. 개발팀 내에서 정보를 전달하는 가장 효율적이고 효과적인 방법은 얼굴을 마주보고 대화하는 것이다.
7. 프로젝트의 진척도를 가늠하는 가장 기본 요소는 동작하는 소프트웨어다.
8. 애자일 프로세스들은 지속 가능한 개발을 이끈다. 투자자, 개발자, 사용자들은 일정한 개발속도를 계속 수용할 수 있어야 한다.
9. 기술적인 탁월함과 좋은 설계에 대한 지속적인 관심은 기민함을 높인다.
10. 단순함, 즉 하지 않아도 될 일은 최대한 하지 않아야 한다.
11. 최선의 아키텍처, 요구사항, 설계는 스스로 조직화되는 팀에서 나온다.
12. 개발팀은 정기적으로 일을 어떻게 하는 것이 더 효과적인지 되돌아보고 그에 맞추어 일하는 방식을 조율하고 바로잡는다.
애자일 매니페스토와 원칙들 내용을 보면 개발자 스스로를 단순 코더가 아닌 프로페셔널적인 존재로 인식하게 만들어준다.
단순히 시키는 일만 하는게 아닌, 고객의 비즈니스를 이해하고, 고객의 가치를 존중하며, 고객의 만족감을 충족시켜
개발자를 대우받는 존재로 만들어 주는 방법론으로 가치가 느껴진다.
애자일과 소프트웨어 장인 정신
소프트웨어 장인 정신의 가장 큰 오해는 장인정신만 있으면 애자일은 필요 없고, 둘이 상호 배타적이라는 생각이다.
반대다, 둘은 상호 보완적이다.
애자일은 기업의 반응속도를 높이고 기민하게 하며, 올바른 일을 하도록 돕는다.
소프트웨어 장인정신은 일을 더 잘하기 위해 가슴에 품는 일종의 이념이다. 코드를 중시하면서, 코딩을 넘어 고객의 많은 부분을 도울 것을 강조한다.
후기
이번 장에서는 애자일에 대한 주제로 이뤄진다.
애자일이 개발 방법론에서 탄생하는 것도 처음 알았고
개발자를 단순 코더가 아닌 프로페셔널하는 존재로 인식시키기 위한 활동과 노력이 포함되어 있다고 느껴진다.
많은 기업과 교육에서도 애자일 방법론을 많이 사용하기도 하고 언급하기도 한다.
하지만 절차적인 관점의 애자일만 보는 곳이 많았다. 기술적인 관점은 전혀 없고, 개발자를 단순 코더 취급하는 곳도 많다.
언급을 안했지만 책에서도 잘못 적용된 애자일에 대해 언급하기도 한다.
기술적인 관점을 무시하고 진행된 애자일의 사례는 어떻게 진행되고 결과는 어찌되었을까?
궁금하면 책을 구입해서 보시는걸 추천드린다.
'서적 > 소프트웨어 장인' 카테고리의 다른 글
[CHAPTER 5] 영웅, 선의 그리고 프로페셔널리즘 (0) | 2021.05.05 |
---|---|
[CHAPTER 4] 소프트웨어 장인의 태도 (0) | 2021.05.05 |
[CHAPTER 3] 소프트웨어 장인정신 (0) | 2021.05.04 |
[CHAPTER 1] 21세기의 소프트웨어 개발, Part1 이념과 태도 시작 (0) | 2021.04.24 |
소프트웨어 장인을 시작하면서... (2) | 2021.04.23 |