Yunseok's Dev Blog

배운 것을 적는 블로그입니다.

코드숨 The Nature of Software Development 스터디 회고

코드숨에서 The Nature of Software Development을 읽고 스터디를 진행했다. 책에서는 이상적인 얘기가 많이 나왔다. 현실과 이상은 과연 어떻게 다를지에 대해 많이 얘기했다.

이상

이상적인 지향점을 향해 노력하는 회사에 대한 얘기를 들었다. 이상적인 회사는

  • 코드의 품질의 수준을 높게 관리한다.
  • 코드 리뷰를 엄격하게 한다.
  • 매번 동작하는 소프트웨어를 만들어낸다.
  • 같이 학습하여 같이 성장한다.
  • 테스트 코드가 많다.
  • 인수 테스트 주도 개발을 한다.

현실

그냥 이 책에서 하라는대로 안하는 회사라고 보면 된다.

  • 코드 리뷰를 잘 하지 않는다.
  • 개인이 혹은 같이 학습하지 않는다.
  • 동작하는 소프트웨어가 아닌 기획과 일정에 의존한다.
  • 피처 단위로 개발하지 않는다.
  • 코드의 품질을 관리하지 않는다.
  • 테스트 코드가 없다.
  • 설계를 개선하지 않는다.

소프트웨어를 개발하는 본질적인 방법은 무엇인가?

이 책은 소프트웨어를 개발하는 본질적인 방법에 대해 얘기했다. 각자가 생각하는 본질적인 방법은 무엇인지 얘기했다.

  • 배우는 지식들을 쌓는 학습이다.
  • 동작해야 한다.
  • 계속 변화해야 한다.
  • 중요한 가치부터 가치를 자주 전달하고 사용자의 피드백을 얻고 이 피드백 루프를 만드는 것
  • 중간은 없다. => 완성의 정의
  • 가치를 정의하고 가치를 전달하기 위해 노력하는 것
  • 가치가 높은 것부터 먼저 개발하는 것(계획, 테스트)
  • 어떤 가치가 있을지 어떻게 적용할지 깊이 생각하고 항상 간결함을 유지해야 합니다.
  • 내가 무엇을 하고 있는지 알고 있는 것
  • 모든 일에 꾸준히 질문을 하여 방향을 잃지 않는 것
  • 일정한 속도를 유지하는 것
  • 일하는 사람에게 위임하는 것
  • 사용자, 비즈니스, 경영진 등 모두에게 도움이 되는 것
  • 간결하게 만들어주는 것 => 작동하는 소프트웨어를 만들기 위해서

아쉬운 점

너무 내 얘기만 많이 한 것 같다. 다음번에는 다른 사람들의 생각을 많이 들어보고 싶다.

Sources