개발 작업

자동화된 공동의 빌드, 테스트, 배포 방식으로 개발 및 운영 팀을 통합함으로써 소프트웨어 개발을 가속화하세요.

개발 작업이란? 개발 작업이 중요한 이유는?

개발 작업은 소프트웨어 제공을 가속화하는 모범 사례 및 도구의 세트로, 길고 오류가 잦은 배포를 구조화되고 반복 가능한 프로세스로 대체하여 소프트웨어 릴리즈의 기능과 성능을 빌드, 테스트, 출시, 모니터링합니다. 개발 작업 방식은 소프트웨어 응용 프로그램, 엔지니어링된 시스템 또는 자동차 등의 제품에 포함된 소프트웨어에 적용할 수 있으며 더 빠른 속도, 더 높은 효율성, 더 높은 신뢰도로 고객에게 가치를 제공합니다.

overlaycontent

개발 작업의 작동 방식

작은 가치 단위를 더 빠른 속도로 제공하는 데 중점을 두는 애자일을 확장한 개발 작업은 소프트웨어 제공을 계획, 관리, 모니터링하기 위한 공동의 프로세스와 도구 세트를 제공합니다. 대규모의 간헐적인 릴리즈를 포함된 제품 소프트웨어에까지 확장되는 고객 가치의 연속 통합/연속 제공(CI/CD) 파이프라인으로 대체합니다. 다른 소프트웨어는 더 잦은 OTA 업데이트를 지원하는 한편 포함된 개발 작업 모델은 개별적인 간격으로 소프트웨어 업데이트를 제공합니다.

개발 작업의 이점

속도

더 빈번하고 자동화된 소프트웨어 업데이트로 고객에게 더 빠르게 가치를 제공합니다.

더 빈번하고 자동화된 소프트웨어 업데이트로 고객에게 더 빠르게 가치를 제공합니다.

비용 절감

더 큰 효율성과 자동화를 실현하고 소프트웨어 릴리즈의 전반적인 비용을 절감합니다.

더 큰 효율성과 자동화를 실현하고 소프트웨어 릴리즈의 전반적인 비용을 절감합니다.

우수한 품질

일관적이고 자동화된 테스팅 및 성능 모니터링으로 최종 사용자 경험의 품질을 개선합니다.

일관적이고 자동화된 테스팅 및 성능 모니터링으로 최종 사용자 경험의 품질을 개선합니다.

협업 향상

협력하여 고객 가치의 공동 비전을 수립하고 제공합니다.

협력하여 고객 가치의 공동 비전을 수립하고 제공합니다.

고객 만족도 향상

요청에서 제공까지의 주기를 단축하고 장기적으로 경쟁적인 패리티를 유지합니다.

요청에서 제공까지의 주기를 단축하고 장기적으로 경쟁적인 패리티를 유지합니다.

더 긴 제품 라이프 사이클

빈번한 소프트웨어 업데이트로 제품의 사용 가능한 수명을 연장합니다.

빈번한 소프트웨어 업데이트로 제품의 사용 가능한 수명을 연장합니다.

개발 작업 라이프 사이클

개발 작업은 연속적이라는 특성이 있기 때문에 무한의 루프를 사용하여 개발 작업 라이프 사이클의 단계가 서로 어떤 관련이 있는지 보여줄 수 있습니다. 순차적으로 흘러가는 것처럼 보이지만 이 루프는 라이프 사이클 전체에서 지속적인 협력과 반복적인 개선이 필요함을 상징합니다.

개발 작업 라이프 사이클은 루프의 왼쪽에 있는 개발에 필요한 프로세스, 기능, 도구와 루프의 오른쪽에 있는 운영이라는 8단계로 이루어집니다. 전체 단계에서 팀이 협력하고 소통하여 조율하고 속도와 품질을 유지합니다.

overlaycontent

개발 작업 모범 사례

개발 작업 프로세스는 저마다 다르지만 대부분의 프로세스에 다음이 포함됩니다.

협업

개발 작업은 개발과 운영, 테스트 팀을 분리하는 사일로를 해소하므로 팀들을 병합하거나 공동의 목표 아래에서 운영할 수 있습니다.

종합적인 릴리즈 계획

코드 변경을 결함, 요구 사항, 테스트 사례와 연결합니다. 종합적인 릴리즈 계획을 통해 팀은 문제를 분리하고 롤백을 수행하고 요청의 우선순위를 정하며 필요에 따라 하드웨어 및 전기 제공과 동기화할 수 있습니다.

연속 통합

개발자가 코드 변경을 공동의 저장소에 병합합니다. 이 저장소는 주기적으로, 때로는 매일 자동으로 통합, 컴파일, 테스트되어 통합 비용을 줄여줍니다.

연속 제공

코드 변경이 회귀 테스트를 거치고 주기적으로, 때로는 매일 프로덕션 환경에 제공되어 고객 가치 제공 시간을 단축합니다.

