스테프 엔지니어의 세 기눙

스태프 엔지니어의 역할은 모호하며 가장 올바른 대답은 상황에 따라서 다르지만 이책의 필자가 생각하는 스태프엔지니어의 역할 중 가장 큰 3가지를 역할을 설명한다.

  • 빅 픽처 관점의 사고력 넓은 시야를 가지고 세부사항 보다는 상황을 이해하고 장기적인 관점에서 회사나 팀에 필요한게 무엇인지 생각한다.

  • 성공적인 프로젝트 실행력 프로젝트를 성공으로 이끌기 위해서 정치적 자본이나 영향력,기업문화의 변화를 이끌어 간다.

  • 조직 차원의 레벨업 기업 또는 업계 등의 본인이 할 수 있는 범위 내에서 엔지니어의 표준과 스킬 역량을 향상시켜야할 책임이 있으며 주변 팀원들의 멘토링 역할을 수행해야 한다.

스테프 엔지니어는 무엇인가?

스태프 엔지니어는 매니저가 아니라 리더

스태프 엔지니어는 리더의 역할을 맡는다. 회사는 엔지니어의 연봉이 오를수록, 기업에서는 당연히 좀 더 중요한 일을 하기를 기대한다. 스태프엔지니어라면 사업의 현실적인 면에서 바라보고 자신에게 주어진 프로젝트가 진행할 가치가 있는지도 판단해야 한다. 이러한 스태프 엔지니어는 주변 팀원과 원활한 협업과 의사소통을 하고 여러 부분을 조율하여 프로젝트를 성공으로 이끌어야 한다. 본인이 아무리 훌륭하다 할지라도 주변팀원과 이해관계자를 설득하지 못한다면 무용지물이다. 하지만 엔지니어는 매니저와는 다르다. 매니저는 팀원들의 성과를 관리하고 근태를 관리하지만 스태프 엔지니어는 주변 엔지니어들을 기술력을 키우는데 관여하고 그들의 성장을 위해 능력을 발휘한다. 이렇게 스태프 엔지니어는 매니저와는 다른 방식으로 팀에게 영향력을 행사한다.

스태프 엔지니어는 기술전문 엔지니어다

스태프 엔지니어는 전문화된 경험을 통해서 우수한 엔지니어링을 해야 한다. 스태프 엔지니어가 작성한 코드와 설계 리뷰가 직원들에게 좋은 가이드라인이 되어야 하며 이를 통해서 코드 베이스와 아키텍처가 더 나은 방향으로 개선되도록 기여해야 한다. 기술적 결정을 내릴때 이견이 발생한다면 절충점을 찾아서 다른 사람들이 이해할 수 있도록 도와야 한다. 필요할 경우 심도 있는 질문을 통해서 문제점을 파악하고 해결 방법을 도출해야 한다. 스태프 엔지니어는 코드의 양이 성과가 되는것이 아니다. 단순한 기술적인 이슈들은 주변 개발자들이 해결할 수 있도록 하고 스태프 엔지니어만이 할수 있는 설계와 문제해결에 집중해야 한다. 이러한 문제해결의 경험들은 주변 엔지니어들이 성장할 수 있는 발판을 만들 수 있다.

스태프 엔지니어는 자율성을 추구한다.

스태프 엔지니어라면 매니저가 세세한 업무 지시를 하지 않는다. 중요한 문제에 대해서 공유 할것이고 이것을 스스로 해결하는 것이 스태프 엔지니어의 가장 큰 역할이다. 스태프 엔지니어는 한정된 시간이 주어지고 그것을 효율적으로 활요하는것도 중요한 임무중에 하나이다. 또한 누군가 업무를 요청하면 업무의 우선순위, 도움 요청자와의 관계, 회사의 우선순위 등을 고려하여 자율적으로 결정해야 한다. 잘못된 문제가 있거나 급히 해결해야 하는 문제가 생겼을때 필요하다면 상사나 CEO를 설득해야 하며 그것을 위한 신뢰관계를 수립하는 것도 아주 중요한 책임이다. 이렇듯 자율성이라는 것은 언제나 책임을 수반한다.

스태프 엔지니어는 기술 방향성을 설정한다.

스태프 엔지니어는 기술 전문가로서 조직이 올바른 기술 방향을 설정하는 하고 있는지 확인하는 것이다. 조직의 프로덕트와 서비스에는 수많은 기술적 결정들이 있고 이러한 결정이 잘 이루어 질수 있도록 하고 결정의 결과를 기록되도록 해야 한다. 그리고 이러한 결정에 대해서 주변 팀원들이 잘 이해하고 동의하는지에 대해서고 확인해야 한다.

스태프 엔지니어는 의사소통의 달인이다.

스태프 엔지니어는 경력이 쌓일수록 원활한 의사소통 능력이 더 중요해 진다. 모든 업무는 다른사람에게 전달된 정보와 그들에게서 받은 정보를 기반으로 진행된다. 원활한 의사소통으로 다른 직원들의 이해도를 높일수록 업무를 훨씬 수월하게 진행할 수 있다.

  • 개발자를 넘어 기술리더로 가는길 발췌