'성공적인 소프트웨어 개발 관리를 위한 7가지 조언' 1. 목표를 전달하고 공감을 얻어라 엔지니어링 관리자는 목표를 설정하고 개방적인 의사소통을 하는 등 다양한 방식으로 팀을 지원할 수 있지만,
'성공적인 소프트웨어 개발 관리를 위한 7가지 조언' 1. 목표를 전달하고 공감을 얻어라 엔지니어링 관리자는 목표를 설정하고 개방적인 의사소통을 하는 등 다양한 방식으로 팀을 지원할 수 있지만, 무엇보다 가장 영향력 있는 행동은 '공감'이다. 인간적 유대감이 없으면 팀원은 고립감과 불만을 느끼고 결국 회사를 떠난다. 2. 스트레스로 인한 개발자의 번아웃을 방지하라 공감에서 한 걸음 더 나아가기 위해서는 소프트웨어 개발 관리자가 팀원의 '번아웃' 증상을 인지해야 한다. 생산성 저하나 동료에 대한 냉소적인 반응의 증가, 회사와의 거리감이 대표적인 번아웃 징후이다. 3. 솔루션을 연구하는 지략가를 확보하라 최고의 알고리즘을 만들 수 있는 똑똑한 사람이 필요할 때가 있다. 하지만 어려운 문제에 직면했을 때, '나는 처음부터 혼자 개발할 수 있어'라고 말하는 사람보다 라이브러리나 기존 툴에서 답을 찾는 사람이 필요할 때가 더 많다. SaaS, 오픈소스, 클라우드 서비스, 로우코드 플랫폼과 같은 다양한 솔루션을 활용할 줄 아는 사람을 확보할 수 있어야 한다. 4. 코칭 없이 팀원의 스킬이 개선될 것이라고 기대하지 마라 소프트웨어 개발 관리자는 코딩 시 각 개발자의 활동, 표준 준수, 스킬 개선 경로를 검토하는 데 중요한 역할을 한다. 코칭은 개발자의 스킬을 개선할 뿐 아니라 시간과 비용을 절약할 수 있다. 5. 세부적인 기술을 학습하라 개발 관리자는 클라우드 아키텍처, 배포 자동화, 데이터 운영, 머신러닝 모델의 개발 주기 관리와 같이 기술적인 세부사항에도 능통해야 한다. (ML옵스, 모델옵스, 데이터옵스, 데브옵스, X옵스의 미묘한 차이 이해) 6. 모든 것을 혼자 결정하지 마라 소프트웨어 개발 관리자는 개발자가 상충점을 잘 이해할 수 있도록 의사결정에 참여 시켜야 한다. 관리자는 불확실한 느낌이 들 때도 투명성을 강화해 팀이 프로젝트의 전체적인 그림을 보고 있다는 느낌이 들도록 해야 한다. 7. 비즈니스 용어로 소통하라 개발자가 미래를 알고 싶어 하 듯, 비즈니스 이해 관계자도 다음 릴리즈의 개선사항과 장기적인 로드맵을 알기를 원한다. 개발자가 애자일 방식으로 추정하고, 솔루션에서 협업하며, 스프린트 업무에 집중하고, 신뢰할 수 있는 릴리즈를 제공해야 하는 필요성을 이해하는 것은 개발 관리자에 달렸다. 개발 관리자는 조직의 원칙과 모범 협업 사례 사이에서 균형을 맞추기 위해 노력해야 한다. ㅡ 이 글의 요지는 성공적인 소프트웨어 개발 관리를 위해 '관리자'들에게 요구되는 역량이다. 그런데 안타까운 현실은 우리의 관리자들이 이런 권고 사항을 고려하여 팀을 운영할 수 있도록 그들 조차도 여유가 없다는 것이다. 그들 역시 관리자이면서 개발자이기 때문이다.