읽기 예상 시간: 5분

Agile: 우수한 소프트웨어 개발 방법

Agile 개발 진행을 통해 포괄성 (inclusivity)을 수용하고 생산성을 강화하는 프로세스 정의를 거치면서 기업들은 전체 팀이 결집했을 때 발휘되는 힘을 경험할 수 있습니다. Agile을 그토록 강력하게 만드는 것은 조화를 이룬 수많은 노력입니다. 팀이 얼마나 잘 소프트웨어를 개발하는가에 따라 시장에서 비즈니스의 성패가 좌우될 수 있으므로 여러분 모두가 모여 합심하는 것이 그 모든 Agile 보다 강력합니다.


Agile 소프트웨어 개발이란?

Agile 소프트웨어 개발은 결과적으로 고객에게 신속하고 빈번하게 가치를 전달하는 일련의 방법론입니다. 또한 기능적으로 교차되는 팀들 간에 협업 수준을 높여 잘 기획된 소규모 반복 작업을 촉진합니다. Agile 방법론은 기존의 폭포수 방법론과 연관된 순차적 개발과 장기 릴리스 주기에 대한 대안을 제공합니다.

Agile 방법론은 스타트업에서 엔터프라이즈에 이르는 모든 규모의 비즈니스와 팀, 대부분의 프로젝트에 적합합니다. 즉, Agile 방법론을 채택한 조직들은 문화적으로 변화에 임할 준비가 되어 있으며 코칭이나 교육 훈련에 적극적이어야 합니다.


Deploy B u i l d A c c e p t P l a n Iteration 1 D e s i g n T e s t Deploy d B u i l d A c c e p t P l a n Iteration 2 D e s i g n T e s t Deploy Deploy B u i l d A c c e p t P l a n Iteration 3 D e s i g n T e s t


왜 Agile인가?

더 높은 투명성

(테스터, 개발자, 디자이너, 프로젝트 관리자 등) 작업물을 생산하는 팀의 이해 관계자는 모두 현재 무엇이 진행되고 있고, 앞으로 무엇이 더 진행될 것인지에 대해 관여되어 있고 또 분명히 알고 있습니다.

더 높은 예측 성능

업무 우선 순위는 분명하게 정해져 있고 개발 반복 타임 박스는 이상적인 1-2주 단위로 빠듯하게 구성되어 있습니다. 지속적인 전달 주기의 일부로서 새로운 기능들이 자주 추가되고 좀더 예측 가능해집니다.

더 높은 유연성

피드백이나 새로운 비즈니스 요구에 의해 우선 순위가 변경될 경우 백로그에 우선 순위 재선정 스토리를 즉시 삽입할 수 있습니다.

비즈니스 가치 중심

이해 관계자들은 구축할 기능들의 순서를 결정해 비즈니스에 가장 중요한 사안을 팀에 분명하게 전달합니다.

사용자 중심

사용자 스토리는 실제 사용자의 요구 사항을 충족시키도록 디자인되어야 합니다. 디자인 및 개발된 각 기능은 점진적으로 증가하는 가치를 제공합니다.

품질 중심

모든 업무를 관리 가능한 단위로 쪼개 빌드 구축 주기를 짧게 했기 때문에 테스트와 검토에 더욱 집중하게 됩니다. 결함을 더욱 쉽고 빠르게 찾아 수정할 수 있으므로 결과적으로 품질이 향상됩니다.


IDC Market Analysis Perspective: Worldwide Application Development Software, 2016.

"이제 Agile 접근 방식은 신규 소프트웨어 개발의 기본 접근 방식입니다.."

Al Hilwa
프로그램 디렉터, Application Development Software, IDC



[Agile] 고려 시 염두에 두십시오.

대세는 기존의 폭포수 방법론에서 Agile 소프트웨어 개발로 옮겨가는 중이지만 워크플로우 사고 방식과 일반적인 위험에 대한 인식이 변해야 Agile 개발을 성공적으로 확립할 수 있습니다. 시작하기 전에 몇 가지만 묻겠습니다.

팀이 구성되어 있습니까?

Agile은 매우 협업 강도가 높은 프로세스입니다. 엄격하게 진행되는 하향식 워크플로우는 아니지만 채택 과정은 모든 수준에서 진행해야 합니다. 사람들의 흥미를 유발시키십시오. 조직과 그들에게 어떤 혜택을 가져올 것인지 설명하고 일시적인 유행이 아님을 재확인시키십시오. Agile에 대한 투자는 혁신, 유연성, 빠른 개발 주기를 약속합니다.

