Como posso aplicar o Six Sigma em um ambiente de desenvolvimento de software?


14

Sou desenvolvedor Java, mas fui convidado a aprender sobre a aplicação do Six Sigma com o objetivo de aumentar os lucros da nossa organização. Eu li que o Six Sigma pode ser aplicado em todos os ambientes, mas estou interessado nas nuances de aplicá-lo ao desenvolvimento de software.

Quais conceitos do Six Sigma podem ser aplicados a um ambiente de desenvolvimento de software e como posso aplicá-los efetivamente?

Meu entendimento é que o Six Sigma se concentra em:

  • identificar e remover as causas principais dos defeitos
  • minimizando a variabilidade na aplicação de processos de manufatura ou de negócios

Parece-me que esses conceitos podem ser aplicados ao desenvolvimento de software, mas isso pode ser aplicado efetivamente a um ciclo de vida de desenvolvimento de software (SDLC)?


11
Onde você descobriu que o seis-sigma é "adequado para todos os ambientes"? Foi desenvolvido especificamente para a fabricação de objetos físicos em grande volume - não software.
Angelo

5
Estou reabrindo esta questão, pois não há necessidade de movê-la. O gerenciamento de projetos de software está no tópico aqui, mas o Six Sigma está mais relacionado à qualidade e à melhoria de processos, que também estão no tópico aqui. Além disso, há um grande corpo de trabalho discutindo a aplicação do Six Sigma em projetos de software e aprimoramento de processos de software (incluindo a combinação de métodos Six Sigma e CMMI e Six Sigma e ágil). Aplicar o Seis Sigma ao software é diferente de aplicá-lo a um ambiente de fabricação, fazendo com que essa pergunta exija a experiência de um desenvolvedor de software.
Thomas Owens

5
@ Angelo Embora o Six Sigma tenha sido originalmente projetado para um ambiente de fabricação, houve muito trabalho para aplicá-lo ao desenvolvimento de software. A pesquisa de frases como "ágil seis sigma" e "cmmi seis sigma" traz muito trabalho na área.
Thomas Owens

5
Tive que fazer o primeiro treinamento em seis sigma e, embora minha empresa pagasse por isso, gostaria de poder recuperar meu tempo. O instrutor não tinha noção, os exercícios eram pequenos jogos divertidos, mas, no final das contas, inúteis. O Six Sigma é sobre estatística e é aplicável a tarefas idiotas, repetitivas e bem definidas, o tipo de tarefa que muitas vezes está sendo terceirizada para robôs. Escrever um bom software é um processo criativo. O Six Sigma ajuda bons engenheiros de software, tanto quanto as aulas de cálculo ajudariam Tom Cruise a agir. O fato de você ter feito essa pergunta o desqualifica de trabalhar comigo ou com meus colegas.
Job

4
@ThomasOwens é NARQ, não está fora de tópico. É da meia-poll / half-LMGTFU
Jimmy Hoffa

Respostas:


15

As atividades básicas do Seis Sigma são capturadas pelo acrônimo DMAIC , que significa: Definir, Medir, Analisar, Melhorar, Controlar . Você as aplica ao processo que deseja melhorar: defina o processo, meça-o, use-o para formar hipóteses sobre as causas de qualquer problema, implemente aprimoramentos e garanta que o processo permaneça estatisticamente "sob controle".

No que se refere ao software, o processo é o seu ciclo de vida de desenvolvimento de software (SDLC) ou parte dele. Você provavelmente não tentaria aplicar os princípios do Seis Sigma para todo o SDLC (ou pelo menos, não inicialmente). Em vez disso, você procuraria áreas nas quais acha que tem um problema (por exemplo, nossa taxa de defeitos é muito alta; muitas regressões; nossa programação cai com muita frequência; muitos mal-entendidos entre desenvolvedores e clientes; etc.). Digamos por enquanto que o problema é que muitos bugs estão sendo produzidos (ou pelo menos relatados) a cada semana. Então, você definiria o processo de desenvolvimento de software / criação de erros. Em seguida, você começaria a coletar métricas, como o número de linhas de código escritas a cada dia, a frequência das alterações de requisitos, o número de horas que cada engenheiro passa nas reuniões,

Em seguida, você olha os dados e tenta discernir padrões. Talvez você tenha notado que a equipe de engenharia A cumpre todos os prazos estabelecidos e, muitas vezes, termina as tarefas mais cedo! Inicialmente, a equipe B não parece tão interessada - eles perdem seus prazos por um dia ou dois, pelo menos metade do tempo, e ocasionalmente atrasam uma semana ou mais. A gerência vê a equipe B como um problema e procura agitar as coisas. No entanto, uma análise mais detalhada dos dados mostra que a taxa de erros da equipe B é muito menor do que a da equipe A e, além do mais, a equipe B é frequentemente solicitada a corrigir erros atribuíveis à equipe A porque a gerência considera que a equipe A é valiosa para gastar muito. de tempo em manutenção.

