Development

소프트웨어 플랫폼에 대해서 - 4부 (Delivery 조직 구성)

chbae 2023. 7. 19. 04:31
728x90

앞에서 소프트웨어 플랫폼과 Delivery 조직에 대해서 이야기했다. 이번 글에서는 Delivery 조직을 어떻게 구성을 하면 좋을 지에 대한 고민을 하면서 글을 적어본다. Delivery 조직은 최종 전달할 제품의 품질을 책임지는 조직이다. 프로세스 상 최종 Integration을 담당한다.

 

지금 생각하는 역할은 다음과 같다.

  • Delivery Lead: 전체 Delivery 팀을 총괄
  • Project Manager: 프로젝트 일정 관리와 테스트 결과를 바탕으로 최종 Integration 결정
  • Release Manager: 제품 릴리스에 필요한 이미지, 문서를 관리
  • Defect Manager: 현재 나오는 문제에 대해서 관리
  • Build Engineer: 리뷰한 commit을 바탕으로 묶어서 테스트 할 수 있는 이미지를 만들고 최종 결정이 나면 통합
  • Issue/Performance Analysis Engineer: 문제에 대한 분석을 하고 적합한 팀에 할당
  • Test Engineer: 당일 공식적으로 나온 이미지 및 통합 전 이미지를 테스트

 

출처: https://www.alibabacloud.com/blog/product-oriented-delivery---alibaba-devops-practice-guide-part-6_598559

 

플랫폼 조직과 실제 제품을 만드는 조직의 Integration 팀을 분리할 수도 있다. 즉, 다음과 같이 구분할 수도 있다.

  • 플랫폼 Delivery Team
  • 제품1 Delivery Team
  • 제품2 Delivery Team

 

또 다르게는 하나의 System이 여러개의 Sub System(Linux, Safety OS, Android 등)으로 나누어질 때는 Sub System별로 Delivery Team을 따로 구성할 수도 있고 각 Sub System Delivery 팀은 각 Sub System의 Quality를 보장할 수 있다. 이때 다음과 같은 것들을 고려해야한다.

  • Sub System 간의 의존성을 어떻게 고려할 것인가?
  • Sub System 의 테스트 케이스를 어떻게 구성하고 어느 정도까지의 Quality를 보장할 것인가? 더 많은 Quality를 보장하기 위해서 그만큼 더 많은 노력과 Integration 시간이 들기 때문에 너무 과하게 하지도, 너무 적게 테스트를 하지도 말아야한다.

 

각 제품과 조직의 특성에 맞게 Delivery 팀을 구성해야하고 정답은 없다. 지금 필자의 회사에서도 여러 개의 방안을 가지고 논의하고 있고 최종적으로 Sub System Delivery 팀을 구성하려고 진행중에 있다. 나중에 구성이 되고 어느 정도 운영을 해보면서 느낀점을 다시 적어 공유해볼까 한다.