Skip to content

Latest commit

 

History

History
107 lines (56 loc) · 5.23 KB

Chapter23.md

File metadata and controls

107 lines (56 loc) · 5.23 KB

23. 협상과 리더십 스킬

협상과 리더십은 습득하기 어려운 스킬이다.

유능한 아키텍트가 되려면 오랜 기간에 걸쳐 학습, 실습, 그리고 산 지식을 체득해야 한다.

23.1 협상과 조정

이 능력이 중요한 이유는 소프트웨어 아키텍트가 내리는 거의 모든 결정이 곳곳에선 거친 도전과 반대에 부딪히기 때문이다.

협상은 소프트웨어 아키텍트가 지녀야 할 가장 중요한 스킬 중 하나이다.

유능한 소프트웨어 아키텍트는 사내 정치를 잘 이해하고 강력한 협상 및 조정 능력을 발휘하며, 모든 이해관계자들이 동의하는 해법을 찾는 과정에서 맞닥뜨리는 숱한 의견 차이를 극복할 것이다.

23.2 소프트웨어 아키텍트는 리더다

소프트웨어 아키텍트는 개발팀을 이끌고 아키텍처를 구현하는 리더이다.

유능한 아키텍트가 되는 50% 정도는 효과적인 대인 관계 스킬, 조정 능력, 리더십에 있다고 생각합니다.

이 절에서는 유능한 소프트웨어 아키텍트로서 개발팀을 이끌어가는 데 기억해야 할 몇 가지 중요한 리더십 스킬을 소개한다.

23.2.1 아키텍처 4C

개발자는 나방이 불빛에 끌리듯 복잡한 것에 이끌린다. 결과는 대부분 똑같다.

우발성 복잡성을 방지하는 가장 좋은 방법은 아키텍처 4C를 따르는 것이다.

커뮤니케이션, 협동, 명료함, 간결함을 실천하는 것

23.2.2 실용적으로 행동하되 비전을 가져라

유능한 소프트웨어 아키텍트는 실용적이면서 동시에 비전을 가져야 한다.

이것은 말보다 실천이 쉽지 않아 매우 높은 수준의 성숙도와 꾸준한 연습을 필요로 한다.

비전을 가진다: 상상력이나 지혜를 발휘하여 미래를 떠올리거나 계획한다.

즉, 비전을 가진다는 것은 어떤 문제를 전략적 사고 방식으로 접근한다는 뜻이다.

실용적이다: 이론적으로만 생각하지 않고 실제에 근거한 방식으로, 분별 있게, 현실적으로 일처리한다.

아키텍트는 비전을 가져야 하지만 현실적인 솔루션을 적용해야 한다.

  • 예산 제약 등의 비용 요소
  • 시간 제약 등의 시간 요소
  • 개발팀의 스킬 세트 및 수준
  • 아키텍처 결정에 관한 트레이드오프와 의미
  • 제안된 아키텍처 설계 또는 솔루션의 기술적인 한계

아키텍트로서 존중받으려면 실용적인 것과 비전을 가지는 것의 균형을 잘 맞추는 게 중요하다.

비즈니스 이해관계자는 갖가지 제약 조건에 적합한, 비전이 가미된 솔루션을 높이 평가하고, 개발자는 구현 관점에서 솔루션이 실용적이라는 사실에 더 후한 점수를 줄 것이다.

23.2.3 모법을 보여 팀을 리드하라

계급이 아닌 모법을 보여 리드하라

사람들을 이끌 때 계급과 직책은 별로 의미가 없다.

문제가 무엇이든지 결국 사람이 문제

기본적으로 존경심을 자아내고 팀을 이끌어 가는 것은 인간 관계 기술이다.

"~해야합니다.", "당신이 해야할 일은 ~"식의 말투는 자신의 의견을 강요하는 것으로 협업 자체를 중단 시켜버린다.

사실 이건 협업이 아니라 일방적인 통보일뿐이다.

"~를 고려해보신적 있나요?", "~는 어떨까요?"같은 표현에 주목한다.

질문을 던짐으로 개발자나 클라이언트에게 제어권을 내주고 아키텍트와 개발자가 함께 솔루션을 만들어가는 협업 대화가 이어진다.

이런 분위기를 조성하려면 구사하는 어법이 매우매우 중요하다.

아키텍트와 개발팀의 상호 존중 및 건전한 관계를 형성하는 또 다른 기술은 이름을 부르는 것이다.

이름을 부르며 악수를 하면서 눈을 맞추는 것은 기본적인 신뢰를 쌓는 방법이다.

브라운 백 미팅

22.3 개발팀과의 융합

아키텍트의 캘린더는 대부분 회의로 가득 차 있다.

그렇다면 언제 개발팀과 만나 협의하고 안내하고, 멘토링을 해야할까?

안타깝지만 IT세계에서 회의는 필요악이다. 회의는 항상, 그리고 자주 일어나기 마련이다.

유능한 소프트웨어 아키텍트로서 성공하는 핵심 포인트 중 하나는, 개발팀에 더 많은 시간을 할애하는 것이다.

회의 시간을 스스로 제어하여 시간을 낭비하지말고 개발팀과 시간을 보내야 한다.

마치며

협상과 리더십 팁은 소프트웨어 아키텍트가 개발팀과 그 밖의 이해관계자들과 더 나은 협력 관계를 구축하는 데 큰 도움이 될 것이다.

유능한 소프트웨어 아키텍트가 되려면 반드시 갖추어야 할 필요 기술이자, 효과적인 리더가 되는 첫 여정을 시작하기 좋은 팁이다.

성공의 공식에서 가장 중요한 한 가지 성분은 다른 사람들과 잘 지내는 방법을 아는 것이다.

느낀점

마찬가지로 실리콘 밸리의 팀장들의 의사소통 방법이라든지 리더십에 관한 내용이 많았다.

논의사항

자신만의 신뢰관계를 형성하기 위한 스킬이 있나요?