패왕넷

location tag guestbook

  • RSS
  • admin
  • post

{ End Bracket } 민첩성 기르기

분류없음 2007/04/16 15:52
 
 
 
 
출처 : MSDN Magazine "{ End Bracket } 민첩성 기르기"


운동은 피할 수 없는 삶의 한 부분입니다.  싫든 좋든 건강을 유지하려면 운동이 필요합니다. 그런데 건강을 유지하기 위해서는 어떤 운동을 하느냐보다 운동의 원칙을 지키는 것, 즉 유연성을 키우는 운동, 유산소 운동, 무산소 운동의 조화가 훨씬 더 중요합니다. 소프트웨어 개발 프로세스도 운동과 비슷합니다. 정해진 개발 프로세스를 정확히 따르는 것보다 프로세스의 원칙을 지키는 것이 더 중요합니다. 이러한 측면은 특히 민첩한 개발에서 두드러집니다.

"민첩한" 개발로 간주되는 소프트웨어 개발 프로세스에는 여러 가지가 있습니다. 예를 들면 스크럼(프로젝트 관리용), XP(Extreme Programming), FDD(Feature-Driven Development)가 있습니다. 처음 배울 때는 각 프로세스에서 미리 정해진 단계를 따르는 것이 좋지만 현실에서 모든 소프트웨어 프로젝트와 팀은 제각기 다르므로 대개 상황에 맞게 조정하는 과정이 필요합니다. 필요에 맞게 프로세스를 바꾸는 것은 좋습니다. 사실 변화의 수용은 민첩한 개발의 기본 원칙 중 하나입니다. 단, 이러한 변화가 민첩한 개발의 기반이 되는 인프라를 훼손해서는 안 됩니다.

민첩한 소프트웨어 개발의 기본 원칙 또는 본질은 무엇일까요? 민첩한 개발은 다음 사항에 주안점을 둡니다.

단순성.  민첩한 개발 프로세스는 그 자체가 단순할 뿐만 아니라 단순한 소프트웨어 디자인을 장려합니다. 소프트웨어 디자인을 단순하게 유지하면 관리 용이성이 향상되며 과잉 엔지니어링을 피할 수 있습니다. XP의 TDD(테스트 기반 개발) 방식에서는 테스트를 통과할 수 있는 최소한의 코드만 작성할 것을 권장합니다. 이러한 방식에 기존 코드 디자인을 기능 변경 없이 지속적으로 리팩터링 또는 개선하는 과정을 결합하면 소프트웨어 복잡성을 최소화할 수 있습니다.

변화 수용.  소프트웨어 개발에서 두 가지 확실한 사실은 인간은 실수를 저지른다는 점(버그)과 요구 사항이 변경된다는 점입니다. 민첩한 개발자들은 변화를 꺼리지 않으며 항상 변화에 대한 준비가 되어 있습니다. 많은 경우 사용자들은 개발 주기의 막바지에 새로운 기능을 요구합니다. 민첩한 개발자는 사용자의 요구를 경청하고 TDD, 지속적인 통합 및 리팩터링과 같은 방식을 사용하여 최소한의 작업으로 이러한 변화를 수용합니다.

증분 반복.  전달하기 쉬운 작은 기능을 고객에게 자주 제공하고 고객 평가를 자주 수행하면 개발을 순조롭게 진행하는 데 도움이 됩니다. 또한 전체적인 그림을 정해 놓은 상태에서 개발 작업을 작은 부분으로 제한하면 품질에 초점을 맞출 수 있습니다. 스크럼(Scrum)에서 반복 작업 단위는 대개 30일이며 이를 "스프린트(sprint)"라고 합니다. 스프린트의 각 결과물은 높은 품질을 유지해야 합니다. FDD는 대개 2주 간격으로 실질적인 작업 결과를 산출합니다.