OTA 업데이트

새로운 소프트웨어가 무선으로 제공되어 제품에 포함됩니다. 사용 중인 제품의 안정성을 훼손하지 않기 위해 대부분의 경우 업데이트는 신중하게 제어됩니다.

모니터링 및 분석

개발 작업 프로세스를 추적, 분석 및 보고하고 향상된 가시성으로 에스컬레이션을 관리합니다. 진행 상황을 모니터링하고 팀에 전체 프로젝트의 개발 작업 가치 스트림을 한곳에서 볼 수 있는 가시성을 제공합니다.

개발 작업을 위한 도구: Codebeamer

Codebeamer는 고객 가치 제공을 가속화하고 개발 작업 방식을 도입할 여력을 제공하는 요구 사항, 위험, 테스트 관리 솔루션입니다. 요구 사항, 코드, 테스트 데이터에 대한 360도의 가시성으로 CI/CD 파이프라인을 관리하세요. 고객 요청의 우선순위를 정하고 정보를 근거로 롤백을 결정하며 감사에 대비한 추적 가능성을 경험하세요. GitLab, Jenkins, Mattermost와 같은 개발자 및 테스팅 도구와 통합된 중앙 개발 작업 허브는 분산된 도구 체인을 대체합니다. 엔지니어링된 시스템과 포함된 소프트웨어 릴리즈를 간소화하고 관리하세요.

overlaycontent

개발 작업 자주 묻는 질문과 답(FAQ)

개발 작업을 도입할 때 어려운 점은 무엇인가요?

개발 작업 방식을 도입할 때 일반적인 과제는 다음과 같습니다.

사일로화된 팀 - 공동의 프로세스와 목표가 없는 팀은 서로 다른 작업을 우선시할 가능성이 크기 때문에 제공이 느리고 오류가 많을 수 있습니다. 따라서 많은 조직에서 개발과 테스트, 운영 엔지니어를 하나의 개발 작업 팀으로 병합하고 있습니다. 팀들이 기존의 조직 구조를 유지하면서도 공동의 프로세스와 목표를 가지고 일할 수도 있습니다. 하나의 공동 대시보드를 보는 것은 성공의 공통적인 정의를 기준으로 팀을 통합하는 데 필수입니다.

자동화 부족 - 잦은 소프트웨어 제공에서는 빌드, 테스트, 배포 주기 전체에 자동화가 이루어져야 합니다. 그렇지 않으면 수동 작업으로 인해 팀의 부담이 큽니다. 통합된 도구 체인은 개발 작업의 품질을 높이면서 제공을 가속화합니다.

추적 가능성 부족 - 라이프 사이클 추적 가능성은 조직이 통제하에 정밀하게 개발 작업 방식을 도입하는 데 도움이 됩니다. 고객 요청 제공의 우선순위를 지정하거나, 성능 문제를 유발하는 기능 롤백하거나, 각기 다른 기능을 고객 또는 지역별로 제공하려면 세밀한 개발 및 릴리즈 주기 통제가 필요합니다. 이런 수준의 릴리즈 통제는 개발 작업 방식이 다른 라이프 사이클 영역과 통합되어야만 가능합니다.

포함된 소프트웨어의 개발 작업은 어떻게 다른가요?

개발 작업 방식은 자동차, 휴대폰, 의료 기기 등에 포함된 소프트웨어에 확장할 수 있지만 몇 가지 차이가 있습니다.

제공 타이밍 - 스마트 제품은 일반적으로 더 통제되고 세밀한 제공 방식이 필요합니다. 예를 들면 자동차 소프트웨어 업데이트를 배치로 묶어 정기적인 자동차 서비스 간격과 타이밍을 맞춰야 합니다. 일반적으로 중단을 최소화하고 안전을 보장하도록 제공 타이밍이 결정됩니다.

안전 및 보안 - 많은 스마트 제품은 안전이 중요하며 개발 작업 방식에까지 규제 감독이 확장됩니다. 이런 제품은 추적 가능성 및 감사 표준을 준수하고 소프트웨어 업데이트 관리 연속성에 대한 보안을 충족해야 합니다.

제공 방법 - 포함된 소프트웨어는 OTA 업데이트, 이전의 웹, CD 또는 기타 유선 제공 방법을 사용할 수 있습니다.

이질적 환경 - 전통적인 개발 작업 환경에서 팀들은 컴퓨팅 환경을 높은 수준으로 통제할 수 있습니다. 물리적인 하드웨어 기기를 소유하지 않는 운영 팀과는 달리 특정 소프트웨어의 포함 또는 배제를 결정하고 모든 소프트웨어 유지보스 작업이 수행되었는지 확인할 수 있습니다. 업데이트가 실제 조건과 구성에서 작동하도록 하기 위해 포함된 소프트웨어 업데이트에는 일반적으로 더 많은 가설 구성에 대해 더 복잡한 테스팅이 필요합니다.