Agile 프로젝트 개발자들에게 요구되는 역량

Updated:

Agile 프로젝트가 성공하려면?

Agile 방법론이 성공적으로 하나의 프로젝트를 이끄려면 어떤 부분이 가장 중요할까요? Agile 방법론 자체의 완성도? 프로젝트 특성 분석? 고객의 협조? 저는 무엇보다 프로젝트에 참여하는 사람들이 Agile의 출발점이라 일컬어지는 Agile 소프트웨어 개발 선언(https://agilemanifesto.org/iso/ko/manifesto.html)에 담긴 정신을 이해하고 받아들일 준비가 되어 있는지 여부라고 생각합니다.

계획보다는 변화에 순응하고, 소통을 중시하는 팀웍을 통해 살아 숨쉬는 소프트웨어를 만들자는 Agile 선언 이후 많은 사람들이 공감하고 이를 구체화시켜 현재의 Agile 방법론이 개발되었고, 지금까지 꾸준히 개선되어 오고 있다는 건 다들 아실겁니다. 그리고 Agile 방법론에 의해 진행되고 관리되는 Agile 프로젝트도 하나의 경영활동(Business)인 만큼 이를 발주하는 고객이 있을테고, 해당 프로젝트에 참여하고 수행(delievery)하는 사람들이 있겠죠.

그럼 Agile 프로젝트에 참여하고 수행하는 사람들은 어떻게 구성될까요? 프로젝트이니 PM과 프로젝트 Owner(고객)이 있을 겁니다. 그리고 그를 Product Owner(PO), Scrum Master(SM), 개발자(UI/UX 디자이너 포함)로 이루어진 Scrum이 감싸고 있습니다.(자세한 내용은 이전 포스팅을 참조해주세요. https://engineering-skcc.github.io/culture/agileorganiztion/)

자, 다시 처음의 질문으로 돌아가 볼까요? Agile 프로젝트의 성공을 위해 가장 중요한 건 바로 ‘사람’, Agile을 이끌어 나갈 프로젝트 구성원들이 Agile 정신을 얼마나 잘 이해하고 있고, 참여 이전에 얼마나 준비되어 있는지에 달려 있을 것입니다. 특히 프로젝트 구성원 중 가장 많은 수를 차지하고 있는 개발자들이 어떠한 역할을 할 수 있는지가 무엇보다 중요하다는 점은 더 강조할 필요가 없을 겁니다. 그렇다면 개발자들이 Agile 프로젝트에 참여하기 전에 갖춰야할 역량에는 어떤 것들이 있을까요?

Agile 개발자가 갖춰야할 것들, Agile Ability!

Agile 프로젝트를 잘 수행하기 위해서는 기본적으로 Agile 방법론의 가치를 이해하고 열린 소통의 자세를 갖는 것이 선행되어야 한다는 점은 위에도 언급했습니다. 사실 이 부분은 Agile을 접해 본 거의 모든 사람들이 동의할 것입니다. 다만, Agile을 처음 접하는 사람들에게도 이 가치를 받아들이도록 설득 혹은 코칭할 수 있을지는 명확히 정리된 바가 없습니다. 좀 더 체계적으로 정리된 자료를 찾던 중 좋은 소스를 발견하여 여러분과 공유하고자 합니다. 아래의 ‘정리’는 미국 소프트웨어 업체 ‘WORKFRONT’의 블로그에 게재되어 있는 “The Beginners’ Guide to Agile Project Management Methodology(https://www.workfront.com/blog/the-beginners-guide-to-agile-project-management-methodology)” 라는 포스팅을 발췌한 부분입니다. 보다 성공적인 프로젝트 수행을 위해 참여하는 개발자들이 어떠한 역량을 갖추면 좋은지에 대해 간략하게 정리되어 있으니 함께 살펴봅시다.

  1. [T-shaped] (하나 이상의)특정 분야에 대한 깊이 있는 지식, 경험 및 역량을 갖고 있음은 물론, 팀이 목표하는 바(subject)에 대한 폭넓은 지식을 갖고 있다.
  2. [Cross-functional] 일반적인 영역 외의 기술을 갖추고 있으며, 기본적인 그래픽 디자인 원리를 이해하고 데이터 분석이나 HTML/CSS 역량을 갖고 있다.
  3. [Adaptable] 다양한 기술 요소들을 알고 있고, 이를 활용할 방법도 알고 있다. 물리적인 환경에 상관 없이, 꾸준한 결과물을 보여준다.
  4. [Curious] 최적화 및 효율화에 대한 적절한 의문과 도전을 통해 그 방법이 정말 적합한 것인지에 대한 호기심을 가져야 한다.
  5. [Entrepreneurial] 어떤 일이 주어질 때까지 기다려서는 안된다. 자기 자신이 필요하다고 생각되는 곳에 먼저 다가가 일감을 자발적으로 맡아야 한다.
  6. [Team-oriented] 자기 자신만의 성공보다는 팀의 성공을 우선한다. 팀 구성원 모두가 서로 간의 소통을 중시한다면 팀의 성공이 멀지 않다.
  7. [Committed to excellence] Agile 프로젝트의 핵심 장점은 품질 높은 작업을 신속하게 수행할 수 있다는 점이다. 최선을 다할 준비가 된 팀 구성원이라면 언제나 최고 수준을 보이지는 못하더라도 단순히 평균적인 수준에 머물지라도 그만의 완벽을 추구한다.

위 해석 자체에는 약간의 의역이 첨가되었다는 점 양해 부탁드립니다. 아무튼 위 7가지 역량 사항을 요약해 보자면.. Agile 프로젝트에 참여하는 구성원이라면, 자신의 전문 분야 외에 다른 기술 혹은 프로그래밍 언어, UI/UX디자인 원리를 이해하고 있어야 합니다. 그래야 다른 역할을 갖고 있는 구성원과의 소통이 원활해 지겠죠? 더불어 구성원은 자기 자신의 업무, 책임에만 머무르는 것이 아니라 다른 팀원들의 업무 나아가 티 전체의 지향점에 대한 호기심을 바탕으로 자기가 도울 수 있는 일을 찾아 역량과 힘을 보태는 솔선수범의 자세를 가져야 합니다. 이를 통해 Agile 구성원은 궁극적으로 언제나 최고의 품질에 다가서고자 노력하는 자세로 자기 자신만의 성취보다는 팀 전체의 성취를 중요 시 해야 합니다. 글을 읽다보니 무언가를 깨우쳐 개인의 욕구와 번뇌를 벗어나 대중을 우선하는 ‘깨달은 자’의 모습이 떠 오르긴 하네요;;;

하지만 위의 글에서 강조하고자 하는 바는 우리 모두 그 ‘깨달은 자’가 되자는 것이 아닌 적어도 다른 팀원과 팀을 존중하고 소통하고자 하는 노력과 마음가짐을 가져야 한다는 점입니다. 여기에 개인의 역량이 더해진다면 더할 나위가 없겠죠??

Agile 프로젝트가 성공하려면!

지금까지 Agile 프로젝트에 참여하는 사람, 특히 개발자가 갖춰야할 것들에 대해 알아봤습니다. 물론 Agile 프로젝트 진행이 순전히 개발자들의 퍼포먼스에 좌우되는 것은 아닙니다. PM과 프로젝트 Owner, 그리고 SM과 PO 역시 Agile 프로젝트에서 빠져서는 안될, 역할을 등한시해서는 안될 핵심 플레이어입니다. 이번 포스팅에서는 다만, Agile 프로젝트에 가장 많은 수가 참여하는 그룹인 개발자들에 포커스를 맞추어 그들이 갖추고 있어야 하는 기본적인 역량을 논의해 보았습니다. 그렇다 하더라도 수평성과 투명성에 기반한 Agile 프로젝트 조직의 근간을 이루고 프로젝트의 진행에 가장 큰 영향을 미치는 그룹 역시 개발자들임을 부인할 수 없을 것입니다. 그런 의미에서 Agile 프로젝트가 성공을 향해 나아가려면, 다른 역할 못지않게 개발자들의 역량과 마음가짐들이 지대한 영향을 미친다는 점에서 본 포스팅의 의의를 부여하고 싶습니다.

Agile 프로젝트는 수행하는 사람들에 달려있다고 해도 지나치지 않습니다. 그리고 그 사람들 중 대다수는 개발자입니다. Agile 프로젝트는 우선 PM, SM, Project Owner 및 PO들이 개발자가 뛰놀 수 있는 환경을 만들어줘야 하는 것도 중요하지만, 개발자 스스로도 그 환경에서 더 잘 뛰면서 퍼포먼스를 발휘할 수 있도록 준비해야겠습니다. 마치 프로젝트가 인프라와 소프트웨어의 결합인 것 처럼 말이죠. 이번 포스팅은 이것으로 마무리하고 관련된 의견이나 지적하실 사항이 있다면 언제나 그랬듯이 아래 댓글로 남겨주세요 ^^

출처 workfront 공식 블로그 및 Agile Manifesto 홈페이지