지속적인 피드백 및 개선.  민첩한 개발에서는 개발 기법 개선을 위해 작업 결과를 자주 반영할 것을 권장합니다. 스크럼에서는 각 스프린트가 끝날 때마다 검토 회의를 갖습니다. XP는 내부 디자인의 개선 및 단순화를 위한 지속적인 코드 리팩터링을 장려합니다. 일일 스크럼 회의를 통해 매일 평가를 업데이트하는 등 피드백 기반 메커니즘을 활용하여 교육을 보강하고 프로젝트의 정확한 그림을 일관되게 제공합니다.

공동 작업.  민첩한 개발에서는 팀원 간, 팀 간 그리고 고객과의 의사 소통 채널을 항상 열어 두도록 강조합니다. 프로젝트 관리자, 개발자, 테스터, 고객 간의 정기적인 의사 소통은 모든 사람들이 한 방향으로 나아가게 하고 막힌 문제를 신속하게 해결하는 데 도움이 됩니다. XP의 일일 스크럼 회의(Daily Scrum meeting)와 짝 프로그래밍(Pair Programming)은 팀 안팎의 공동 작업을 개선하는 방법의 좋은 예입니다.

낭비 제거.  낭비 제거는 민첩한 개발과 한 쌍을 이루는 경우가 많은 린 소프트웨어 개발(http://www.poppendieck.com/)에서 차용한 개념입니다. "낭비"는 고객이 원하거나 필요로 하는 사항과는 거리가 먼 작업 또는 노력(예: 기능)입니다. 예를 들어 세부적인 요구 사항 분석이나 초기부터 지나친 설계 치중은 개발 주기의 후반에 변경이 발생하면 쓸모 없어지는 경우가 많으므로 낭비라고 할 수 있습니다. 따라서 상위 수준부터 시작하여 차츰차츰 세부 사항을 처리해 나가는 것이 좋습니다.

스크럼, XP, FDD를 비롯해 어떤 민첩한 프로세스를 따르든 이러한 민첩한 개발의 핵심 원칙을 따르면 사용자와 높은 품질에 중점을 둔 올바른 결정을 내릴 수 있습니다. 운동에서도 이러한 원칙이 그대로 적용됩니다. 다양한 활동을 규칙적으로 하면 좋은 결과를 얻을 수 있으며, 마당을 정리하거나, 친구의 이사를 돕는 것도 이러한 활동에 포함됩니다. 즉, 기본 원칙만 준수하면 되는 것입니다.

이러한 기본 원칙에 대한 자세한 내용은 www.agilemanifesto.org/principles.html을 참조하십시오. 이제 민첩한 개발을 직접 실천하시기 바랍니다. 핵심 원칙을 준수하면 몸과 소프트웨어 프로젝트 모두 건강한 상태를 유지할 수 있습니다.



James Waletzky는 Microsoft Engineering Excellence 부서에서 근무하는 소프트웨어 디자인 엔지니어로서, 지속적인 발전의 중요성을 강조하면서 교육, 컨설팅, 도구 개발 등을 통해 Microsoft의 전반적인 엔지니어링 역량을 높이는 데 주력하고 있습니다.
날개달기
2007/04/16 15:52 2007/04/16 15:52
 
받은 트랙백이 없고, 댓글이 없습니다.

트랙백 주소 :: http://blog.paewang.net/trackback/65

 
◀ 다음 글 목록 1 ... 165 166 167 168 169 170 171 172 173 ... 231 이전 글 목록 ▶

블로그 이미지
안녕하세요. 이광수입니다. 저는 한때 세계적인 컨설팅 회사인 맥킨지의 컨설턴트가 되는 목표를 가졌었지만, 지금은 리더십 · 자기계발 전문가를 꿈꾸고 있습니다. 2006년부터 최근까지 마이크로소프트 MVP로 활동했었습니다. by 날개달기

공지사항

패왕넷 - 최근 공지

  • 쿠키미디어에서 필진을 모집...
  • 문의사항
  • 운영자 소개

카테고리

  • ATOM 전체 (231)
    • ATOM 삶의 지혜 (70)
      • ATOM 고수독서법 (4)
      • ATOM 독서토론 (2)
      • ATOM 추천도서 (1)
    • ATOM 소프트웨어 개발 (30)
    • ATOM 소식 (6)

새로 등록된 글

  • 나는 고민에 빠져들게 하는...
  • 먼지가 되느니 차라리 재가...
  • 내가 몰입하는 이유
  • 소비자의 갈망을 충족시켜라
  • 한국리더십센터 up&up에 제... (2)

태그목록

  • 육일약국
  • IIS
  • atlas
  • Ajax
  • 서적
  • 자기계발
  • utf8
  • MySQL
  • 독서노트
  • 김성오
  • 메가스터디
  • 컨설팅
  • XAML
  • utf8_unicode_ci
  • 업무집중
  • VS2005
  • 고수독서법
  • 자료
  • 생각
  • WPF
  • VMware
  • 온라인독서토론
  • 필독서
  • 한국리더십센터
  • 요약본
  • 설치
  • 디버깅
  • MSE7
  • 마이크로소프트
  • RSS

글 보관함

  • 2010/03 (1)
  • 2010/01 (3)
  • 2009/12 (1)
  • 2009/11 (8)
  • 2009/10 (4)

달력

«   2010/03   »
일 월 화 수 목 금 토
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

새로 달린 댓글

  • 원래 아티클에 첨부된 파일만.... 01/30 날개달기
  • 안녕하세요. 잘 보았는데요...... 01/14 stephen
  • 지속적인 발전을 보이고 있네.... 2009 날개달기
  • 관리자만 볼 수 있는 댓글입.... 2009 비밀방문자
  • 스트레스 관리에 운동만한게.... 2009 날개달기
  • 좋은글이네여 역시 운동이 제.... 2009 montreal florist
  • 네, 참여 가능합니다. 조만간.... 2009 날개달기
  • 독서토론에 참가하고 싶어서.... 2009 성수정
  • 효율적으로 토론할 수 있는.... 2009 날개달기
  • 안녕하세요. 이 글은 프로그.... 2009 날개달기

새로 달린 트랙백

  • 소프트웨어 컨플릭트 2.0 2007 The note of Legendre
  • 자바스크립트 째려보기 2007 조선일보 사절
  • IIS 메타베이스에 액세스하지... 2007 tpoz님의 블로그

링크

  • 56 69 72 75 73 20 4D 79 74...
  • Ajax + 요구공학
  • AmiText
  • Architecture and Design
  • Babel Fish 번역
  • BPM
  • Creating Passionate Users
  • Enterprise Library
  • FreeBooksPedia
  • IT용어 사전
  • J & J
  • jwmx
  • Korea Embedded Developer Bl...
  • Loner's .NET Blog
  • Martin Fowler
  • MSDN Korea
  • MSDN2 라이브러리
  • my msdn
  • Nagging Machine: 꿈은 꾸되...
  • NetFx3
  • Prototype.js
  • Refactoring
  • Script#
  • searchmash
  • stophobia
  • The Art of Project Management
  • Toby’s Epril
  • Visual Studio 용어 사전
  • W3C CSS 검사 서비스
  • 강주헌의 <펍헙 번역학교>
  • 고수닷넷
  • 날개달기, 경영을 말하다
  • 달봉이넷
  • 독서가 만들어주는 하루
  • 두고보자
  • 마이크로소프트 언어 포털
  • 마케팅커뮤니케이터의 공부방
  • 북세미나닷컴 공식 블로그
  • 서광열의 소프트웨어 이야기
  • 소설같은 시리즈
  • 스마트플레이스
  • 애자일 이야기
  • 작은불꽃
  • 조엘 온 소프트웨어
  • 좋은글 러브젝트닷컴
  • 주간번역가
  • 철수네 소프트웨어 세상 3
  • 쿠키미디어
  • 태터툴즈 메뉴얼
  • 패왕넷 - 이즈블로그 분점
  • 패왕넷 - 티스토리 분점
  • 퍼키의 열고 보는 세상
  • 프로그래머의 마음공부
  • 피플웨어
  • 한국 eXtreme Programming 사...
  • 한국마이크로소프트 에반젤리...

카운터

  • 전체 : 80511
  • 오늘 : 34
  • 어제 : 69

이올린

skin by 써머즈