본문 바로가기

Dev/TIP 팁

[Book] 함께 자라기 | 애자일로 가는길 | 개인적인 성장과 협업을 위한 애자일 방법론 적용기

728x90

 

1. 성장을 위한 '자라기'

  • 기다리지 말고 뛰어들어라
    • 문제를 빠르게 이해하고 뛰어들어라!
    • 문제를 이해하는데 너무 많은 시간을 쓰기보다 일단 뛰어들어서 파악해보는 것이 좋다
    • 완벽하게 환경이 갖추어질 때까지 기다리지 말고 뛰어들어라
    • '빠르게 실패하기'의 주요 메세지와도 일맥상통하는 바가 있음

 

  • 경력과 실력은 비례하지 않는다! 꾸준히 자기계발을 해라!
    • 자기계발은 나를 복리로 성장하게 한다
    • 어색하고 새로운 것을 배우면서 '잘하기'보다는 '자라기'를 선택해라 (51p)
    • 그렇다면 '자라기'를 위해서는 무엇을 해야할까!
      - Do! 이미 갖고 있는 것을 활용해라
      - Do! 배우기 힘들수록 살아남는다! (소프트웨어 개발자 vs 컴퓨터 프로그래머 50p)
      - Do! 회고와 반성을 통해 자신을 개선하는 프로세스에 대해 생각하라
      - Do! 적절한 시간 내에 피드백을 자주 받아라
      - Do! 자신의 능력을 높여주는 도구를 점진적으로 만들어라

 

  • 지루하거나 어려울 때는 어떡할까?
    • 지루할 때: 실력을 낮춘다 or 난이도를 높인다
    • 불안할 때: 실력을 높인다 or 난이도를 낮춘다
    • 메타인지를 토대로 상황을 파악하여 적절히 사용하는 것이 좋다 (65p)

 

  • 전문가를 만났을 때, 그에게 좋은 정보를 얻어내는 법
    • 전문가에게 전문성을 뽑아내기 위해서는 질문의 구체성과 질문 대상이 중요하다 (86p)
    • 질문은 최대한 구체적이게 하고, 응답자의 경험이 기반이 되도록 설명하게 해라
    • 참고) 전문가는 도메인 지식 + 사회적 자본 + 사회적 기술 모든 것이 삼위일체가 되어야 한다 (단순히 경력이 전문성이 아님)
      -> 좋은 개발자들은 좋은 소프트 스킬과 좋은 개발자 동료들이 있다!

 

  • (전문가의 정보 얻어내기) 프로그래밍 언어를 배우기의 달인
    • 튜토리얼을 읽을 때 무엇을 만들지 생각하고 읽는다 (83p)
    • 표준 라이브러리 소스 코드를 읽는다
    • 다른 사람의 코드에 내가 필요한 기능을 추가한다 

 

  • 실수는 피해가라? 관리하라!
    • 실수는 피해가거나 예방하는 것이 아니다! 피해가거나 예방함으로써 실수를 겪지 않게 할 수록 실수의 영향력이 커지게 된다 (90p)
    • 따라서 잦게 실수를 하더라도, 이를 잘 관리하는 것이 중요하다
    • 또한 각 실수의 케이스 스터디를 통해서 더욱 잘 배울 수 있다.

 

 

