Làm cách nào tôi có thể áp dụng Six Sigma trong môi trường phát triển phần mềm?


14

Tôi là một nhà phát triển Java, nhưng tôi được yêu cầu tìm hiểu về việc áp dụng Six Sigma với mục tiêu tăng lợi nhuận của tổ chức chúng tôi. Tôi đã đọc rằng Six Sigma có thể được áp dụng trong tất cả các môi trường, nhưng tôi quan tâm đến các sắc thái của việc áp dụng nó vào phát triển phần mềm.

Những khái niệm nào về Six Sigma có thể được áp dụng cho môi trường phát triển phần mềm và làm thế nào tôi có thể áp dụng chúng một cách hiệu quả?

Hiểu biết của tôi là Six Sigma tập trung vào:

  • xác định và loại bỏ nguyên nhân gốc của khuyết tật
  • giảm thiểu sự thay đổi trong việc áp dụng các quy trình sản xuất hoặc kinh doanh

Tôi thấy rằng những khái niệm này có thể được áp dụng cho phát triển phần mềm, nhưng liệu nó có thể được áp dụng hiệu quả cho Vòng đời phát triển phần mềm (SDLC) không?


11
Nơi mà bạn thấy rằng sáu sigma là "phù hợp với mọi môi trường"? Nó được phát triển rất đặc biệt để sản xuất khối lượng lớn các vật thể - không phải phần mềm.
Angelo

5
Tôi đang mở lại câu hỏi này vì không cần phải di chuyển nó. Việc quản lý các dự án phần mềm là chủ đề ở đây, nhưng Six Sigma liên quan chặt chẽ hơn đến chất lượng và cải tiến quy trình, cũng là chủ đề ở đây. Ngoài ra, có một khối lượng lớn công việc thảo luận về việc áp dụng Six Sigma cho các dự án phần mềm và cải tiến quy trình phần mềm (bao gồm kết hợp Six Sigma và CMMI và Six Sigma và phương pháp nhanh). Áp dụng Six Sigma cho phần mềm khác với việc áp dụng nó vào môi trường sản xuất, khiến câu hỏi này đòi hỏi phải có chuyên môn của một nhà phát triển phần mềm.
Thomas Owens

5
@Angelo Mặc dù Six Sigma ban đầu được thiết kế cho môi trường sản xuất, đã có nhiều công việc trong việc áp dụng nó vào phát triển phần mềm. Tìm kiếm các cụm từ như "agile six sigma" và "cmmi six sigma" mang lại rất nhiều công việc trong khu vực.
Thomas Owens

5
Tôi đã phải tham gia khóa đào tạo sáu sigma đầu tiên và trong khi công ty của tôi trả tiền cho nó, tôi ước tôi có thể lấy lại thời gian. Người hướng dẫn không biết gì, các bài tập là những trò chơi nhỏ thú vị nhưng cuối cùng lại vô nghĩa. Sáu sigma là về thống kê và nó được áp dụng cho các nhiệm vụ ngu ngốc, lặp đi lặp lại, được xác định rõ, loại nhiệm vụ thường được gia công cho robot. Viết phần mềm tốt là một quá trình sáng tạo. Six sigma giúp các kỹ sư phần mềm giỏi cũng giống như các bài giảng về Giải tích sẽ giúp Tom Cruise hành động. Thực tế là bạn đã hỏi câu hỏi này không đủ điều kiện để bạn làm việc với tôi hoặc các đồng nghiệp của tôi.
Công việc

4
@ThomasOwens đây là NARQ, không lạc đề. Đó là một nửa cuộc thăm dò / nửa LMGTFU
Jimmy Hoffa

Câu trả lời:


15

Các hoạt động Six Sigma cơ bản được viết tắt bởi từ viết tắt DMAIC , viết tắt của: Xác định, Đo lường, Phân tích, Cải thiện, Kiểm soát . Bạn áp dụng những điều này cho quy trình mà bạn muốn cải thiện: xác định quy trình, đo lường, sử dụng các phép đo để hình thành các giả thuyết về nguyên nhân của bất kỳ vấn đề nào, thực hiện các cải tiến và đảm bảo rằng quy trình vẫn được "kiểm soát" theo thống kê.

