팀 만들기
시스템 기술 비전의 주요 책임자가 되는 것과 여러분이 그 비전을 실행하게 된다는 것은 기술의 결정에 관한 문제가 아닌 여러분과 그 일을 할 사람들에 관한 문제와 직결된다. 기술 리더의 역할은 사람들이 스스로 비전을 이해하도록 그들의 성장을 돕고, 비전을 결정하고 구현하는 데 적극적으로 참여할 수 있도록 만드는 것이다.
주위 사람들의 경력 성장을 도와주는 다양한 방법은 이 책의 범위를 벗어나지만 마이크로서비스 아키텍처와 관련 있는 단면도 존재한다. 거대한 모놀리식 시스템에서는 사람들이 성장하고 무엇인가를 소유할 기회가 거의 없다. 반면 마이크로서비스에서 우리는 독립적 수명주기를 가진 수 많은 자율적인 코드베이스를 가진다. 사람들이 더 많은 책무를 맡기 전에 개별 서비스의 소유권을 부여함으로써 그들을 성장시키는 것은 그들 자신의 경력 목표를 성취하도록 돕는 훌륭한 방법일 뿐만 아니라 다른 담당자들의 짐도 덜어준다.
필자는 훌륭한 소프트웨어는 훌륭한 사람에 의해 만들어지는 것이라고 굳게 믿고 있다. 만약 여러분이 이 방정식에서 기술적인 측면만 걱정한다면 전체 그림의 절반 이상을 놓치게 된다.
마치며
이 장을 요약하기 위해 진화적 아키텍트의 핵심 책무를 정리했다.
진화적 아키텍트란 끊임없는 갈등 조정 과정을 통해 이러한 위업이 달성된다는 것을 이해하는 사람이다. 외력은 항상 여러분을 이리저리 밀쳐내며, 그 흐름을 따라 어디로 표류하게 될지는 경험을 통해 알 수 있다. 우리를 변화시키는 이런 모든 힘에 대한 최악의 반응은 우리 생각이 더 뻣뻣해지고 융통성이 없어지는 것이다.
이 장의 많은 조언은 어떤 시스템 아키텍트에게나 적용될 수 있지만, 마이크로서비스는 우리에게 더 많은 의사 결정을 제공한다. 그러므로 이러한 모든 트레이드오프에서 균형을 잘 잡는 것이 중요하다.
다음 장에서는 마이크로서비스의 올바른 경계를 찾는 방법을 고민하고, 아키텍트의 역할과 관련한 몇 가지 새로운 인식을 다룰 것이다.
최신 콘텐츠