[함께 자라기] 3부 애자일
[함께 자라기] 3부 애자일

[함께 자라기] 3부 애자일

Tags
김창준
애자일
인사이트
성장
생각
Published
March 23, 2024
Author
lkdcode

애자일

'애자일 소프트웨어 개발 방법론'은 소프트웨어를 개발하는 한 가지 스타일이다. 애자일은 불확실성이 높은 일에 대해서는 계획을 정교하게 꼼꼼하게 만드는 것이 불가능하다고 본다. 애자일은 불확실성이 클 때 우리가 어떻게 해야 하는지를 고민한 결과물이다. 불확실성을 다루는 방법으로 좀 더 짧은 주기로 더 일찍부터 피드백을 받고, 더 다양한 사람으로부터 더 자주 그리고 더 일찍 피드백을 받는 것이다. 확습과 협력이 애자일이 불확실성을 다루는 핵심적인 구동원리다.
우리가 이동할 때 목표점의 위치가 자주 바뀌거나 우리 위치가 자주 바뀌거나 하는 상황으로 비유한다면, 그럴수록 우리는 가다가 멈춰 서서 주위를 둘러보고 목표점과 우리 위치를 확인하는 것 같은 피드백을 통해 방향을 재조정하는 일을 자주 해야 해야 한다.
불확실성이 클수록 리스크가 높고, 불확실성이 낮을수록 리스크가 적다. '또는' 조건과 '그리고' 조건을 유리한 방향으로 설정하는 것을 협력이 가능케한다.
학습과 협력은 불확실성이 큰 상황에서 좋은 대응전략이 된다. 애자일의 핵심 구동원리가 학습과 협력, 즉 함께(협력) 자라기(학습)이다.

애자일의 씨앗

고객에게 매일 가치를 전하라.
  • 고객에게
    • 우리의 진짜 고객은 누구인가?
  • 매일
    • 어떻게 점진적으로 가치를 전할 것인가?
    • 어떻게 보다 일찍, 그리고 보다 자주 가치를 전할 것인가?
  • 가치를
    • 무엇이 가치인가?
    • 지금 우리가 하고 있는 일이 정말 가치를 만드는 일인가?
    • 지금 가장 높은 가치는 무엇인가?
    • 비슷한 수준의 가치를 더 값싸게 전달하는 방법은?
  • 전하라
    • 가치를 우리가 갖고 있지 않고 고객에게 정말 전달하고 있는가?
    • 고객이 정말 가치를 얻고 있는가?
진짜 가치를 전달할 때 우리는 진정한 피드백을 받을 수 있다. "이런저런 기능이 있다면 어떻겠어요? 구입하겠어요?"에 대한 대답은 그리 믿을 만하지 않다.
가치를 전하면 협력이 쉽다. 신뢰가 쌓이고 신뢰가 있을 경우 협력의 비용이 낮아지고 원활해진다. 그리고 이는 학습과도 깊이 연결되며 가치를 전달하게 되면 의사소통이 명확하고 구체적이게 된다.

애자일 도입 성공 요인 분석

애자일의 성숙도가 낮아도 프로젝트 성공에 긍정적인 영향을 미친다. 성숙도와 성공도의 상관성은 중간 정도이지만, 성숙도를 낮게 평가한 조직이 성공도도 무조건 낮은 것은 아니다. 조직이 애자일을 성숙하게 실천하지 못하더라도 긍정적인 효과를 볼 수 있다.
애자일 실천법 중 성공도 회귀분석
  • 고객 참여 (0.77)
  • 리팩터링 (0.42)
  • 코딩 후 자동화 테스트 붙이기 (0.38)
  • 코드 공유 (0.37)

애자일 도입에 대한 무서운 사실

애자일 도입이 프로젝트 성공에 도움이 되지 않았다고 생각하는 조직의 경우 '고객 참여'를 실천하지 않았다. 많은 조직들이 고객 참여와 코드 공유를 뒤로 미룬다. 두 실천법은 사람을 설득해야하기 때문이다. 고객(이해관계자)을 설득하거나, 개발자를 설득하거나, 대면과 충돌이 두렵고 무서운 것이다.
하지만 이런 것들을 제대로 하지 않으면 프로젝트를 성공하기가 더 힘들어진다. 중요한 건 어렵고 두렵지만 중요한 것을 '얼마나' 미루느냐 이다. 초보팀들은 프로젝트가 접히기 직전까지 미룬다. 오손도손, 영차영차, 우리끼리 재밌게 하자 그러다가 그들만의, 나만의 잔치로 끝이 난다.
우리는 알고 있다. 어렵고 두려울수록 리스크가 크고 행해야 함을. 두려워도 중요하다면 시도해봐야 하지 않겠는가. 용기를 갖고 직면해야 한다. 신뢰를 바탕으로 두려움을 공유해 분담하고 돌아올 리스크는 '그리고' 조건으로 곱이 되도록 해야 한다.

성숙도가 낮다면 고객 참여는 필수