Vì nó liên quan đến phần mềm, quá trình là vòng đời phát triển phần mềm của bạn (SDLC) hoặc một phần của nó. Có lẽ bạn sẽ không thử áp dụng các nguyên tắc Six Sigma cho toàn bộ SDLC (hoặc ít nhất, không phải ban đầu). Thay vào đó, bạn sẽ tìm kiếm các khu vực mà bạn nghĩ rằng bạn đã gặp sự cố (ví dụ: tỷ lệ lỗi của chúng tôi quá cao; quá nhiều hồi quy; lịch trình của chúng tôi trượt quá thường xuyên, quá nhiều hiểu lầm giữa nhà phát triển và khách hàng, v.v.). Bây giờ chúng ta hãy nói rằng vấn đề là có quá nhiều lỗi được tạo ra (hoặc ít nhất là được báo cáo) mỗi tuần. Vì vậy, bạn sẽ xác định quy trình phát triển phần mềm / lỗi. Sau đó, bạn sẽ bắt đầu thu thập các số liệu như số dòng mã được viết mỗi ngày, tần suất thay đổi yêu cầu, số giờ mỗi kỹ sư dành cho các cuộc họp,

Tiếp theo, bạn nhìn vào dữ liệu và cố gắng phân biệt các mẫu. Có thể bạn nhận thấy rằng đội kỹ thuật A đạt mọi thời hạn mà họ đưa ra và thậm chí thường hoàn thành sớm nhiệm vụ! Ban đầu, đội B dường như không thích bóng - họ bỏ lỡ thời hạn một hoặc hai ngày ít nhất một nửa thời gian và đôi khi trễ một tuần hoặc hơn. Ban quản lý coi đội B là một vấn đề và đang tìm cách làm mọi thứ trở nên tồi tệ hơn. Tuy nhiên, xem xét kỹ hơn các dữ liệu cho thấy tỷ lệ lỗi của đội B thấp hơn nhiều so với đội A và hơn thế nữa, đội B thường được yêu cầu sửa các lỗi do đội A vì quản lý cảm thấy rằng đội A rất có giá trị để chi tiêu rất nhiều của thời gian bảo trì.

Vậy bạn làm gì? Sử dụng dữ liệu bạn đã thu thập và phân tích bạn đã thực hiện, bạn đề xuất một thay đổi: nhóm A và nhóm B sẽ tự khắc phục các lỗi của mình. Với sự ban phước của ban quản lý (và chống lại sự phản đối kịch liệt của đội A), bạn thực hiện thay đổi đó. Sau đó, bạn tiếp tục thu thập số liệu và bạn tiếp tục phân tích dữ liệu để xem liệu thay đổi của bạn có tạo ra sự khác biệt hay không. Lặp lại chu trình đo / phân tích / thực hiện này cho đến khi tỷ lệ lỗi được coi là chấp nhận được. Nhưng bạn chưa làm xong. Trên thực tế, bạn chưa bao giờ thực hiện ... bạn cần tiếp tục đo tỷ lệ lỗi và kiểm tra xem tỷ lệ lỗi có nằm trong phạm vi chấp nhận được hay không, tức là nó được "kiểm soát" theo thống kê.

Lưu ý rằng ở đây không có gì cụ thể cho phát triển phần mềm ngoài các chi tiết cụ thể của quy trình bạn đang cải thiện, các loại số liệu bạn thu thập, v.v. Các hoạt động bạn sử dụng để cải thiện quy trình phát triển phần mềm giống như các hoạt động của bạn d sử dụng cho một quy trình sản xuất widget, mặc dù việc phát triển phần mềm khá khác so với sản xuất widget. Tất cả điều đó có nghĩa là bạn cần áp dụng một số ý nghĩa chung trong các loại mục tiêu mà bạn đặt ra cho quy trình của mình.


1
Trên thực tế phương pháp Six Sigma liên quan nhiều hơn đến Phát triển phần mềm là DMADI (Xác định, Đo lường, Phân tích, Thiết kế, Triển khai) ngoại trừ việc chúng tôi lặp lại MADI trong phát triển phần mềm. Những người có "Thắt lưng" đó gọi nó là Lean Six Sigma DMADI nhưng tôi gọi nó là Agile.
Tae-Sung Shin

