[BOOK] The Nature of Software Development

[BOOK] The Nature of Software Development – 론 제프리스 지음 / 이기곤 옮김

[BOOK] The Nature of Software Development

[BOOK] The Nature of Software Development

부제: “간결하게, 가치 있게, 하나씩 완성하기”

익스트림 프로그래밍 창시자 중 한 명, 경력 50년의 개발자, 15년 경력의 애자일러, 저자 론 제프리스에게 붙는 수식어들이다. 이 책은 짧고 간결하게 소프트웨어 개발 방법에 대해서 설명한다. LEAN, Agile, TDD에 익숙하다면 책에서 말하는 내용을 더 쉽게 이해할 수 있다. 저자가 강조하는 내용을 두 단어로 표현하면 가치(value)와 피처(feature)다.

가치는 ‘우리가 원하는 것’이고, 소프트웨어에서는 피처를 통해서 가치를 얻는다.

책에서 이야기 하는 가치는 익숙한 개념이고, 피처는 생소할 수 있다. 그래서 책의 전반부에 피처에 대한 이야기가 많이 나온다. 피처는 ‘작동하는 소프트웨어의 작은 단위’라고 이해하면 된다. 핵심은 ‘동작하는’이다. 지속적으로 ‘작동하는’ 작은 단위의 개발을 진행하면 LEAN 개발에서 말하는 MVP(Minimum Viable Product)를 빨리 개발할 수 있고, 이것이 프로젝트의 방향을 결정하는데 중요한 역할을 한다. 이런 ‘작동하는’ 소프트웨어를 1, 2주 단위로 배포하는 것이 저자가 말하는 개발 방법의 핵심이다.

현재 팀에서도 2주 단위의 스프린트로 애자일에 기초한 프로세스를 채택하고 있는데 배포의 개념을 포함하려면 많은 부분을 바꿔야 한다. 책에서는 간결하게 설명되어 있지만 실제 적용에는 많은 노력이 필요하다. 책을 통해 현재의 프로세스를 돌아보고 개선점을 찾아보는 것부터 시작해야한다. 점진적인 변화를 통해서 최적화된 팀을 구성하는 것도 하나의 ‘가치’가 될 것이다.


  1. 소프트웨어 개발에는 본질적인 방법이 존재한다. 그 방법은 모두에게 도움을 준다. (p. 17)
  2. 작동하는 소프트웨어를 보여주세요. (p. 30)
  3. 배포 일정을 여러 번으로 계획하면 가치를 빨리 전달할 수 있고 프로젝트를 관리하기도 쉽습니다. (p. 40)
  4. 조직에서 가장 뛰어난 사람은 경험이 적은 사람들을 이끌어야 합니다. (p.50)
  5. ‘어제의 날씨’ 방법, 오늘은 어제의 업무량만큼 일할 수 있습니다. (p. 62)
  6. 한 주기를 1주 또는 2주 정도로 계획하고 주기마다 하나의 완성된 제품을 만들도록 목표를 세우세요. (p. 72)
  7. 제품은 점진적으로 발전하는 설계에 기반을 두고 있어야 합니다. (p. 92)
  8. 피처 단위로 개발하려면 테스트와 리팩토링을 함께 진행해야 합니다. (p. 104)
  9. 모든 소프트웨어 개발은 복잡합니다. 그렇다고 해서 개발 프로세스가 복잡해야한다는 법은 없습니다. (p. 119)
  10. 항상 가치에 집중할 것, 가치를 기준으로 계획하고 관리할 것, 사용자가 어떤 반응을 보이는지 살펴볼 것. (p.129)
  11. 소프트웨어 개발의 본질적인 방법은 일하는 사람에게 권한을 위임하는 것입니다. 이것 외에 다른 것은 아무것도 없습니다. (p.143)
  12. 스크럼에는 우리를 도와줄 개념이 한가지 있습니다. 바로 진화하는 ‘완성의 정의’죠 (p. 150)
  13. 가장 훌륭한 개발 방법은 ‘야영지 규칙’을 따릅니다. “야영지는 그 곳을 발견했을 때 보다 떠날 때 더 나은 곳이어야 한다”는 규칙입니다. (p. 158)
  14. 애자일을 수행할 줄 아는 역량있는 팀을 만드는 것부터 시작하세요. (p. 183)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s