IT 관리 / 개발자 / 기업 문화

성공적인 소프트웨어 개발 관리를 위한 7가지 조언

Isaac Sacolick | InfoWorld 2022.03.04
필자는 최근 ‘하이브리드 근무 체제 속 전문 개발자 채용 및 고용 유지를 위한 최선의 방법 4가지’에서 의사소통 개선, 다양성 추구, 워라밸 지원과 같은 다양한 조언을 했다. 조직의 리더는 팀과의 소통을 늘리면서 개인이 최선을 다할 수 있도록 권한을 부여하고, 신뢰해야 한다. 
 
ⓒ Getty Images Bank

이런 방법은 중요한 리더십 목표이지만, 소프트웨어 개발자와 딜리버리 담당자, 그리고 애자일팀 사이의 일상적인 상호작용에서는 적용하기 어려울 수 있다. 필자는 여러 전문가에게 개발 관리자, 팀 책임자, 데브옵스(DevOps) 책임자, 데이터 사이언티스트 매니저를 위한 조언을 구했다. 마이크로매니지먼트(micromanagement) 없이 소통과 생산성을 높일 수 있는 방법을 7가지로 정리했다.


목표를 전달하고 공감을 얻어라

소프트웨어 개발업체 업레벨(Uplevel) CTO 라브스 카우르는 개발 관리자가 항상 릴리즈나 스프린트마다 더 많은 기능을 제공해야 한다는 압박을 받고 있음을 인지했다. 카우르는 “동기 부여와 동감의 균형을 맞추고 인간적인 유대감을 형성하라. 엔지니어링 관리자는 목표를 설정하고 개방적인 의사소통을 하는 것처럼 다양한 방식으로 팀원을 지원할 수 있지만, 무엇보다 가장 영향력 있는 행동은 ‘공감’이다”라고 말했다.

공감하는 리더십은 코로나19 팬데믹으로 인해 주목받고 있다. 카우르는 “지난 2년 동안 우리의 개인적인 삶과 직장 생활이 얽히게 됐고, 팀원 모두에게 공감이 필요한 문제가 있음을 이해하는 것이 관리자로서 중요하다. 인간적인 유대감이 없으면 팀원은 고립감과 불만을 느끼고 결국 회사를 떠난다”라고 조언했다.


스트레스로 인한 개발자의 번아웃을 방지하라

공감에서 한 걸음 더 나아가기 위해서는 소프트웨어 개발 관리자가 팀원의 ‘번아웃’ 증상을 인지해야 한다. 생산성 저하나 동료에 대한 냉소적인 반응 증가, 회사와의 거리감이 대표적인 번아웃 징후다.

기능 플래그 관리 솔루션 업체 런치다클리(LaunchDarkly)의 개발 마케팅 관리자 던 파지크는 개발팀이 데브옵스 툴과 관행을 활용해 스트레스를 줄일 수 있다고 조언했다다. 런치다클리의 최근 조사에 따르면, 기능 플래그 같은 프로세스를 사용하지 않는 소프트웨어 개발 전문가 가운데 91%가 배포 과정에서 스트레스를 받는 것으로 나타났다. 파지크는 “관리자는 카오스 테스트나 관측가능성(observability), 기능 플래그와 같은 프로세스로 빌드를 개선하는 방법으로 팀원의 스트레스를 없애고 번아웃을 방지하는 방법을 살펴봐야 한다”라고 말했다.


솔루션을 연구하는 지략가를 확보하라

관리자는 소프트웨어 개발자에게 코드를 처음부터 다시 짜느라 시간 낭비를 할 필요가 없다는 사실을 상기시켜야 한다. 개발자는 SaaS(Software-as-a-Service), 오픈소스, 클라우드 서비스, 로우코드 플랫폼과 같은 다양한 솔루션을 활용할 수 있다.

애플리케이션 자동화 테스트 업체 소스 랩스(Sauce Labs)의 기술 전략 부사장 마커스 머렐은 개발팀을 관리할 때는 솔루션을 찾는 사람을 확보하는 것이 중요하고 말했다. 머렐은 “최고의 알고리즘을 만들 수 있는 똑똑한 사람이 필요할 때가 있다. 하지만 어려운 문제에 직면했을 때 ‘나는 처음부터 혼자서 개발할 수 있어’라고 말하는 사람보다 라이브러리나 기존 툴에서 답을 찾는 사람이 필요할 때가 더 많다”라고 덧붙였다.


코칭 없이 팀원의 스킬이 개선될 것이라고 기대하지 마라

