소프트웨어 개발 환경에서 Six Sigma를 어떻게 적용 할 수 있습니까?


14

저는 Java 개발자이지만 조직의 이익을 높이기 위해 Six Sigma를 적용하는 방법에 대해 배우라는 요청을 받았습니다. Six Sigma가 모든 환경에 적용될 수 있다는 것을 읽었지만 소프트웨어 개발에 적용하는 뉘앙스에 관심이 있습니다.

소프트웨어 개발 환경에 Six Sigma의 어떤 개념을 적용 할 수 있으며 어떻게 효과적으로 적용 할 수 있습니까?

식스 시그마는 다음에 중점을두고 있습니다.

  • 결함의 근본 원인 식별 및 제거
  • 제조 또는 비즈니스 프로세스 적용시 변동성 최소화

이러한 개념은 소프트웨어 개발에 적용 할 수 있지만 SDLC (Software Development Lifecycle)에 효과적으로 적용 할 수 있습니까?


11
6 시그마가 "모든 환경에 적합"하다는 것을 어디에서 발견 했습니까? 소프트웨어가 아닌 물리적 객체의 대량 제조를 위해 특별히 개발되었습니다.
Angelo

5
이 질문을 옮길 필요가 없으므로이 질문을 다시여십시오. 소프트웨어 프로젝트 관리는 여기에서 주제를 다루지 만 Six Sigma는 품질 및 프로세스 개선과 더 밀접한 관련이 있으며 여기에서도 주제가 있습니다. 또한 소프트웨어 프로젝트 및 소프트웨어 프로세스 개선 (Six Sigma 및 CMMI와 Six Sigma 및 민첩한 방법의 결합 포함)에 Six Sigma를 적용하는 것에 대해 많은 작업이 진행되고 있습니다. Six Sigma를 소프트웨어에 적용하는 것은 소프트웨어를 제조 환경에 적용하는 것과 다릅니다.이 질문을하려면 소프트웨어 개발자의 전문 지식이 필요합니다.
Thomas Owens

5
@Angelo Six Sigma는 원래 제조 환경을 위해 설계되었지만 소프트웨어 개발에 적용하는 데 많은 노력이있었습니다. "agile six sigma"및 "cmmi six sigma"와 같은 문구를 검색하면이 영역에서 많은 작업이 수행됩니다.
토마스 오웬스

5
처음 6 시그마 훈련을 받아야했고 회사가 비용을 지불하는 동안 시간을 ​​되돌릴 수 있기를 바랍니다. 강사는 단서가 없었고, 연습은 재미 있고 작은 게임 이었지만 궁극적으로는 의미가 없었습니다. 식스 시그마는 통계에 관한 것으로, 멍청하고 반복적이며 잘 정의 된 작업, 종종 로봇에 아웃소싱하는 작업의 종류에 적용 할 수 있습니다. 좋은 소프트웨어를 작성하는 것은 창조적 인 과정입니다. 식스 시그마 (Six sigma)는 미적분학 강의가 톰 크루즈 (Tom Cruise)의 행동만큼이나 훌륭한 소프트웨어 엔지니어를 돕습니다. 당신이이 질문을했다는 사실은 당신이 나와 내 동료들과 일할 수 없다는 것을 의미합니다.
Job

4
@ThomasOwens 이것은 주제가 아닌 NARQ입니다. 반 폴 / 반 -LMGTFU
Jimmy Hoffa

답변:


15

기본 식스 시그마 활동은 약어 DMAIC에 의해 포착되며 , 이는 정의, 측정, 분석, 개선, 제어를 의미 합니다. 이를 개선하려는 프로세스에 적용합니다. 프로세스 정의, 측정, 측정을 사용하여 문제의 원인에 대한 가설 형성, 개선 구현 및 프로세스가 통계적으로 "통제"상태로 유지되도록합니다.

소프트웨어와 관련하여 프로세스 는 소프트웨어 개발 라이프 사이클 (SDLC) 또는 그 일부입니다. 식스 시그마 원칙을 전체 SDLC에 적용하려고하지 않을 것입니다 (최소한 초기에는 아님). 대신 문제가 있다고 생각되는 영역을 찾아야합니다 (예 : 결함 비율이 너무 높음, 회귀가 너무 많음, 일정이 너무 자주 미끄러짐, 개발자와 고객 사이에 너무 많은 오해 등). 지금 당장 문제는 매주 너무 많은 버그가 생산 (또는 적어도보고)되고 있다는 것입니다. 따라서 소프트웨어 개발 / 버그 생성 프로세스를 정의해야합니다. 그런 다음 매일 작성된 코드 줄 수, 요구 사항 변경 빈도, 각 엔지니어가 회의에 소비하는 시간,

다음으로 데이터를보고 패턴을 식별하려고합니다. 엔지니어링 팀 A는 주어진 모든 마감일을 맞추고 종종 작업을 조기에 완료한다는 것을 알 수 있습니다! 처음에 팀 B는 공에 그렇게 보이지 않는 것 같습니다. 최소한 반나절로 하루나 이틀 정도 마감일을 놓치고 때로는 일주일 이상 늦습니다. 경영진은 팀 B를 문제의 일로보고 있으며 일을 흔들려고합니다. 그러나 데이터를 자세히 살펴보면 팀 B의 버그 비율이 팀 A보다 훨씬 낮으며, 또한 팀 A가 팀 A가 많은 돈을 소비하는 데 가치가 있다고 생각하기 때문에 팀 B는 팀 A에 기인 한 버그를 수정하도록 요청받습니다. 유지 보수 시간.

