[Chapter 1] 애자일 실천방법

Seungjae·2022년 1월 1일
0

애자일 연합


소프트웨어 팀이 빠르게 일하고 변화에 반응할 수 있도록 하는 가치와 원칙을 세우기 위해 모인 연합이다. 이들은 연구 끝에 애자일 소프트웨어 개발 선언문을 만들었다.

애자일 소프트웨어 개발 선언문

  1. 프로세스와 툴보다 개인과 상호작용이 우선이다.
  2. 포괄적인 문서보다 동작하는 소프트웨어가 우선이다.
  3. 계약 협상보다 고객 협력이 우선이다.
  4. 계획을 따르는 것보다 변화에 대한 반응이 우선이다.

각 항목들은 왼쪽 또한 가치가 있지만, 오른쪽에 더욱 가치를 부여한다는 의미이다.

원칙


위에서 설명한 가치들은 아래의 12가지 원칙을 이끌어낸다. 이 원칙들이 애자일 실천방법을 무거운 프로세스와 차별화하는 특징이다.

1. 우리의 최고 가치는 유용한 소프트웨어의 빠르고 지속적인 공개를 통해 고객을 만족시키는 것이다.

  • 즉 빨리, 자주 공개하라는 것
  • 자주 공개할수록 최종 품질도 좋아진다. -> 빠르고 지속적인 피드백이 가능하기 때문!

2. 개발 후반부에 접어들었다 할지라도, 요구사항 변경을 환영하라. 애자일 프로세스는 고객의 경쟁 우위를 위해 변화를 이용한다.

  • 요구사항 변경은 긍정적인 것 -> 팀이 시장의 요구를 충족시키기 위해 무엇을 해야할지 좀 더 배웠음을 의미
  • 변화를 잘 수용하기위해 소프트웨어의 구조를 탄력적으로 유지하기위해 노력, 즉 요구사항이 변경됬 때 시스템에 미치는 영향은 최소한이 되도록! -> 탄력성을 유지하도록 도와주는 객체 지향 설계의 원칙, 패턴 추후에 나올 예정

3. 개발 중인 소프트웨어를 2주에서 2달 사이, 혹은 더 짧은 시간 간격으로 자주 공개하라.

  • 문서와 계획들을 공개하는 것으로 만족X
  • 목적은 고객의 요구를 만족시키는 소프트웨어를 공개하는 것

4. 업무를 하는 사람과 개발자는 프로젝트를 통틀어 계속 함께 일해야 한다.

  • 프로젝트의 빠른 진행을 위해서는 고객과 개발자, 이해당사자 사이에 빈번한 상호작용이 필요
  • 소프트웨어 프로젝트는 지속적으로 관리되어야하기 때문

5. 의욕적인 개인들을 중심으로 프로젝트를 구성하라. 환경과 필요로하는 지원을 제공하고, 그들이 그 일을 해낼 것이라 믿고 맡겨둬라.

  • 애자일 프로젝트에서 성공의 가장 중요한 요소는 사람
  • 그 밖에 요소(프로세스, 환경 등)은 2차적인 요소

6. 개발 팀 내에서 정보를 전달하고 공유하는 가장 효율적이고 효과적인 방법은 직접 1대1로 대화하는 것이다.

  • 애자일 프로젝트에서 사람들은 서로에게 이야기
  • 문서로 작성된 명세, 계획, 설계보다는 대화
  • 문서는 큰 필요성을 느낄 경우에만 작성 (필수는 아님)

7. 개발 중인 소프트웨어가 진척 상황의 일차적 척도다.

  • 진척 상황을 현재 고객의 요구를 충족시키고 있는 소프트웨어의 비율로 측정
  • 필수적인 기능 중 50%가 되어있다. -> 50%의 일이 끝났다.

8. 애자일 프로세스는 지속 가능한 개발을 촉진한다. 스폰서, 개발자, 그리고 사용자는 무한히 지속적인 속도를 유지할 수 있어야 한다.

  • 100미터 달리기처럼 전력질주하는 것이 아닌, 마라톤처럼 진행
  • 빠르지만 지속 가능한 속도로 나아가는 것이 중요
  • 자신들의 속도를 조절하여 너무 지치지 않게, 내일의 에너지를 빌려 오늘 일하지 X
  • 프로젝트 기간 동안 가장 높은 질의 기준을 유지할 수 있을 정도로만 일

9. 우수 기술과 좋은 설계에 대한 지속적인 관심은 속도를 향상한다.

  • 높은 품질은 빠른 속도에 있어서 매우 중요
  • 프로젝트를 빠르게 진행하는 방법은 소프트웨어를 가능한 깨끗하고 튼튼한 상태로 유지하는 것
  • 팀원들은 철저히 자신이 작성할 수 잇는 가장 높은 품질의 코드만 작성
  • 말썽을 만들고 나중에 그 문제를 해결한다고 합리화 X

10. 단순성은 필수적이다.

  • 항상 목표와 일치하는 가장 단순한 길을 선택
  • 내일의 문제를 예상하고 방지하려는 것이 지나친 관심 X
  • 가장 간단하고 고품질의 작업을 오늘 행하고, 내일 문제가 생긴다면 그때 변경

11. 최고의 아키텍처, 요구사항, 그리고 설계는 자기 조직적인 팀에서 나온다.

  • 애자일 팀은 자기 조직적인 팀
  • 책임감은 외부로부터 팀원 개개인에게 수여되는 것이 X
  • 모든 팀원들이 전체 분야에 참여
  • 팀 전체가 책임을 공유하고, 각 팀원은 영향력을 가짐

12. 규칙적으로 팀은 좀 더 효과적인 방법을 반영해야 하고, 적절히 그 행위를 조율하고 조정해야한다.

  • 조직, 규칙, 대화, 관계 등을 계속 조정
  • 환경이 계속 변한다는 것을 인지하고 빠른 속도를 유지하기 위해 그 환경과 함께 변화해야한다는 점도 이해

결론


모든 소프트웨어 개발자의 목표는 고객에게 가능한 가장 높은 가치를 전달하는 것이다. 애자일 소프트웨어 개발의 원칙과 가치는 개발 팀이 프로세스 증가 악순환을 깨고 그들의 목표에 다다르기 위해 간단한 테크닉에 초점을 맞추는 것을 돕기위한 방법으로 만들어졌다.

profile
코드 품질의 중요성을 아는 개발자 👋🏻

0개의 댓글

관련 채용 정보