Então, o que você faz? Usando os dados que você coletou e a análise realizada, você sugere uma alteração: a equipe A e a equipe B corrigem seus próprios erros. Com as bênçãos da gerência (e contra a oposição veemente da equipe A), você implementa essa mudança. Em seguida, você continua coletando métricas e analisa os dados para ver se suas alterações fizeram alguma diferença. Repita este ciclo de medida / análise / implementação até que a taxa de erros seja considerada aceitável. Mas você ainda não terminou. Na verdade, você nunca termina ... você precisa continuar medindo a taxa de erros e verificando se a taxa de erros permanece dentro da faixa aceitável, isto é, estatisticamente "sob controle".

Observe que aqui não há nada específico para o desenvolvimento de software além das especificidades do processo que você está aprimorando, os tipos de métricas que você coleta etc. As atividades que você usa para aprimorar um processo de desenvolvimento de software são as mesmas que você ' d use para um processo de fabricação de widgets, mesmo que o desenvolvimento de software seja bem diferente da fabricação de widgets. Tudo o que isso significa é que você precisa aplicar algum senso comum nos tipos de metas definidas para o seu processo.


1
Na verdade, a metodologia Six Sigma mais relacionada ao desenvolvimento de software é DMADI (Definir, Medir, Analisar, Design, Implementar), exceto que repetimos o MADI no desenvolvimento de software. Pessoas com esses "cintos" chamam de Lean Six Sigma DMADI, mas eu chamo de Agile.
Tae-Sung Shin

É importante distinguir entre melhorar o próprio processo de desenvolvimento e aprimorar o software que está sendo desenvolvido. Descrevi o primeiro e, com a menção de aplicar o Seis Sigma ao SDLC, acho que é sobre isso que o OP estava perguntando; O comentário de @ Tae-SungShin parece direcionado mais para o último, e eu concordo que o processo para melhorar o próprio software é um pouco diferente. Muito foi escrito sobre métodos de desenvolvimento de software, por isso não tentarei fazer isso aqui.
Caleb

-3

Como mencionado por Peter

A aplicação de seis sigma no desenvolvimento de software cria uma melhoria sustentada no desenvolvimento de um software. A aplicação de seis sigma no desenvolvimento de software resulta em rápida integração e teste do software, ajuda a criar um software livre de erros e ajuda a um gerenciamento de programa mais eficiente.

Eu posso te dar um cenário simples, eu estava trabalhando para uma empresa aeroespacial. Existe uma equipe que projeta circuitos para aeronaves. Eles estavam enfrentando muitas dificuldades no projeto de circuitos para aeronaves complexas. Devido a isso, estavam faltando prazos, apesar de terem experimentado designers. Analisei o trabalho deles e notei que eles estavam desenvolvendo circuitos do zero todas as vezes. Então, eu projetei um software que acompanhará os circuitos projetados anteriormente e sempre que eles tiverem novas aeronaves, eles usarão o meu software e escolherão a aeronave projetada anteriormente com circuitos semelhantes e os usarão com poucas modificações. Como esses circuitos foram projetados e testados anteriormente em aeronaves reais, agora eles podem se concentrar mais em novos circuitos.

Este é apenas um cenário no qual segui o processo SIX Sigma para coletar todos os dados sobre seus erros e analisei quais são as razões para isso. Em seguida, aprimore-os pelo meu software.


4
Não é que seis sigma seja ótimo; é que o gerente que deixou seus funcionários projetarem circuitos do zero deveria ter sido demitido.
Job

2
lol .. mas o mesmo gerente pediu para acompanhar o processo de seis sigma, quando eu propus este software ..
rajkumarts

-4

A aplicação de seis sigma no desenvolvimento de software é chamada de software seis sigma. O Six Sigma é basicamente desenvolvido para fabricação, no processo de fabricação ajuda as empresas a melhorar a entrega, a qualidade do produto a baixo custo. Considerando que o mesmo pode ser aplicado ao desenvolvimento de software também.

A aplicação de seis sigma no desenvolvimento de software cria uma melhoria sustentada no desenvolvimento de um software. A aplicação de seis sigma no desenvolvimento de software resulta em rápida integração e teste do software, ajuda a criar um software livre de erros e ajuda a um gerenciamento de programa mais eficiente.

No entanto, software six sigma sendo um novo conceito, você precisa do treinamento das pessoas certas. Um eficiente programa de treinamento seis sigma pode ajudá-lo aqui. Para o treinamento online de seis sigma no ambiente de desenvolvimento de software, sugiro http://www.6sigma.us /. Eu os sugiro com base na recomendação que recebi de outra empresa.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.