그래서, 당신은 무엇을합니까? 수집 한 데이터와 수행 한 분석을 사용하여 변경 사항을 제안합니다. 팀 A와 팀 B는 각각 자체 버그를 수정합니다. 경영진의 축복 (그리고 A 팀의 격렬한 반대에 반대 함)으로 그 변화를 실현합니다. 그런 다음 메트릭을 계속 수집하고 변경 내용이 변경되었는지 확인하기 위해 데이터를 계속 분석합니다. 버그 비율이 허용 될 때까지이 측정 / 분석 / 구현주기를 반복하십시오. 그러나 아직 끝나지 않았습니다. 실제로, 당신은 결코 완료 되지 않았습니다 ... 버그 비율을 계속 측정하고 버그 비율이 허용 가능한 범위 내에 있는지 확인해야합니다. 즉 통계적으로 "통제"입니다.

개선하려는 프로세스의 세부 사항, 수집하는 메트릭의 종류 등을 제외하고는 소프트웨어 개발에만 국한된 것이 없습니다. 소프트웨어 개발 프로세스를 개선하는 데 사용하는 활동은 귀하의 활동과 동일합니다. d 소프트웨어 개발이 위젯 제조와 크게 다르더라도 위젯 제조 프로세스에 사용합니다. 즉, 프로세스에 설정 한 목표 종류에 상식을 적용해야한다는 것입니다.


1
실제로 소프트웨어 개발과 관련된 6 가지 시그마 방법론은 소프트웨어 개발에서 MADI를 반복한다는 점을 제외하고는 DMADI (정의, 측정, 분석, 설계, 구현)입니다. 그 "벨트"를 가진 사람들은 이것을 Lean Six Sigma DMADI라고 부르지 만 나는 그것을 Agile이라고 부릅니다.
태 성 신

개발 프로세스 자체 개선과 개발중인 소프트웨어 개선을 구별하는 것이 중요합니다. 전자를 설명하고 SD Scima에 Six Sigma를 적용한 것에 대한 언급을 들었을 때 OP가 요구 한 바라고 생각합니다. @ Tae-SungShin의 의견은 후자를 더 겨냥한 것으로 보이며 소프트웨어 자체를 개선하는 프로세스가 약간 다르다는 데 동의합니다. 소프트웨어 개발 방법에 대해 많은 글을 썼으므로 여기서는 시도하지 않을 것입니다.
Caleb

-3

@Peter가 언급했듯이

소프트웨어 개발에 6 시그마를 적용하면 소프트웨어 개발이 지속적으로 개선됩니다. 6 개의 시그마를 소프트웨어 개발에 적용하면 소프트웨어를 신속하게 통합하고 테스트 할 수 있으며 버그가없는 소프트웨어를 만들 수 있으며보다 효율적인 프로그램 관리가 가능합니다.

간단한 시나리오를 줄 수 있고, 항공 우주 회사에서 일하고있었습니다. 항공기의 회로를 설계하는 팀이 있습니다. 복잡한 항공기의 회로 설계에 많은 어려움을 겪고있었습니다. 그로 인해 디자이너가 경험이 있었지만 마감 기한이 누락되었습니다. 나는 그들의 작업을 분석하고 매번 처음부터 회로를 개발하고 있음을 알았습니다. 그래서 나는 이전에 설계된 회로를 추적 할 소프트웨어를 설계했고, 새로운 항공기가있을 때마다 내 소프트웨어를 사용하고 비슷한 회로를 가진 이전에 설계된 항공기를 선택하고 거의 수정하지 않고 사용합니다. 이러한 회로는 이전에 실제 항공기에서 설계 및 테스트되었으므로 이제 새로운 회로에 더 집중할 수 있습니다.

이것은 SIX Sigma 프로세스를 따라 오류에 대한 모든 데이터를 수집하고 그 이유를 분석 한 시나리오입니다. 그런 다음 내 소프트웨어로 개선하십시오.


4
여섯 시그마가 위대하지는 않습니다. 직원들이 처음부터 회로를 설계하도록하는 관리자가 해고 된 것입니다.
Job

2
롤 ...하지만 난이 소프트웨어를 제안 할 때 같은 관리자가 6 시그마 절차를 수행하도록 요청 ..
rajkumarts

-4

소프트웨어 개발에 6 시그마를 적용하는 것을 소프트웨어 6 시그마라고합니다. Six Sigma는 기본적으로 제조를 위해 개발되었으며, 제조 공정에서 회사가 저렴한 가격으로 제품의 배송, 품질을 향상시키는 데 도움이됩니다. 소프트웨어 개발에도 동일하게 적용될 수 있습니다.

소프트웨어 개발에 6 시그마를 적용하면 소프트웨어 개발이 지속적으로 개선됩니다. 6 개의 시그마를 소프트웨어 개발에 적용하면 소프트웨어를 신속하게 통합하고 테스트 할 수 있으며 버그가없는 소프트웨어를 만들 수 있으며보다 효율적인 프로그램 관리가 가능합니다.

그러나 소프트웨어 6 시그마는 새로운 개념이므로 올바른 사람들의 교육이 필요합니다. 효율적인 6 시그마 훈련 프로그램이 도움이 될 수 있습니다. 소프트웨어 개발 환경에 대한 온라인 6 시그마 교육의 경우 http://www.6sigma.us /를 제안 합니다. 다른 회사로부터받은 추천을 바탕으로 제안합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.