2. 협업을 위한 '함께'

  • 복수 공유 >>>>> 최고 공유 > 하나 공유
    • 복수 공유는 신뢰도를 올리고, 이는 커뮤니케이션의 효율과 생산성을 높인다! (132p)
    • 최고 공유와 하나 공유는 오히려 신뢰도를 낮추는 모습을 보인다 

 

  • 객관성의 주관성!
    • 새로운 것을 도입하고 싶다?!
    • 이를 위해서는 논리적이고 객관적으로 팀원들을 설득하기 전에, 할 일이 있다
    • 바로 팀원들과 친해져서 새로운 것을 도입하기에 좋은 환경을 만드는 것!
    • 감정적으로 어색하거나 불편하다면 팀원이 제안하는 새로운 것을 쉽게 받아들이기 어렵다 (139p)

 

  • 개발자도 좋은 코칭을 할 줄 알아야 한다.
    • 사수 관계 등에 대해서도 코칭할 일이 생김! 따라서 개발자도 좋은 코칭을 할 줄 알아야 한다
    • 좋은 코칭이란? 스스로 질문을 이끌어내고 그에 대한 답을 할 수 있도록 유도하며, 이를 주기적으로 실천해줄 수 있게 도와주는 정도 (147p)

 

  • 완벽하게 설계된 탑다운 방식은 전문가의 방식이 아니다!
    • 좋은 전문가와 좋은 팀은 반복적인 상호작용과 수정을 통해 더 나은 결과물을 만들어낸다! (156p)
    • 즉, 한번에 제대로 하려고 하기보다는 빠른 도전과 실패 및 수정과 재도전이 중요하다는 것!
    • 그와 동시에 좋은 팀은 그냥 일을 같이 하는 것이 아닌, 각 멤버의 작업을 조율하고 통합하는 과정에서 팀이 드러놓고 같이 함께 함

 

  • 새로운 것의 도입?! 학습 속도를 높이기 위해서는 환경이 중요하다!
    • 새로운 것을 도입하기 위해서는 '새로운 것'에 대한 학습을 해야함!
    • 그리고 이를 학습하는 속도를 높이기 위해서는 기술적 탁월함보다 적극적인 학습 환경을 만들어주는 리더(팀장, PM 등)가 필요함
    • 그렇다면 적극적인 학습환경은 무엇인가?
      Q. 다른 직군과도 협업이 가능한가?
      Q. 새롭고 애매모호한 상황을 즐기는가?
      Q. 자기보다 지위가 높은 사람에게도 의견을 제안할 수 있는가?
      Q. 기술적 도전이 아닌 함께 일하는 새로운 방법으로써 조직적 도전으로 받아들일 수 있는가?

 

  • 각자하는 병렬적 작업 분배보다는 함께하는 직렬적 작업 분배!
    • 많은 수의 일을 병렬적으로 작업 분배 하는 것은 확률의 '곱하기'이다
    • 서로의 일이 나뉘어질 때, 공통분모가 있는 일을 각자 하느라 시간을 낭비하게 될 수도 있다
    • 따라서 적은 수의 일을 여러명이서 함께 공유하면서 풀도록 하면 관심사의 섞임을 통해 빠르게 문제 풀이 및 학습 가능! 다 풀면 다시 적은 수의 일을 주는 것이 협력과 학습, 속도 측면에서 좋다! (186p)

 

 

3. 함께 자라기를 위한 '애자일'

  • 애자일, 애자일하는데, 애자일이 무엇이고, 왜 필요한가?
    • 애자일은 불확실성이 높은 프로젝트를 다루기 위한 방법론이다
    • 좁은 범위에서는 SW 개발을 의미하겠지만, 사실상 일하는 스타일, 삶을 사는 방식까지 확장해서 적용해볼 수 있다
    • 애자일의 핵심: '고객'에게 '매일' '가치'를 '전하라' (198p)

 

  • 애자일 도입 성공요인 분석
    • 애자일을 도입해서 성공하는 조직들이 국내에 있다 (210p)
    • 애자일 실천법을 잘 실행하면 성공률도 높아질 수 있다
    • 실천법중에는 비교적 성공과 직결되는 것이 존재한다 (고객참여, 리팩터링, 코딩 후 자동화 단위 테스트 붙이기, 코드 공유 등)
    • 애자일 성숙도가 낮은 조직일 수록 고객 참여를 하지 않으면 프로젝트 성공이 어렵다
    • 무섭고 두렵지만 중요한 일이라면 계속 미루지 마라
    • 뛰어난 애자일 코치가 있는 것이 애자일 도입 성공에 핵심적이다.
    • 누구나 애자일 코치가 될 수 있으며, 애자일 코치로서의 가장 중요한 특징 '함께 자라기'이다
      (평균보다 좋은 성과를 내는 S/W 엔지니어들은 주니어 개발자들에게 '다른사람과의 협력'을 강조했다고 한다)

 

  • 새 방법론을 도입하는 것이 좋을까? 사람이 더 중요하다!
    • 소프트웨어 개발은 높은 불확실성과 복잡성을 보이는 분야이다.
    • 비슷한 분야로는 상담이 있는데, 이 분야에서는 '치료자 효과'라는 것이 있다
    • 정신 상담분야에서 우울증 치료 분야의 상위 1/3 의사가 설탕물을 주고 상담, 하위 1/3 의사가 항우울제를 주고 상담했을 때, 전자의 경우가 더 좋은 치료효과를 보였음
    • 이런 치료자 효과를 제거하기 위해 매뉴얼을 구축해보았으나, 오히려 매뉴얼에 의존적이게 되어서 상담효과가 떨어짐
    • 불확실성과 복잡성이 높을수록 방법론, 약(도구)보다는 사람, 어떤 사람이 참여하는지가 중요하다는 것! 
      -> 이는 좋은 동료들과의 협업을 중요시여기고 강조하는 좋은 엔지니어들의 조언과도 이어짐
728x90