소프트웨어 개발 관리자는 코딩 시 각 개발자의 활동, 표준 준수, 스킬 개선 경로를 검토하는 데 중요한 역할을 한다. 소프트웨어 개발업체 데브그래프(DevGraph)의 CPO 라비 두둑쿠루는 “코칭은 개발자의 스킬을 개선할 뿐 아니라 시간과 비용을 절약할 수 있다”라고 말했다.

두둑쿠루는 “개발 관리자는 코드를 분석해 특정 오류를 찾고 개발자와 협력해 코딩 패턴을 변경하고, 비용이 많이 발생하는 실수를 방지해야 한다. 코칭을 통해 개발자는 새로운 스킬을 얻을 수 있으며, 코드가 깔끔해져 QA 및 테스트 비용과 기술 부채가 감소한다”라고 설명했다. 


세부적인 기술을 학습하라

소프트웨어 개발에 있어서 중요한 것은 코딩만이 아니다. 개발 관리자는 클라우드 아키텍처, 배포 자동화, 데이터 운영, 머신러닝 모델의 개발 주기 관리와 같이 기술적인 세부사항에도 능통해야 한다. 빅데이터 분석 솔루션 업체 나임(KNIME) CEO 마이클 베르톨트는 “관리자는 ML옵스(MLops), 모델옵스(Modelops), 데이터옵스(Dataops), 데브옵스, X옵스(Xops)의 미묘한 차이를 이해해야 한다”라고 강조했다.

특히 데이터옵스와 머신러닝 모델에 익숙해야 한다. 베르톨트는 “데이터 사전 처리는 프로덕션 절차의 일환이며, 프로덕션 환경에서의 모델 모니터링은 정적이며 반응이 없을 때가 많은데, 개발자는 2가지 요소를 간과하기 쉽다”라고 말했다. 

최근 연구에 따르면, 머신러닝 모델의 90%는 프로덕션 단계에 이르지 못하는 것으로 조사됐다. 따라서 소프트웨어 개발 관리자는 머신러닝 모델에 데브옵스 사고방식을 적용해야 한다. 베르톨트는 “데이터 과학은 잘 포장한 모델을 벽에 던지는 것 이상이다”라고 덧붙였다. 


모든 것을 혼자 결정하지 마라

개발자가 운영 및 비즈니스 맥락을 이해하도록 돕는 것은 개발팀에 중요하다. 때로는 개발 관리자가 개발자의 작업 시간을 지키고 방해를 최소화해야 하지만, 개발자가 직접 문제에 직면하면 중요한 교훈을 배우는 경우가 많다. 

먼데이닷컴(Monday.com)의 먼데이 앱(Monday Apps) 수석 팀 책임자 블라드 미스테츠키는 개발자가 상충점을 더욱 잘 이해할 수 있도록 소프트웨어 개발 관리자가 개발자를 의사결정에 참여시켜야 한다고 조언했다. 미스테츠키는 “의사결정 프로세스의 책임을 공유하고 팀이 실수로부터 배울 수 있는 환경을 마련하면 개발자가 자신의 업무에 큰 책임감을 느낀다. 관리자는 불확실한 느낌이 들 때도 투명성을 강화해 팀이 프로젝트의 전체적인 그림을 보고 있다는 느낌이 들도록 해야 한다”라고 말했다.


비즈니스 용어로 소통하라

프로젝트의 전체적인 그림을 이해하는 것은 개발자가 자신의 업무를 비즈니스 용어와 지표로 논의하는 데 도움이 된다. 스타버스트 데이터(Starburst Data)의 엔지니어링 책임자 콜린 타토우는 “제품의 ARR(Annual Recurring Revenue)과 매출, 또는 OPEX와 CAPEX와 같은 개념을 이해하면 엔지니어가 조직 내에서 이루어지는 더 큰 결정을 이해하는 데 도움이 된다”라고 설명했다.

또한 타토우는 “책임자는 로드맵과 경력 경로 측면에서 과도하게 소통하는 실수를 범한다. 많은 사람이 앞으로 어떤 일이 일어날지, 다음에는 어떤 작업을 할 것인지 알고 싶어 한다”라고 덧붙였다.

마지막 조언은 양방향 권고사항이다. 개발자가 미래를 알고 싶어 듯이 비즈니스 이해관계자도 다음 릴리즈의 개선사항과 장기적인 로드맵을 알기를 원한다. 필자의 관점에서 볼 때, 개발자가 애자일 방식으로 추정하고, 솔루션에서 협업하며, 스프린트 업무에 집중하고, 신뢰할 수 있는 릴리즈를 제공해야 하는 필요성을 이해하는 것은 개발 관리자에 달렸다. 개발 관리자는 조직의 원칙과 모범 협업 사례 사이에서 균형을 맞추기 위해 노력해야 한다. 
editor@itworld.co.kr

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.