애자일 성숙도가 낮다면 고객 참여의 성공도 회귀분석은 0.94에 달한다. '고객 참여' 없이 다른 것들이랑 씨름하는 것은 두렵고 중요한 것에 대한 회피일 수 있다.
성숙도가 높은 조직은 '짧은 반복 개발 주기'가 성공도가 제일 높다. 짧은 반복 개발 주기 (0.48), 고객 참여 (0.36), 코드 공유 (0.33)이다..
'고객 참여'와 '짧은 개발 주기'가 프로젝트 성공의 가장 핵심이며, '함께' 그리고 '자라기'와 연결 지을 수 있다. 애자일을 소프트웨어 개발 프로젝트에 적용할 때 고객 참여와 짧은 개발 주기를 하면 함께 자라기가 되는 것이고, 이것이 불확실성하에서 우리가 더 현명해지도록 도와주는 것이다.
상황이 어렵고 여건이 안 된다면, 프로젝트의 성패를 좌우하는 사람과 최대한 가까운 사람을 참여시키려고 우리가 계속 노력하는 것이다.
성공하는 조직들에는 항상 뛰어난 애자일 코치가 있었다.
  • 의사소통 스타일(팀원, 상사, 팀장과)
  • EQ 및 스트레스하에서의 행동
  • 리더십 및 코칭 스타일(동기부여 등)
  • 회고를 통한 개인적 학습 능력
  • 개인적 성장 의지, 성장 사고관, 자기효능감
  • 관찰 및 상황 파악(sensemaking) 능력
  • 일치적 행동(믿는 것을 행동에 옮기는 능력)
  • 기술적 능력(?)
성장 사고관: 내가 노력만 하면 뭐든지 더 잘할 수 있다고 믿는 것. 고정 사고관: 내 능력은 정해져 있다고 믿는 것.
내가 애자일 코치가 되어야지 결심하는 것이 가장 중요하다. 오로지 자신의 선택. 누구나 뛰어난 애자일 코치가 될 수 있다고 믿는다.
탁월한 s/w 엔지니어는 주어진 업무 외에도 관심을 갖는가 하는 점이 있다. 탁월한 엔지니어들은 프로젝트 전반에 대한 큰 그림을 가지려고 하고, 경영진에게 더 적극적인 태도로 다가가고, 다른 엔지니어들을 도와준다.
  1. 애자일을 도입해서 성공하는 조직들이 국내에 있다.
  1. 애자일 실천법을 잘 실행하면 성공률도 높아질 수 있다.(애자일을 한 지 얼마 되지 않더라도)
  1. 실천법 중에서 비교적 성공과 직결되는 것들이 존재한다. 고객 참여, 리팩터링, 코딩 후 자동화 단위 테스트 붙이기, 코드 공유 등이다.
  1. 애자일 성숙도가 낮은 조직일수록 고객 참여를 하지 않으면 프로젝트 성공이 어렵다.
  1. 무섭고 두렵지만 중요한 일이라면 계속 미루지 말라.
  1. 뛰어난 애자일 코치가 있는 것이 애자일 도입 성공에 핵심적이다.
  1. 뛰어난 애자일 코치는 함께 자란다.

당신의 조직에 새 방법론이 먹히지 않는 이유

설탕물을 받아먹더라도 뛰어난 의사한테 가는 경우에 항우울제보다 치료 효과가 더 높다. 어떤 기법을 사용하느냐는 통상 상담 결과의 분산에서 5% 이하만을 설명한다. 매뉴얼이 제공된 경우 치료의 효과 크기가 그렇지 않은 경우에 비해 절반밖에 되지 않는다. 매뉴얼이 말하고 있는 것보다 훨씬 더 많은 것을 상담사들이 할 수 있다. "우리는 말할 수 있는 것보다 더 많이 알고 있다.". 암묵지의 중요성을 강조한다.
이렇게 복잡한 분야일수록 어떤 특정 기법의 효과보다도 치료자 효과가 더 큰 영향을 미친다. 우리가 어떤 방법론을 쓰느냐는 문제보다도 누가 참여하는가가 훨씬 더 압도적으로 중요한 문제다. "나는 어떤 팀장인가", "나는 어떤 사람인가" 등 먼저 자문하고 생각하자.

애자일을 애자일스럽게 도입하기

개별 베트스 프랙티스가 아니라 어떤 실천법들이 생겨날 수 있는 문화적 풍토와 생성적 과정이 중요하다. 같은 씨앗이라도 심어진 환경에 따라 결과물이 다르다. 애자일은 불확실한 상황에 대한 접근법인데, 애자일을 도입할 때 확실성 위에서 진행하려고 한다면 문제가 된다.
이것은 거의 모든 종류의 방법론 도입에 적용된다. 방법론 도입은 태생적으로 불확실성이 높기 때문이다. 그럴 때 현명한 전략은 정해진 수순을 따르는 것이 아니라 곁에 있는 사람들과 함께 주변을 탐색하고 조금 나아가고 확인하고를 반복하면서 우리의 현 맥락에 맞는 좋은 전략들을 스스로 만들어 나가는 것이 아닐까싶다. 함께 자라기를 통해 불확실성을 이길 수 있다.