[클린 소프트웨어] chapter 1. 애자일 실천 방법

이다은·2023년 7월 29일
0

독서

목록 보기
1/8
post-thumbnail

시작하며

소프트웨어디자인패턴이라는 과목을 들으면서 읽게 된 클린 소프트웨어 에 대해 정리한 글이다. 읽다보니 흥미가 생겨서 정리해두고 나중에 다시 보기 위해 쓰는 중이다! 사실은 시험 공부 하기 위해 정리한 글... 이지만 어찌됐든 내가 정리한 건 맞으니까 ..

계속되는 악순환

  1. 많은 프로젝트가 실천방법 없이 프로젝트를 진행한다.
  2. 그로 인해 실패를 경험하게 되고 결과와 산출물을 요구하는 프로세스가 생긴다.
  3. 하지만 까다롭고 많은 프로세스는 오히려 계속되는 악순환을 생기게 하여 프로세스를 더욱 복잡하게 만든다 → 이는 소프트웨어 위기 와 연결된다.
  4. 아이러니 하게도 위와 같은 프로세스를 채택하는 회사가 빠르게 늘어났다

애자일 연합

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

  • 프로세스와 툴보다 개인과 상호작용이 우선이다.
    • 프로그래밍 실력은 평범하지만 서로 잘 대화하는 팀이 성공할 가능성이 높다.
    • 팀을 만들기 위해 노력하고 그런 뒤에 팀의 필요를 기반으로 환경을 구축하자.
    • 팀을 구성하는 일은 환경을 구축하는 일보다 더 중요하다.
  • 포괄적인 문서보다 동작하는 소프트웨어가 우선이다.
    • 설계 원리와 구조에 대한 문서를 쓰고 유지하되, 짧고 요약적 이어야 한다.
    • 새로운 팀원에게 정보를 전할 수 있는 제일 좋은 기록은 code 와 team이다
    • 그 필요가 급박하고 중요하지 않다면 아무 문서도 만들지 마라
      -Martin 의 문서화 제 1법칙-
  • 계약 협상보다 고객 협력이 우선이다.
    • 규칙적으로 자주 고객의 피드백을 받아야 한다.
    • 개발팀과 고객이 가까이서 일한다. (고객과의 협력)
  • 계획에 따르는 것 보다 변화에 대한 반응이 우선이다.
    • 소프트웨어 프로젝트의 성공과 실패를 좌우하는 것은 변화에 대한 반응 능력이다
    • 가까운 시일 내에 수행할 테스크에 대해서만 세부적인 계획을 세우고, 나머지 부분은 탄력적으로 조정할 수 있다.

원칙

  • 우리의 최고 가치는 유용한 소프트웨의 빠르고 지속적인 공개를 통해 고객을 만족시키는 것이다.
    • 자주 공개할 수록 최종 품질도 좋았다. 에자일 실천 방법은 빨리 자주 공개하는 것이다
  • 개발 후반부에 접어들었다 할지라도, 요구사항 변경을 환영하라
    • 변화를 걱정하지 않고 요구 사항 변경을 긍정적인 것으로 본다.
    • 소프트웨어의 구조를 탄력적으로 유지하기 위해서 노력하기 때문에, 요구사항이 변경됐을 때 시스템에 최소한의 영향을 미치게 된다.
  • 개발 중인 소프트웨어를 자주 공개하라
    • 문서와 계획 꾸러미가 아닌, 고객의 요구를 만족시키는 소프트웨어를 공개해야한다
  • 업무를 하는 사람과 개발자는 계속 함께 일해야 한다.
    → 소프트웨어는 지속적으로 관리되어야 한다
  • 의욕적인 개인들을 중심으로 프로젝트를 구성하라. 환경과 필요로 하는 지원을 제공하고 그들이 그 일을 해낼 것이라 믿고 맡겨둬라.
    → 사람이 성공의 가장 중요한 요소이다
  • 개발 팀 내에서 정보를 전달하고 공유하는 가장 효율적이고 효과적인 방법은 직접 일대일로 대화하는 것이다.
  • 개발 중인 소프트웨어가 진척 상황의 일차적 척도다.
  • 애자일 프로세스는 지속 가능한 개발을 촉진한다. 스폰서, 개발자, 사용자는 무한히 지속적인 pace를 유지할 수 있어야 한다.
    • 지나치게 빨리 나아가는 것은 엄청난 실패로 이어진다. 에자일 팀은 속도를 조절하여 프로젝트 기간 동안 가장 높은 질의 기준을 유지할 수 있을 정도로 일한다
  • 우수 기술과 좋은 설계에 대한 지속적인 관심은 속도를 향상한다.
    • 높은 품질은 빠른 속도에 있어서 중요한 요소이기 때문에 자신이 작성할 수 있는 가장 높은 품질의 코드만 만든다.
  • 단순성(아직 끝내지 않은 일의 양을 최대화하는 예술)은 필수적이다.
    • 내일의 문제를 예상하는데 지나친 관심을 두지 않으며, 가장 간단하고 고품질의 작업을 오늘 행한다.
  • 최고의 아키텍쳐, 요구사항, 설계는 자기 조직적인 팀에서 나온다.
    • 책임감은 팀원 개개인이 아닌 온전한 팀에게 전달된다.
    • 에자일 팀은 프로젝트의 모든 분야에서 함께 일하고 각 팀원이 전체 분야에 참여한다
  • 규칙적으로 팀은 좀 더 효과적인 방법을 반영해야 하고, 적절히 그 행위를 조율하고 조정해야 한다.

결론

  • 프로세스가 늘어나는 악순환은 프로젝트 실패의 원인 중 하나이다.
  • 애자일은 그들이 목표에 다다르기 위해 간단한 테크닉에 초점을 맞추는 것을 돕기 위한 방법으로서 만들어졌다.

마치며

chapter1은 프로젝트의 성공을 위해 어떤 원칙들을 따라야하는지 잘 소개된 글이라고 생각한다. 내가 생각했던 것보다 어려운 원칙이 아니라서 실전에 적용해볼 수 있을 것 같다. 자세한 설명이 덧붙여 있어서 읽으며 공감하게 된 내용이다 🐿.
성공하는 프로젝트란 이런거구낭.....

1개의 댓글

comment-user-thumbnail
2023년 7월 29일

유익한 글이었습니다.

답글 달기