Contents

Part1 가치를 이루는 것들
Part2 메모와 에세이

Part1 가치를 이루는 것들

가치는 우리가 원하는 것이다. 소프트웨어를 배포할 때 비로소 가치는 생겨난다. 가치있는 부분으로 나누어 배포하는 것은 어떨까?! 각 피처는 제품에 조금씩 가치를 더한다. 작고 가치 있는 피처를 자주 배포할때 최고의 가치를 얻을 수 있다.

프로젝트를 진행할때 가장먼저 알아야 하는 것은 바로 마감일정입니다. 일반적으로 분석, 설계, 코딩, 테스트의 과정을 거친다. 나쁜 것을 프로젝트가 계획대로 가는 일은 정말 드물다는 것이다. 모든 피쳐를 가질 수 있다는 사실을 너무 늦게 깨닫는다. 모든 피처를 한꺼번에 계획하고 개발하는 일은 모두를 힘들게 한다. 처음주터 여러 배포일정을 계획하라. 배포일정을 여러 번으로 계획하면 가치를 빨리 전달할 수 있고프로젝트를 관리하기도 쉽다.

우리는 피처라는 작은 부분에서 가치를 얻기 원한다. 가치에 기초를 두고 피처라는 관점으로 프로젝트를 진행할 때 성공할 수 있다. 그렇다면 어떻게 개발팀을 구성해야 할까?! 답은 간단하다, 작은 개발팀을 여럿으로 구성하는 것이다. 그러나 쉽지않다. 투입할 수 있는 전문가가 그리 많지는 않습니다. 따라서 학습공동체를 만들어 훈련해야 한다. 전문가는 단지 전문가이기 때문에 높은 연봉을 받는 것이 아니다. 그들이 다른 사람을 전문가로 이끌수 있어서 그런것이다.

계획은 쓸모없을 때가 많습니다. 하지만 동시에 없어서는 안될 부분입니다. 보통 1~2주를 하나의 주기(스프린트)로 개발을 진행하며 각각의 피처는 (사용자스토리) 2~3일 정도 작업할 분량일때 가장 좋은 결과를 낼수 있습니다. 업무량을 개인별로 추정하는 것은 권하지 않는다. 개인이 아닌 팀 전체를 이해하고 팀이 할수 있는 양을 추정해야한다. 이일은 추정을 정확히 하고자 하는 것이 아닙니다. 일관된 속도로 수행하기 위한 것이다. 자주 계획하고 다음에 할 일을 정하세요. 과욕은 금물입니다.

피처단위로 개발하는 제품은 더나은 가치를 제공합니다. 짧은 주기마다 작지만 완전한 제품을 완성하라. 가장 높은 가치를 가진 피처를 먼저 개발하라. 테스트-수정 과정이 완료단계에서만 있어서는 안됩니다. 제품이 성장할 때마다 설계를 확장하고 개선해야 합니다.

버그는 마치 바퀴벌레와 같다. 버그 하나를 발견했다는 것은 이미 수많은 버그가 있을수 있다는 말이다. 오직테스트 많이 결함을 최소화하는 방법입니다. 개발주기가 끝날때 마다 반드시 비지니스 테스틀르 수행합니다.

PART1 요약

  • 가치는 우리가 원하는 것입니다. 피처들은 가치를 전달하죠. 피처들을 빨리 보여줄수 있다면 그만큼 가치를 얻을 수 있습니다.
  • 가치를 기준으로 프로젝트를 관리하는 방법이 가치를 전달하지 못하는 산출물이나 일정으로 관리하는 방법보다 낫습니다.
  • 피처 개발을 계획하기는 매우쉽습니다. 필요하다면 프로젝트 추정도 괜찮은 방법입니다. 어제의 날씨 방법에 따라 해야할 작업을 선별하는 것도 좋습니다.
  • 1~2주의 짧은 개발 주기마다 작지만 완전히 돌아가는 제품을 개발해야만 합니다. 이제품은 항상 올바르게 작동해야하며 훌륭한 설계를 가지고 있어야만 하죠
  • 개발자는 반드시 실제로 작동하는 피처들을 배포해야 합니다. 제품은 반드시 올바르게 테스트해야합니다. 비지니스 측면에 있는 사람과 개발자는 테스트에 시간을 투자해야 합니다. 제품은 항상 올바르게 설계되야 하며, 개발자는 항상 훌륭한 설계를 유지해야만 합니다.

자 이제 작동하는 소프트웨어를 보여주세요

Part2 메모와 에세이

가치의 의미는 간결하다 바로 우리가 원하는 것이다.

가치는 정보입니다.
가치는 삶입니다.
가치는 자본금입니다,
가치는 제품 배포 속도입니다.
가치는 빠른 속도입니다.
가치는 행복입니다.
etc....

가치를 선택하는 일은 우리가 중요하다고 생각하는 것을 선택하는 일입니다. 가치는 우리가 원하는 것이니까요

가치를 숫자로 표현하고 싶은 유혹을 받을 때가 종종있다. 그러나 잘 생각해보아야한다. 돈은 최악의 지표입니다. 정보를 너무 느리게 가져올 뿐만 아니라 불확실하기까지 하죠.

우리는 우리의 능력을 꾸준히 개발해야 합니다. 가치를 빠르게, 개발프로세스를 간결하게 만들기 위해서는 숙련된 기술이 필요하니까요.

소프트웨어 개발을 진행할 때 이것만은 기억하세요

항상 가치에 집중할 것, 가치를 기준으로 계획하고 관리할 것, 사용자가 어떤 반을을 보이는지 살펴볼것 다니엘 핑크가 쓴 "드라이브"에서 그는 목적, 자율성, 숙련이 직원의 만족과 제품의 생산성을 이끄는 핵심이라고 설명한다.
어떤 조직에서는 제품 책임자가 논의나 문제제기 없이 해결책만 가져올때가 있습니다. 이는 이상적이지 않습니다. 이미 논의가 끝난 해결책만으로 개발한다면 목표의식을 얻을 수 없으므로 팀의 생산성을 크게 떨어집니다.
모든 팀이 함께 문제를 해결하려 할때, 제품책임자는 제품에 무엇이 필요한지 이를 어떻게 표현할 수 있을지를 배웁니다. 팀뿐만 아니라 제품 책임자도 같이 성장할 수 있게 됩니다. 최고의 순간이기도 하죠.

가능한 한 최고의 결과를 얻으려면 인력선발은 팀에게 맡겨야 합니다. 그러나 인사결정, 채용과 해고는 반드시 경영진이 해야합니다. 피터 드러커가 언급한 경영의 요소는 "계획, 조직화, 인원선별, 목표설정, 통계 "입니다. 솔직히 말해 우리의 읽은 계획을 따라가는 것이 아닙니다. 최선의 결과를 낼 수 있는 방향으로 프로젝트를 이끄는 것입니다. 항상 가치에 집중하세요, 항상계획 단계부터 가장 가치있는 것이 무엇인지 확인하세요. 리팩토링을 길을 정리하는 작업니다. 모든길이 구불거린다면 어떻게해야할까!? 야영지 규칙을 따릅니다. 야영지는 그곳을 발견했을 때보다 떠날때 더 나은 곳이어야 합니다.

마무리

생각보다 읽는데 오래 걸린것 같다.