혼자 진행할 계획입니까?

그렇다면 그만 두십시오. 팀에서 Agile 워크플로우 채택에 익숙하고 흥미를 가진 동료들을 찾으십시오. 근본적인 수준에서 Agile을 구현하고 충분한 스폰서 지원을 통해 이러한 변화에 맞서 다른 팀, 경영진, 비즈니스 파트너와 충돌할 소지가 있는 모든 저항을 다루십시오. 올바른 방향으로 시작하고 이동하는 것을 도와줄 컨설턴트를 고용하는 것이 바람직합니다. 이 경우 위험을 줄이고 시간을 벌 수 있게 도와줍니다.

교육이 준비되어 있습니까? 실습은 어떻게 진행할 예정입니까?

팀을 교육해야 합니다. 축소된 프로세스는 열악한 구현으로 이어질 수 있습니다. Agile은 팀의 성공을 위해 학습하고 준수해야할 일련의 방법론들입니다. 그러나 단순한 교육 자체보다 중요한 것은 교육을 통해 팀이 학습한다는 사실입니다. 실제 프로젝트를 수행하는 팀이 Agile의 유형 혜택을 학습하고 강화할 수 있게 하십시오.

모두들 바뀔 프로세스와 도구에 대해 준비되어 있습니까?

현재 어떤 관리 도구를 사용하고 있습니까? 그리고 이 도구들이 Agile에 적합합니까? 테스트 중심 개발 (Test Driven Development, TDD), 지속적인 통합 (Continuous Integration, CI), 지속적인 배포 (Continuous Deployment, CD)를 구현할 준비가 되어 있습니까? 여러분의 디자인과 UX 팀을 포함시켰습니까? 조직이 클수록 이성과 감성이 조합된 동료들을 더 많이 모아야 합니다. Agile 채택은 굉장히 매력적인 일이지만 제대로 진행해야 변화가 전체 조직에 스며들 것입니다.

"하면 하고 안하면 안하는 거지. 그냥 한 번 해보는 건 안돼." —요다 ("스타워즈: 제국의 역습" 영화 캐릭터)

모두 기꺼이 변화를 받아들이겠습니까?

의심할여지 없이 Agile을 채택하면 난감한 길에 들어서게 됩니다. 시행착오를 겪게 될 것입니다. 사람들은 스탠드업 미팅에서 문제를 해결하려 할 것이고, 팀은 준비하고 기획하는 과정을 그만두려 할 것이고, 기술적 부채는 누적될 것이며, 작업은 개개인에게 할당될 것입니다. 결국 팀이 Agile에 헌신한 경우에 한하여 모든 과제를 수행하게 될 것이고, 상당한 조급 적용 과정을 거친 후에야 앞을 내다볼 수 있을 것입니다.



차이점 비교: Agile 대 폭포수 [프로세스]
상황
Agile 접근 방식
폭포수 접근 방식
개발 도중 프로젝트 관리자가 새로운 기능을 추가하려는 경우 제품이 최근 고객과 비즈니스 요구 사항을 충족시킬 수 있도록 주별 단기 일정 중에 새 기능을 추가한다. 개발자들은 이미 개발 디자인 및 생성 단계를 완성해 놓은 상태이므로 새 기능은 6개월 내에 있을 다음 프로젝트 기획 단계에 논의한다.
테스트 도중 엄청난 버그가 발견된 경우 버그는 그 주가 끝나기 전에 발견된다. 사소한 문제 발생을 예상하고 있었으므로 개발팀은 다음 단기 일정에 수정을 추가하고 프로젝트는 원래 일정대로 예산에 맞춰 진행한다. 개발 최종 단계에서야 버그를 발견하게 되고 프로젝트 전반에 걸쳐 코드 작성 방식에 영향을 미친다. 버그 수정과 업스트림 코드에 따른 일정 변경을 예상할 수 없고, 따라서 프로젝트는 지연되어 예산을 초과하게 된다.
고객이 피드백을 제공할 경우 다음 단기 일정이 실행되기 전에 피드백을 협력적이고 점증적으로 디자인에 포함시킨다. 피드백을 문서화하지만 다음 릴리스 이전에 프로젝트에 포함시키지는 않는다.



Agile과 익스트림 프로그래밍