Điều quan trọng là phải phân biệt giữa việc cải thiện quy trình phát triển và cải thiện phần mềm đang được phát triển. Tôi đã mô tả trước đây và đưa ra đề cập đến việc áp dụng Six Sigma cho SDLC Tôi nghĩ đó là những gì OP đang hỏi về; Nhận xét của @ Tae-SungShin dường như nhắm nhiều hơn vào phần sau và tôi đồng ý rằng quá trình cải thiện phần mềm tự nó có một chút khác biệt. Rất nhiều điều đã được viết về các phương pháp phát triển phần mềm, vì vậy tôi sẽ không thử làm điều đó ở đây.
Caleb

-3

Như được đề cập bởi @Peter

Áp dụng sáu sigma trong phát triển phần mềm tạo ra sự cải thiện bền vững trong việc phát triển phần mềm. Áp dụng sáu sigma trong phát triển phần mềm dẫn đến tích hợp và kiểm tra phần mềm nhanh chóng, giúp tạo ra một phần mềm không có lỗi và nó giúp quản lý chương trình hiệu quả hơn.

Tôi có thể cho bạn một kịch bản đơn giản, tôi đang làm việc cho một công ty hàng không vũ trụ. Có một đội ngũ thiết kế mạch cho máy bay. Họ đã phải đối mặt với rất nhiều khó khăn trong việc thiết kế mạch cho các máy bay phức tạp. Do đó, họ đã bỏ lỡ thời hạn, mặc dù họ đã có kinh nghiệm thiết kế. Tôi đã phân tích công việc của họ và nhận thấy rằng họ đang phát triển các mạch từ đầu mỗi lần. Vì vậy, tôi đã thiết kế một phần mềm theo dõi các mạch được thiết kế trước đó của họ và bất cứ khi nào họ có máy bay mới, họ sẽ sử dụng phần mềm của tôi và chọn máy bay được thiết kế trước đó có mạch tương tự và sử dụng chúng với một chút sửa đổi. Vì các mạch này được thiết kế và thử nghiệm trước đây trên các máy bay thực tế, giờ đây chúng có thể tập trung nhiều hơn vào các mạch mới.

Đây chỉ là một kịch bản trong đó tôi tuân theo quy trình SIX Sigma để thu thập tất cả dữ liệu về lỗi của họ và phân tích lý do cho điều đó là gì. Sau đó cải thiện chúng bằng phần mềm của tôi.


4
Không phải sáu sigma là tuyệt vời; đó là người quản lý cho phép nhân viên của mình thiết kế mạch từ đầu nên đã bị sa thải.
Công việc

2
lol .. nhưng cùng một người quản lý đã yêu cầu làm theo quy trình sáu sigma khi tôi đề xuất phần mềm này ..
rajkumarts

-4

Áp dụng sáu sigma trong phát triển phần mềm được gọi là phần mềm sáu sigma. Six Sigma được phát triển cơ bản cho sản xuất, trong quá trình sản xuất, nó giúp các công ty cải thiện việc giao hàng, chất lượng sản phẩm với chi phí thấp. Trong khi đó, điều tương tự cũng có thể áp dụng cho việc phát triển phần mềm.

Áp dụng sáu sigma trong phát triển phần mềm tạo ra sự cải thiện bền vững trong việc phát triển phần mềm. Áp dụng sáu sigma trong phát triển phần mềm dẫn đến tích hợp và kiểm tra phần mềm nhanh chóng, giúp tạo ra một phần mềm không có lỗi và nó giúp quản lý chương trình hiệu quả hơn.

Tuy nhiên, phần mềm sáu sigma là một khái niệm mới mà bạn cần được đào tạo từ đúng người. Một chương trình đào tạo sáu sigma hiệu quả có thể giúp bạn ở đây. Đối với đào tạo sáu sigma trực tuyến về môi trường phát triển phần mềm, tôi sẽ đề xuất http://www.6sigma.us /. Tôi đề nghị họ dựa trên khuyến nghị tôi nhận được từ một công ty khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.