개발 표준 수립
개발 사례를 표준화하고, 품질 게이트를 적용하고, 체계적인 변경 관리를 통해 진행률과 성공을 추적하여 생산성을 최적화합니다. |
---|
개발팀은 릴리스 전에 최소 마찰로 워크로드 문제를 해결할 책임이 있습니다. 개발자의 효율성을 염두에 두고 코딩부터 테스트 결과까지 빠른 처리 주기를 위해 최적화합니다. 기술 작업을 계획하고 표준화하며, 팀과 관련자 내에서 합의를 이끌어내는 효과적이고 적절한 규모의 프로세스를 구현합니다.
예제 시나리오
Contoso Ticketing은 중견 회사를 대상으로 티켓팅 사업부문(LOB) SAAS 솔루션을 제공하는 소규모 스타트업입니다. 신규 고객을 온보딩하는 것은 고객 환경과 통합하기 위해 제품 사용자 지정 및 사용자 지정 개발이 필요한 복잡한 프로세스입니다. 구현 팀은 협업 및 제공을 위한 플랫폼으로 Azure DevOps를 사용하지만, 어떠한 공식적인 개발 방법론도 따르지 않습니다.
개발을 위한 업계 표준 채택
귀사의 워크로드와 팀 규모에 맞게 적절히 조정된 업계 표준 소프트웨어 개발 방법론을 사용합니다. 모든 역할이 공유하는 백로그를 유지 관리합니다.
잘 알려진 방법론을 채택하면 프로젝트의 리듬이 정해집니다. 팀 멤버에게 명확한 기대치와 책임을 부여함으로써 프로세스의 모호성을 제거합니다.
공통 목록을 기준으로 추적하면 표준 사례에 따라 작업을 구체화하고 우선 순위를 지정할 수 있습니다. 프로젝트가 제때 완료될 가능성이 더 높습니다.
표준 방법론은 위험 관리에 도움이 됩니다. 세부적인 마일스톤 검토를 통해 개발자는 심각한 문제가 발생하기 전에 잠재적인 문제를 해결할 수 있습니다.
Contoso의 과제
- 회사의 주요 제품은 점점 인기를 얻고 있으며 통합 팀은 그 어느 때보다 더 많은 동시 구현 프로젝트를 진행하고 있습니다. 워크로드가 늘어남에 따라 팀원 수도 늘어났습니다.
- 팀의 성장과 공식적인 프로세스의 부족으로 인해 팀 멤버 간의 불분명한 의사소통, 임의적이고 비생산적인 모임, 드물고 예정되지 않은 개발 주기 등의 어려움이 발생했습니다. 몇몇 온보딩 프로젝트가 현재 일정에 뒤처져 있으며 회사 경영진은 팀에 상황을 바로잡기 위해 필요한 변경을 요청했습니다.
접근 방식 및 결과 적용
- 이러한 과제를 극복하기 위해 팀은 소프트웨어 개발을 위한 인기 있는 Agile 프레임워크인 스크럼 방법론을 채택하기로 결정했습니다.
- 스크럼은 팀이 직면하고 있는 몇몇 문제를 해결하는 데 도움이 될 것입니다. 스크럼은 무엇보다도 미리 정의된 역할, 이벤트, 아티팩트, 규칙을 통해 개발 프로세스에 대한 명확하고 일관된 구조를 제공합니다. 공유된 백로그와 일련의 짧은 개발 스프린트는 팀이 공유된 비전에 따라 일하고 고객에게 정기적이고 안정적으로 가치를 제공하는 데 도움이 됩니다.
테스트를 위해 왼쪽으로 이동
개발 수명 주기 초기에 테스트를 강조하는 품질 보증 프로세스를 갖춥니다. 기능 릴리스나 업데이트의 일부인 애플리케이션 구성 요소, 인프라, 데이터 평면 작업을 포함하여 계획된 테스트 절차에 대한 모든 아티팩트를 포함합니다.
환경을 통해 승격될 때 아티팩트를 변경 불가능한 것으로 취급하여 품질 게이트를 통과할 때마다 신뢰도를 얻습니다.
가능하면 정기 점검을 자동화합니다.
품질 보증은 기능적, 비기능적 요구 사항이 확신을 가지고 충족되었는지 확인하여 고객에게 긍정적인 영향을 미칩니다.
Contoso의 과제
- 워크로드 팀의 기능 테스트 전략은 자동 테스트와 수동 테스트를 조합하여 사용합니다. 이들의 테스트 방식은 성능, 보안, 사용성 등 시스템의 모든 측면을 포괄하지 않습니다. 또한 완전히 자동화된 방식으로 다양한 환경에 코드를 배포하는 일관된 방법이 없어 변동성과 불확실성이 발생합니다.
- 고객 온보딩 작업의 규모와 복잡성이 커짐에 따라 테스트 전략의 과제도 커졌고, 버그가 자주 발생하고 재작업이 많아지며 고객 불만도 늘어났습니다.
접근 방식 및 결과 적용
- 워크로드 팀은 테스트 전략을 개선하고 배포 파이프라인의 일관성과 예측 가능성을 높이기 위한 활동에 착수합니다.
- 기능적 요구 사항과 비기능적 요구 사항을 모두 포괄하여 개발 중인 각 기능이나 사용자 지정에 대한 테스트 계획을 만드는 것으로 시작합니다. Azure DevOps를 사용하여 테스트 사례, 테스트 데이터 및 테스트 결과를 관리합니다. 아티팩트를 다음 환경으로 승격시키기 전에 코드, 구성 및 배포의 품질을 검증하는 배포 파이프라인에 품질 게이트를 설정했습니다.
- 이러한 개선 사항을 구현한 후, 팀에서는 배포 실패 횟수가 감소하고 프로덕션 환경에서 버그와 인시던트 수도 감소하는 것을 확인했습니다. 그 결과, 품질, 제공 속도, 고객 만족도가 크게 향상되었습니다.
개발 효율성 측정
효율성을 측정하기 위해 진행률과 추세를 보고합니다. 버그, 업데이트 실패, 배포 시간 및 피드백 루프의 추세를 추적하고 보고하여 개발 사례를 개선합니다.
Contoso의 과제
- 워크로드 팀은 최근 고객 온보딩 프로세스의 품질과 예측 가능성을 강화하기 위해 몇 가지 변경 내용을 구현했습니다. 그러나 회사는 이러한 변화의 영향을 측정하고 보고하는 데 어려움을 겪습니다. 안타깝게도 해당 회사에는 품질과 예측 가능성이 얼마나 개선되었는지, 어떤 변화가 다른 변화보다 개선에 더 많은 기여를 했는지를 보여 주는 신뢰할 수 있는 데이터나 메트릭이 없습니다.
- 회사에서는 프로세스 투자의 이점을 정량화하고 전달할 수 있는 방법이 필요합니다. 이를 통해 회사는 향후 리소스와 활동의 우선 순위를 지정할 수 있습니다.
접근 방식 및 결과 적용
- 팀은 이미 사용 중인 AzDO의 보고 기능을 활용하기로 결정하여 시간 경과에 따른 개선 사항을 정량화하고 향후 투자를 위한 리소스 할당의 우선 순위를 지정할 수 있었습니다.
- 여러 가지 기본 보고서를 활용하여 시작합니다.
- 개발속도 보고서
- 누적 흐름 다이어그램
- 버그 추세: 시간 경과에 따라 얼마나 많은 버그가 만들기, 해결, 종료되었는지, 그리고 이러한 버그가 품질 메트릭에 어떤 영향을 미치는지 보여 줍니다.
- 배포 통계: 코드에서 프로덕션 단계까지 소프트웨어를 제공하는 데 걸리는 시간과 이를 대상 및 벤치마크와 비교한 결과입니다.
- 또한 이 팀은 가까운 향후에 대시보드와 Power BI 분석 보고서를 이용해 사용자 지정 보고서를 개발할 계획입니다.