Agile 개발을 위해 Things to keep doing
페어링, TDD (테스트기반 개발), 개발자 중심의 의사 결정 – 특히 기술적인 부분 관련 (개발 도구나 환경의 선택 등), 리펙토링 권장하기, 매일 아침 스탠드업, 주간 레트로 (레트로 스펙티브), 주간 IPM (이터레이션 미팅), PM의 피처 수락하기, 팀이 함께 앉기, 주간 사용자 인터뷰 및 테스트, 디자인 리뷰, 페이퍼 wireframe, epic을 작은 단위의 story로 나누기, Story의 난이도 및 스코어리에 대해서는 개발자들이 산정하기, 그리고 마지막으로 탁구(탁구대가 있다는 가정하에ㅋ)
대기업의 경우 사업 분야 자체가 굉장히 다양하고 복잡하기 때문에, 이를 고려하여 D&F (디스커버리 / 프레이밍)을 자주 실시하는 것이 중요합니다. 이를 통해서 팀 안에서 공통된 이해(shared understanding) 를 유지하고 사용자의 마음이 되어 이를 공감(empathy)하고 확산하는 과정이 중요합니다.
위험 요소들 (Risks)
조직을 변화시키고 교육시키는 부분 Organization transformation and enablement 큰 조직을 대상으로 프랙티스를 실시하고 프로세스를 바꾸려면 많은 시간과 노력이 필요합니다. 작은 팀부터 시작하세요. 작은 팀 안에서 프로젝트 및 프로세스등에 대한 자율성을 보장하고, 새로운 멤버들과의 pairing을 통해서 지식을 공유하는 것이 가장 효과적입니다. 이를 통해서 프로세스를 경험한 멤버들이 또다른 멤버들과 다시 pairing 함으로 점점 더 많은 사람들과 함께 지식을 공유할 수 있습니다.
지속가능한 페이스(속도) Sustainable pace
Pivotal labs의 프로세스는 굉장한 집중력을 필요로 합니다. 따라서 해당 프로세스로 업무를 진행하는 경우 해당 팀의 멤버는 담당 프로젝트만 집중할 수 있는 환경을 만드는 것이 중요합니다. 가능하면 다른 업무들로 인한 방해 없이 매일 정해진 시간 동안 일하는 것이 좋습니다. (예: 하루 8시간)
Balanced Team to your team
PM(프로덕트 메니져), 디자이너, 개발자는 지속적으로 팀을 유지해서 계속 일하는 것을 권장합니다. 지금까지 경험한 프로세스를 실제로 수행하기 위해서는 위의 세가지 업무가 긴밀하게 협동하는 것이 절대적으로 필요합니다. 서로의 도움 없이는 어느 누구도 제대로 임무를 수행할 수 없습니다. 더불어, 위의 각 업무를 담당하는 사람이 끝까지 자신의 업무에 집중해서 수행하는 것이 가장 효율적입니다.
새멤버 교육 Teaching process to others at team
가장 좋은 교육방법은 “같이 하는 것” 입니다. 각 업무 별로 (PM, 디자이너, 개발자) 새 멤버들을 영입하여 페어링을 시작하기를 권장합니다. 그렇게 함으로써 본인이 배운 것을 재확인하고, 또 널리 전파하는데 도움이 될 것입니다.
윈도우즈 환경 Windows
Windows를 이용하는 것에 대해서 다양한 방법이 있습니다. 각각의 안을 확인하기 전에 제한된 시간을 정해놓고 시작하세요. 윈도우즈로 해결이 되지 않는다면, 버츄얼머신에 리눅스를 운용하는 것도 방법이 될 수 있습니다. 각각의 방법에 사용한 시간을 기록해서, 윈도우즈로 통한 개발과 버츄얼머신을 이용한 개발의 비용을 비교하면 선택에 많은 도움을 줄 것입니다.
디자이너는 MAC으로 바꾸길 권장합니다. Sketch혹은 zeplin등의 어플은 디자인 작업에 걸리는 시간을 단축시켜 주며, 개발자 및 PM과의 협업 도 훨씬 유용하게 도와줍니다. Sketch같은 경우는 MAC에서만 동작하고 Zeplin의 경우도 MAC 어플에서 100퍼센트의 성능을 발휘할 수 있습니다.
CI plan
당장 씨아이(CI) 툴 한가지를 정하고 사용 시작하세요. Team City, TravisCI, CircleCI, Concourse 등 여러가지 옵션에 대해서 이미 논의했지만, 구체적인 계획은 정하지 않았습니다. 자체 호스팅 (예: Team City)을 하려면 서버 구성(configuring)을 해야하는 번거러움이 있지만 추가비용이 들지 않고, 외부호스팅을 (예:Travis CI) 하면, 서버구성의 번거로움은 없지만 비용이 듭니다.
샘플데이터 문제 currently using sample data
최대한 빠른 시일내에 앱과 실제데이터를 연결하세요. 샘플데이터를 기반으로 개발할 경우, 시간이 지날수록 나중에 실제 데이터소스 및 API를 연결했을 때 오작동이 발생할 리스크가 커질 수 밖에 없습니다. 앱과 그 API(실제데이타와 연동되는 API)를 연결하는 작업을 최우선으로 진행하십시오. 만약 해당 프로젝트의 진행 상의 이슈로 관련 API가 아직 준비되지 않았다면, 현재 가능한 다른 방법으로 실제 데이터를 연결하는 작업을 우선시 해야 합니다.
유저에 대한 “공감” 과 관심을 유지 Maintain empathy and concern for your user
프로젝트를 진행하면서 무의식적으로 언제나 “가설”을 만들어냅니다. 사용자를 대신해서 프로젝트 내부적으로 설정된 가설은 가능한 빨리 검증되여야 합니다. 그래야 사용자에게 필요한 제품을 만들 수 있기 때문입니다. 실제 문제를 해결할 수 있는 버전의 앱을 사용자들에게 가능한 빨리 릴리즈하십시오.
기술(테크놀로지) 선택 Technology choices.
언제나 최신이면서 안정된 버전의 개발 언어와 개발 도구를 사용하길 권장합니다. 모든 기능들에 대해서 보안 및 여러가지 이슈들 그리고 다양한 커뮤니티의 지원을 받기 위해서는 최신의 버전을 사용하는 것이 유리합니다. 또한 각 프로젝트마다 어떤 개발 언어 및 도구들을 사용할 지에 대해서는 프로젝트에 대해서 가장 많은 정보를 가지고 있는 개발자 들에게 선택 권한을 주세요.