1. 배경
프로젝트를 개발하다 보면 에러는 계속 발생한다. 이 에러들을 분석하고 좀 더 많은 제약과 산출물을 집어넣어 나중에 발생할 수 있는 에러를 방지하려고 한다. 이 프로세스를 여러 번 거치면 까다롭고 많은 프로세스가 만들어진다.
까다롭고 많은 프로세스는 오히려 다양한 문제를 발생시키거나, 일정을 지연시키고, 비용을 낭비하게 할 수 있다.
에자일 연합(Agile Alliance)은
소프트웨어 팀이 빠르게 일하고 변화에 반응할 수 있도록 하는 가치와 원칙을 세우자.
라며 애자일 소프트웨어 개발 선언문(The Manifesto of the Agile Alliance)을 발표한다.
1. 프로세스와 툴보다 개인과 상호작용이 우선이다. 2. 포괄적인 문서보다 동작하는 소프트웨어가 우선이다. 3. 계약 협상보다 고객 협력이 우선이다. 4. 계획을 따르는 것보다 변화에 대한 반응이 우선이다. |
2. 애자일 개발론 원칙
위의 가치들은 열두 가지 원칙을 이끌어냈다.
- 우리의 최고 가치는 유용한 소프트웨어의 빠르고 지속적인 공개를 통해 고객을 만족시키는 것이다.
- 개발 후반부에 접어들었다 할지라도, 요구사항 변경을 환영하라. 애자일 프로세스는 고객의 경쟁 우위를 위해 변화를 이용한다.
- 개발 중인 소프트웨어를 2주에서 2달 사이, 혹은 더 짧은 시간 간격으로 자주 공개하라.
- 업무를 하는 사람과 개발자는 프로젝트를 통틀어 계속 함께 일해야 한다.
- 의욕적인 개인들을 중심으로 프로젝트를 우선하라. 환경과 필요로 하는 지원을 제공하고, 그들이 그 일을 해낼 것이라 믿고 맡겨둬라.
- 개발 팀 내에서 정보를 전달하고 공유하는 가장 효율적이고 효과적인 방법은 직접 일대일로 대화하는 것이다.
- 개발 중인 소프트웨어가 진척 상황의 일차적 척도다.
- 애자일 프로세스는 지속 가능한 개발을 촉진한다. 스폰서, 개발자, 그리고 사용자는 무한히 지속적인 속도(pace)를 유지할 수 있어야 한다.
- 우수 기술과 좋은 설계에 대한 지속적인 관심은 속도를 향상한다.
- 단순성은 필수적이다.
- 최고의 아키텍처, 요구사항, 그리고 설계는 자기 조직적인 팀에서 나온다.
- 규칙적으로 팀은 좀 더 효과적인 방법을 반영해야 하고, 적절히 그 행위를 조율하고 조정해야 한다.
3. 느낀 점
애자일 개발은 '빠르고 지속적인' 개발, '잦은 고객 과의 소통', '높은 코드 퀄리티(그렇지만 미래의 기능을 생각한 기능보다는 해당 기능 단위의 요구사항에만 맞게끔 단순하게)'을 중심으로 한다.
특히, '요구사항을 긍정적으로 받아들인다.' 원칙에서 많은 생각이 들었다. 개발 후반에 요구사항의 변화가 들어온다면 스트레스를 받곤했는데, 변화가 생긴다는 것이 팀이 시장의 요구를 충족시키기 위해 무엇을 해야 하는지 좀 더 배웠음을 의미한다고 하였다. 변화는 요구사항을 부정적으로 받아들이기 보다는 유연하게 개발하도록 노력해야겠다. 이러한 탄력성 있는 개발을 위해 객체 지향 설계와 패턴이 더 필요하다고하여 이 부분을 더 집중해서 공부해볼 계획이다.
애자일 개발론이 정답이라고 할 수는 없지만, 스몰 프로젝트에서나 요구사항이 자주 변하는 프로젝트에서 충분히 적용될 만한 개발론이라고 생각한다. 이러한 원칙에 맞는 개발을 하기 위해 구체적으로 어떤 방식을 적용하는지 책을 읽어가며 배워볼 계획이다.
http://www.yes24.com/Product/Goods/39497990
해당 포스트는 로버트 C.마틴의 클린 소프트웨어의 책을 읽고 리뷰를 작성한 글입니다.
클린 소프트웨어 - YES24
소프트웨어 개발을 위한 사려 깊은 조언으로 가득한 책!『클린 코드』를 비롯한 베스트셀러 저자이자 소프트웨어 개발 전문가로 저명한 로버트 C. 마틴은 이 책을 통해 소프트웨어 개발자, 프로
www.yes24.com
'BOOK Review > 클린 소프트웨어' 카테고리의 다른 글
[Book Review] 클린 소프트웨어 #2 - 테스트 주도 개발(TDD) (0) | 2022.03.11 |
---|