design‎ > ‎

OpenUP

posted Jun 20, 2010, 9:03 PM by Kuwon Kang

삼성 SDS Anyframe Enterprise IDE개발팀을 제가

팀원들과 함께 Eclipse OpenUp방법론으로 개발을 하고 있습니다.

총 6번의 이터레이션이 수행되었습니다.

이터레이션 주기는 1개월이었습니다.

현재는 후임자가 팀을 이끌고 있습니다.

XP+SCRUM+Lean을 다 섞어서 만든 Eclipse 방법론 입니다.

기본적으로는 SCRUM 틀과 비슷합니다.

다만 용어나 기타 몇 가지가 다를 뿐인데 몇 가지 효과적인 결과에 대해서
올려 봅니다.

1. Standing meeting
매일 아침 15분 이하 미팅을 하는데 팀원들이 매우 좋은 반응을 보입니다.
해야할 일과 문제들이 잘 정리되어서 좋다.
하루하루 집중할 수 있는 원동력이 된다.

2. Burndown chart.
Scrum에서 사용하는 방법인데 내가 해야할 일을(work items list)를 기간단위로
정리해서 개발을 하고, 실제 해당 계획(estimation)된 데이터를 개발자가 assign하여 개발시
시간을 업데이트 합니다. 더 늘어 날 수 도 있고 더 적어 질 수 있습니다.
하지만 남은 시간이 중요한 거죠. 끝내냐 못끝내냐, chart의 기울기가 떨어지지 않느냐? 머 이런
감독이 burndown차트를 통해 관리되니 프로젝트의 위험과 방향, 재 정비등과 같은 매우 큰 장점들이
있는 것 같습니다.

3. Pair programming.
정확히 이야기하면 pair programming은 아닙니다.
다만 제가 각각의 팀원들의 코드를 assist해주고 frame code를 짜주고 설명하고
개발을 리드하는 방식입니다.
장점은 기술을 잘 모르고 스킬이 부족한 개발자들에게 좋은 설계를 유도하고 코드 수준의
설계까지 도와주면서 디자인 패턴이나 리펙토링, TDD스킬을 높여주게 되어 결국 팀원들도
향상된 개발 스킬을 성장시킬 수 있게 되는 것 같습니다.

4. Review(Design, Code).
실제 개발 시 Design을 먼저하고 Review를 합니다. Architect와 개발자들이 함께 모여
설계의 장단점과 좋은 안을 제시하고 적용합니다.
Use case로 시작하여 Module View등을 만들고 실제 Class diagram까지 정리하는데 이를 통해
개발자들을 구체적인 설계까지 들어가도록 합니다.
Code리뷰는 팀원들이 개발한 코드의 위험성이나 유지보수 측면에서 가능성 있는 문제를 정리하고
실제Refactor할 수 있는 내용은 가능한 그 자리에서 제가 Refactoring을 시연합니다.
팀원들은 이 내용을 함께 토론하고 공유하게 됩니다.

5. 점진적 설계.
불필요한 설계는 하지 않습니다. 다만 핵심을 제대로 파악하고 설계하여 확장성과 변화에
초점을 마추고 고객이 제시한 내용을 설계하고 개발합니다.
명확하지 않거나 모호한 요건은 가능한 다음 ITERATION으로 넘기거나 연기합니다.

6. TDD & Refactoring
매우 좋은 것은 TDD의 파워입니다.
제품의 품질 뿐만 아니라 시너지가 나게 되면 개발을 떠욱 빠르고 쉽게할 수 있는
기반이 되는 것이 바로 TDD인 것 같습니다.
예전에 C++을 할땐 Visual Studio로 Refactoring을 하는 것은 거의 불가능햇습니다.
j2ee로 와서 Eclipse를 사용하더 보니 Refactoring의 힘을 다시한번 느끼게 됩니다.
사실 Refactoring을 잘 할 수 있는 건 Eclipse의 덕분이라고 해도 과언이 아닌 것 같습니다.
팀원들도 TDD와 Refactoring을 배우면서 매우 큰 배움과 개발의 도움을 얻고 있습니다.

7. Iteration
한달 단위로 개발을 진행하고 있습니다. 모든 개발 계획과 과정이 명확해져 개발
릴리즈 관리가 철저해집니다.
개발자들도 명확하게 그 기간을 이해하고 스스로 진행하게 되어 너무 좋은 것 같습니다.
중간 릴리즈들 통해 팀원들 스스로 긴장감과 집중력을 높이게 되고 Iteration일정에 대한
목표과 계획을 잘 인지하고 있어 매우 만족할 만한 Iteration결과가 나오는 것 같습니다.

물론 현재 조직은 OpenUp을 쓰기게 매우 적절한 환경을 가지고 있습니다.

진행을 하면서 느낀건 팀원의 능력과 철학, 자세가 애자일을 잘 이해하고 있다면
그 팀의 효율과 생산성을 캔트백이 이야기하는 것처럼 정말 상상을 초월할 것 같다는
생각이 자주 들곤 합니다.

감사합니다.

Comments