익스트림 프로그램은 Agile의 한 부류로 인식되고 있으며, 개발팀의 요구를 독창적으로 채택하는 방식의 하나입니다. 익스트림 프로그래밍은 페어 프로그래밍, 모든 코드의 자동 테스트, 실제 필요한 기능만 프로그래밍, 단순 명료한 코드, 시간에 따른 고객 요구 사항 변경 예측, 문제 이해도 향상, 고객 및 프로그래머 간의 활발한 의사 소통 등을 특징으로 합니다.





Pivotal의 Agile

지난 25년 동안 경험해보니 행복한 사람들이 곧 생산적인 사람임을 알 수 있었습니다. Pivotal에서 Agile은 익스트림 프로그래밍의 형식으로 모든 부서에 스며들었고 하루가 시작되고 끝날 때까지 우리가 수행하는 모든 비즈니스를 안내합니다.



Pivotal의 일주일
조식

따뜻한 접시에 주스나 커피를 곁들여 Pivotal 직원들과 시간을 보냅니다.

9:00 AM
전체 스탠드업 미팅

잠시 동안 흥미로운 사안의 근황을 나누고 다른 직원들에게 문제 해결 관련 도움을 구합니다.

9:06 AM
팀별 스탠드업 미팅

팀원들과 만나 전날 수행한 업무와 논의 중인 당일 업무에 대해 공유합니다.

9:15 AM
디자인 시작

연구 주도, 와이어 프레임, 시각 자료 디자인, 프로토타입 코드 또는 고객 교육 등을 담당할 수 있습니다.

9:25 AM
중식


기술 담화

점심 식사를 즐기면서 코드, 프로세스, 디자인, 또는 새로 시작되는 비즈니스에 대해 이야기를 나눕니다.

12:30 PM
휴식 시간
3:48 PM
팀별 주간 보고

매주 금요일 팀원들은 맥주와 와인을 마시면서 한 주의 업무를 되돌아보고 잘 진행된 것과 그렇지 못한 것, 다음 주를 위해 개선할 사안 들에 대해 토의합니다.

5:00 PM
임무 완료

야근이나 주말 근무 따위는 없습니다. 금요일에는 직원들끼리 모여서 회식을 즐기기도 합니다.

6:00 PM


우리는 Agile 방법론에 입각해 작업하므로 우리 팀에서는

제품 관리 도구인Pivotal Tracker를 사용해 토의하고, 우선 순위를 지정하고 스토리를 추적하는 곳에서 스탠드업 미팅과 반복 기획 회의를 엽니다

페어 프로그래밍을 사용해 코드 품질 향상을 도움받습니다

코드를 작성하고 Concourse같은 연속 반복/지속적인 전달 도구를 통해 작성된 도구를 테스트하고 전달합니다 같은 연속 반복/지속적인 전달 도구를 통해 작성된 도구를 테스트하고 전달합니다 Concourse

모든 업무 과제를Pivotal Web ServicesPivotal Cloud Foundry상에서 배포해 고객의 승인을 받습니다

우리의 확장된 데이터 관리 시스템을 통해 지속적으로 반복합니다

Pivotal 직원의 하루를 잠깐 훑어보았을 뿐이지만 크고 작은 모든 프로세스가 최적화되어 있음을 알게 되었습니다. 작은 팀에서 일하는 직원도 최선을 다하고 지속가능한 속도로 양질의 결과를 보일 수 있도록 자율권이 보장됩니다.



Pivotal 적용 사례
The Home Depot은 Pivotal 기술을 배포함으로써 더욱 빠르게 가치를 전달하려는 IT 목표뿐만 아니라 주요 직원들 및 프로세스 문제점들을 극복하는 과제를 동시에 달성했습니다.
Merrill Lynch의 경우 Pivotal은 혁신적인 방법론을 통해 속도에 대한 요구를 해소하는 몰입형 소프트웨어 개발 과정을 제공했습니다.
Comcast는 기술적 부채를 감소시킬 방안을 찾느라 Pivotal과 협업하여 민첩성, 탄력성, 속도, 복원력, 고객 경험, 실험에 대한 주력을 강화했습니다.



Pivotal Labs
팀의 소프트웨어 빌드 방법 변환 - 한 번에 하나의 스토리


Pivotal Cloud Foundry
완전 자동화된 셀프 서비스 배포 실시


Pivotal Tracker
성공적인 팀을 위해 증명된 프로젝트 관리


Agile 관련 추가 리소스 보기

전체 리소스 보기

시작 with Agile
On Becoming Agile

자세한 정보

Try agile project management now

Free trial

Meet our Agile Advocates

자세한 정보

Read Next
디지털 변환