많은 조직은 자체적인 팀이 모든 스프린트를 커밋하고 안정적인 애플리케이션 릴리스를 제공하도록 지원한다. 조직은 품질이 높고 결함은 적으며 안전하고 유지보수가 용이한 동시에 비즈니스 목표를 충족하고 기술 부채(technical debt)를 줄이는 코드를 기대한다. 여러 애자일 팀을 보유하고 표준과 자기 조직화 원칙 사이에 균형을 잡고자 하는 대규모 조직은 관리자와 주요 팀원들의 역할과 책임을 고려해야 한다.
이를 위해서는 소프트웨어 개발 관리자의 역할을 명확히 규정해야 한다. 애자일 개발에는 스크럼 마스터와 제품 소유자, 팀의 역할에 대한 구체적인 가이드라인은 있지만 대부분의 실행안과 프레임워크에서 소프트웨어 개발 관리자에 대한 내용은 거의 없다. 필자가 생각하는 소프트웨어 개발 관리자는 팀원들이 각자의 역할에서 뛰어난 성과를 거두도록 돕고, 표준 프로세스와 애자일 원칙 사이에서 균형을 잡고, 프레임워크와 모범사례를 기반으로 우수한 기술을 제공하는 역할을 수행한다.
애자일 소프트웨어 개발 관리자의 5가지 구체적인 책임은 다음과 같다.
1. 구현 측면의 타협에 대해 제품 소유자와 논의
기능과 사용자 스토리에는 ‘무엇을, 왜, 누구를 위해’가 정의되어야 한다. 그래야 팀이 요구사항과 수락 기준에 대한 이해를 공유할 수 있다. 많은 제품 소유자가 구현상의 세부사항을 포함해 사용자 스토리를 정의하지만, 이상적으로는 기능이나 스토리를 어떻게 구현해야 하는지에 대해 지나치게 지시적이면 안 된다.
기능 또는 스토리가 지나치게 지시적인 경우, 개발 팀은 구현 비용이 높거나 확장이 어려울 수도 있는 특정 구현에 갇히게 된다. 세부사항이 너무 부족한 경우에도 개발 팀이 최종 사용자 요구와 비즈니스 요구사항을 충족하는 최선의 구현 옵션을 이해하지 못할 수 있다.
요구사항이 지나치게 지시적인 경우, 소프트웨어 개발 관리자는 여러 가지 구현 옵션을 파악하고 이를 제품 소유자에게 설명해야 한다. 대부분 각 옵션마다 장점과 타협점이 있고, 토론을 거치면 더 나은 솔루션을 얻게 되는 경우가 많다.
또한 사용자 스토리가 제대로 정의되지 않은 경우 소프트웨어 개발 관리자는 스토리에 대한 팀의 커밋을 막고 제품 소유자와 필요한 세부사항의 수준에 대해 논의해야 한다.
2. 모범사례와 표준을 팀원이 이해할 수 있도록 전달
모범사례와 표준을 정의하고 공유하는 것은 설계자에게 어려운 일이지만 대규모 소프트웨어 조직에서 팀이 모범사례와 표준을 적절히 이해하고 활용하도록 하는 것은 상당히 벅찬 일이 될 수 있다.
경우에 따라 팀에는 표준에서 권장되는 방법과는 다른 방법을 원하는 전문가도 있고, 모범사례 또는 모범사례를 코딩에 적용하는 방법을 제대로 이해하지 못하는 경험이 부족한 개발자도 있다.
소프트웨어 개발 관리자는 각 팀원의 스킬과 사고방식을 이해해야 한다. 전체적인 관점에서 구현을 검토하고 어떤 모범사례와 표준을 적용할 수 있는지 파악해야 한다. 그런 다음 팀에 이를 전달하고, 질문 또는 과제를 설계자와 공유할 수 있다.
3. 혁신 및 기술 부채를 다루지 않는 백로그에 문제 제기
제품 소유자는 많은 이해관계자 및 고객과 협력해 제품 비전과 로드맵, 기능 우선순위를 결정한다. 제품 소유자는 자신이 선택한 우선순위로 더 많은 기능을 구현하고 더 많은 이해관계자를 만족시켜야 한다는 크나큰 부담에 직면한다.
이 부담은 기능은 넘쳐나면서 실험과 혁신, 그리고 더 중요한 기술 부채 해결을 위한 공간은 부족한, 균형이 맞지 않는 애자일 백로그로 이어지는 경우가 많다.
비즈니스를 위한 핵심 기능을 신속하게 제공해야 하는 일부 스프린트와 릴리스에서는 이 불균형이 필요한 경우도 있다 그러나 어느 시점이 되면 팀은 기능과 혁신, 기술 부채의 우선순위가 고르게 균형을 이룬 상태로 되돌아가야 한다.
애자일 백로그에 대한 대시보드를 개발하는 것은 우선순위를 더 투명하게 하는 방법 중 하나다. 일부 팀은 기술 부채를 관리하기 위한 부가적인 거버넌스 및 프로세스를 도입하기도 한다. 그러나 최전선에서 리더가 이 거버넌스를 적극적으로 추진하는 것이 무엇보다 중요하다.
소프트웨어 개발 관리자가 바로 그 사람이다. 소프트웨어 개발 관리자는 팀이 좌절감을 느끼고 기술 부채에 대처할 부가적인 시간이 필요한 시점을 감지할 수 있다. 또한 팀이 더 복잡한 솔루션을 구현하기 위해 애쓸 때와 실험과 혁신을 위한 시간이 필요할 때도 안다.
4. 정해진 일정에 따라 고품질 릴리스 제공
애자일 소프트웨어 개발 관리자의 가장 중요한 책임은 고품질의 릴리스가 일정에 맞게 제공되도록 보장하는 것이다. 실행 능력이 떨어지거나 불안정하고 비일관적이거나 품질 및 기한에 무책임한 팀과 스쿼드는 조직과 스스로의 일자리를 위험에 빠트린다.
이러한 문제의 증상이 발생할 때 원인을 파악하고 해결하는 것이 애자일 소프트웨어 개발 관리자가 할 일이다. 소프트웨어 개발 관리자와 대화를 해보면 많은 관리자는 이런 문제에 대한 다음과 같이 반응한다.
- 백로그에 복잡한 우선순위를 너무 많이 집어넣은 제품 소유자를 비난한다.
- 진행을 막거나 속도를 느리게 하는 다른 팀 또는 외부 종속성을 찾는다.
- 팀의 교육, 스킬 또는 지식 부족을 지적한다.
- 기술 부채, 표준의 부재 또는 새로운 아키텍처의 필요성을 지적한다.
- 테스트, CI/CD(지속적 통합/지속적 전달) 자동화, 기타 품질을 개선하거나 오버헤드를 줄이는 구현을 위한 투자의 추가 필요성을 언급한다.
대부분의 경우 앞의 모든 이유가 어느 정도는 적용되지만, 팀의 성과가 떨어질 때 경영진이 듣고자 하는 답은 아니다. 소프트웨어 개발 관리자는 어떤 조치를 취해야 하는지, 그리고 더 넓은 범위에서 자신이 통제할 수 있는 부분이 무엇인지를 고려해서 팀을 정상 궤도로 돌려놓아야 한다. 이를 위한 방법은 다음과 같다.
- 회고에서 문제를 논의해 팀이 문제를 인지하고 해결을 위해 협력하도록 한다.
- 잡히지 않고 프로덕션까지 빠져나간 결함에 대해 더 많은 데이터를 검토, 수집하고 요구사항을 식별하고 간극을 테스트한다.
- 스토리 수락 기준을 점검해 팀이 품질 기대치를 완전히 이해하도록 한다.
- 작업에 외부 팀의 의견이 필요할 때는 릴리스 및 스프린트 사이클의 조기에 계획해 전파한다.
- 팀이 정상 궤도로 복귀할 때까지 커밋 속도를 늦추고 범위를 좁힌다.
5. 다양한 사고와 문제 해결 유도
성공적인 애자일 팀은 팀으로 협업하고 함께 일하는 방법을 배운다. 스탠드업, 데모, 회고와 같은 절차는 팀이 다 같이 요구사항을 이해하고 솔루션을 추정하고 장애물을 치우고 프로세스를 개선하는 데 도움이 된다. 이런 절차는 협업의 토대를 만든다. 소프트웨어 개발 관리자는 모든 참가자로부터 아이디어와 능동적인 기여를 이끌어낼 방법을 정해야 한다.
팀원마다 성격과 전문성은 제각기 다르다. 내성적이고 대화 참여에 어려움을 느끼는 팀원도 있고, 분위기를 이끄는 외향적인 팀원도 있다. 같은 맥락에서 고참 개발자가 문제 해결 세션을 주도하고 더 고차원적인 작업을 맡는 사이, 신참 개발자는 자신의 아이디어를 표현하거나 자신의 성장에 필요한 작업을 맡는 데 어려움을 느낄 수 있다.
스크럼 마스터는 회의 중 적극적인 역할을 맡아 모든 팀원이 기여하도록 하고 다양한 사고방식을 독려해야 한다. 소프트웨어 개발 관리자는 여기서 한 걸음 더 나아가 팀이 하나의 팀으로 모두가 서로의 의견을 존중하고 아이디어를 공유하며 참여하고 학습하도록 해야 한다.
결국 이게 관리의 핵심이기도 하다. editor@itworld.co.kr
함께 보면 좋은 콘텐츠
Sponsored
Surfshark
“유료 VPN, 분명한 가치 있다” VPN 선택 가이드
ⓒ Surfshark VPN(가상 사설 네트워크, Virtual Private Network)은 인터넷 사용자에게 개인 정보 보호와 보안을 제공하는 중요한 도구로 널리 인정받고 있다. VPN은 공공 와이파이 환경에서도 데이터를 안전하게 전송할 수 있고, 개인 정보를 보호하는 데 도움을 준다. VPN 서비스의 수요가 증가하는 것도 같은 이유에서다. 동시에 유료와 무료 중 어떤 VPN을 선택해야 할지 많은 관심을 가지고 살펴보는 사용자가 많다. 가장 먼저 사용자의 관심을 끄는 것은 별도의 예산 부담이 없는 무료 VPN이지만, 그만큼의 한계도 있다. 무료 VPN, 정말 괜찮을까? 무료 VPN 서비스는 편리하고 경제적 부담도 없지만 고려할 점이 아예 없는 것은 아니다. 보안 우려 대부분의 무료 VPN 서비스는 유료 서비스에 비해 보안 수준이 낮을 수 있다. 일부 무료 VPN은 사용자 데이터를 수집해 광고주나 서드파티 업체에 판매하는 경우도 있다. 이러한 상황에서 개인 정보가 유출될 우려가 있다. 속도와 대역폭 제한 무료 VPN 서비스는 종종 속도와 대역폭에 제한을 생긴다. 따라서 사용자는 느린 인터넷 속도를 경험할 수 있으며, 높은 대역폭이 필요한 작업을 수행하는 데 제약을 받을 수 있다. 서비스 제한 무료 VPN 서비스는 종종 서버 위치가 적거나 특정 서비스 또는 웹사이트에 액세스하지 못하는 경우가 생긴다. 또한 사용자 수가 늘어나 서버 부하가 증가하면 서비스의 안정성이 저하될 수 있다. 광고 및 추적 위험 일부 무료 VPN은 광고를 삽입하거나 사용자의 온라인 활동을 추적하여 광고주에게 판매할 수 있다. 이 경우 사용자가 광고를 보아야 하거나 개인 정보를 노출해야 할 수도 있다. 제한된 기능 무료 VPN은 유료 버전에 비해 기능이 제한될 수 있다. 예를 들어, 특정 프로토콜이나 고급 보안 기능을 지원하지 않는 경우가 그렇다. 유료 VPN의 필요성 최근 유행하는 로맨스 스캠은 인터넷 사기의 일종으로, 온라인 데이트나 소셜 미디어를 통해 가짜 프로필을 만들어 상대를 속이는 행위다. 이러한 상황에서 VPN은 사용자가 안전한 연결을 유지하고 사기 행위를 방지하는 데 도움이 된다. VPN을 통해 사용자는 상대방의 신원을 확인하고 의심스러운 활동을 감지할 수 있다. 서프샤크 VPN은 구독 요금제 가입 후 7일간의 무료 체험을 제공하고 있다. ⓒ Surfshark 그 외에도 유료 VPN만의 강점을 적극 이용해야 하는 이유는 다음 3가지로 요약할 수 있다. 보안 강화 해외 여행객이 증가함에 따라 공공 와이파이를 사용하는 경우가 늘어나고 있다. 그러나 공공 와이파이는 보안이 취약해 개인 정보를 노출할 위험이 있다. 따라서 VPN을 사용하여 데이터를 암호화하고 개인 정보를 보호하는 것이 중요하다. 서프샤크 VPN은 사용자의 개인 정보를 안전하게 유지하고 해킹을 방지하는 데 유용하다. 개인정보 보호 인터넷 사용자의 검색 기록과 콘텐츠 소비 패턴은 플랫폼에 의해 추적될 수 있다. VPN을 사용하면 사용자의 IP 주소와 로그를 숨길 수 있으며, 개인 정보를 보호할 수 있다. 또한 VPN은 사용자의 위치를 숨기고 인터넷 활동을 익명으로 유지하는 데 도움이 된다. 지역 제한 해제 해외 여행 중에도 한국에서 송금이 필요한 경우가 생길 수 있다. 그러나 IP가 해외 주소이므로 은행 앱에 접근하는 것이 제한될 수 있다. VPN을 사용하면 지역 제한을 해제해 해외에서도 한국 인터넷 서비스를 이용할 수 있다. 따라서 해외에서도 안전하고 편리하게 인터넷을 이용할 수 있다. 빠르고 안전한 유료 VPN, 서프샤크 VPN ⓒ Surfshark 뛰어난 보안 서프샤크 VPN은 강력한 암호화 기술을 사용하여 사용자의 인터넷 연결을 안전하게 보호한다. 이는 사용자의 개인 정보와 데이터를 보호하고 외부 공격으로부터 사용자를 보호하는 데 도움이 된다. 다양한 서버 위치 서프샤크 VPN은 전 세계 곳곳에 여러 서버가 위치하고 있어, 사용자가 지역 제한된 콘텐츠에 액세스할 수 있다. 해외에서도 로컬 콘텐츠에 손쉽게 접근할 수 있음은 물론이다. 속도와 대역폭 서프샤크 VPN은 빠른 속도와 무제한 대역폭을 제공하여 사용자가 원활한 인터넷 경험을 누릴 수 있도록 지원한다. 온라인 게임, 스트리밍, 다운로드 등 대역폭이 필요한 활동에 이상적이다. 다양한 플랫폼 지원 서프샤크 VPN은 다양한 플랫폼 및 디바이스에서 사용할 수 있다. 윈도우, 맥OS, iOS, 안드로이드 등 다양한 운영체제 및 디바이스에서 호환되어 사용자가 어디서나 안전한 인터넷을 즐길 수 있다. 디바이스 무제한 연결 서프샤크 VPN은 무제한 연결을 제공하여 사용자가 필요할 때 언제든지 디바이스의 갯수에 상관없이 VPN을 사용할 수 있다.