CRUDing Open Source
José Valim, um dos integrantes do time Rails Core, explica como o open source ajudou em sua carreira e como pode influênciar o futuro de muitos desenvolvedores.
Rastreando mudança e inovação na comunidade de desenvolvimento de software corporativo.
Postado por Mark Levison , traduzido por André Pantalião em 05 Mai 2009 03:20 PM
O que siginifica Qualidade no Desenvolvimento de Software? Como é usado hoje, Mike Bria observa: "Qualidade" se refere á "ausência de defeitos" ao invés da "presença de valor", de modo que isto representa o que é normalmente utilizado no uso diário.
Ele continua e sugere:
"Qualidade" deve ser usada como uma medida da utilidade funcional/aparente para nosso consumidor, e not não como medidas de defeitos. Realmente, deveria somente ser assumido que defeitos estão usualmente ausentes. Isto deveria apenas estar implícito no que significa ser um Profissional.
Então: Eu aqui proponho que nós como profissionais de software e homens de negócio parem de usar a palavra "qualidade" siginificando uma "medida de defeitos;.
Mike pensa que nós temos pessoas escrevendo código menos frágil se o foco não é a qualidade observada como menos defeitos, mas qualidade como adequado para uso pelo cliente. Ele não consegue pensar em nenhum outro produto onde o usuário iria dizer que é de boa qualidade só porque tem poucos defeitos. Ainda que seja a direção que seguimos em software.
Lisa Crispin, co-autora do Agile Testing: A Practical Guide for Testers and Agile Teams, comentou “Eu nunca gostei de medir defeitos então é difícil pensar sobre como chamar isto.”
Christian Vest Hansen, citando Robert Glass, diz que qualidade é:
…uma coleção de atributos: portabilidade, confiabilidade, eficiência, usabilidade, testabilidade, facilidade de entendimento e modificação.
Cada um destes atributos pode ter diferente importância em diferentes projetos, mas qualidade nunca pode ser um deles sozinha. Alguns projetos podem não ligar para portabilidade como um todo, e um produto que só é confiável e nada mais, não pode ser considerado um produto de qualidade.
James Bach pensa que a visão tradicional de qualidade é um mito que’s não está alinhado com o desenvolvimento de software: “A qualidade de um produto é construída no produto por seu time de desenvolvimento. Eles criam qualidade ao seguir práticas de engenharia de software para projetar o código-fonte de forma que ele atenda completamente os requisitos do usuárior.” Ao invés disso, ele propõe um novo mito:
Um produto é uma organização dinâmica, como um jardim que é sujeito às condições do tempo. Um produto de alta qualidade presta um atendimento compentente e sem problemas através do tempo. Como reais jardineiros, no início nós não temos todos os poderes conhecimentos que temos à medida que crescemos nossa plantação. Nós revemos as condições e o estado de nosso produto à medida que avançamos. Nós tentamos antecipar problemas, e reagimos para corrigir os problemas que ocorrem. Nós tentamos entender o que nossa arte pode e não pode fazer, e gerenciamos as expectativas de nosso cliente adequadamente. Nós sabemos que nosso produto está sempre sujeito a se deteriorar, e o sabor que terá para nossos clientes pode variar. Nós também sabemos que mesmo a mais perfeita safra de nossa plantação pode ser arruinada posteriormente por um mau cozinheiro que a utilize. Qualidade, em um grau importante, está fora de nossas mãos.
Depois de muitos anos vendo coisas funcionarem e falharem (ou trabalharem e depois falharem), Eu penso em qualidade como algo passageiro. Pode ser boa o suficiente, algumas vezes. é melhor ser melhor do que bom o suficiente. Mas enfraquece; sempre enfraquece, como algo natural.
Por fim, JB Rainsberger susugere: “Quando paramos de perseguir uma qualidade objetivamente medível, nós voltamos a tentar satisfazer pessoas em específico, eu creio que nos ajuda a entregar software mais apropriado e lucrativo.”
Poderia parecer que não há um entendimento claro do que qualidade representa. Ao invés disso, há um entendimento que qualidade isn’t não é uma medida de defeitos. Os autores concordam que precisamos chamar uma espada de espada (achar o nome correto para as coisas), assim podemos aceitar os defeitos como deficiências.
Qualidade pode ter muitos significados, e muitos deles podem ser bem diferentes, pois ela está fortemente relacionada a opinião e sensação da pessoa.
Para mim por exemplo, o Firefox é o browser com maior qualidade, pois atende melhor as minhas necessidades e minhas espectativas.
Já outras pessoas preferem o Chrome, e umas até o IE (rsrs).
Parabéns pela tradução André! Ficou muito boa e o assunto é bem interessante.
Abraços!
é essa exatamente a visão que todos deveriam ter sobre qualidade. Não é somente um ponto, devemos procurar qualidade em tudo, porque são pessoas diferentes que sentem a falta de qualidade.
Um desenvolvedor sente a falta por ter que manter um código horrível.
O cliente sente a falta quando o software não funciona como ele queria, ou foi entregue fora do prazo, ou simplesmente porque não foi comunidado de algo.
Mas estamos fazendo software para o cliente, ele tem que ser nosso foco, ou melhor, o que agrega a ele. É como a Toyota faz, identifica o que é valor agregado para o cliente e comunica isso a todos os envolvidos em criar o produto.
Parabéns pelo post.
José Valim, um dos integrantes do time Rails Core, explica como o open source ajudou em sua carreira e como pode influênciar o futuro de muitos desenvolvedores.
Essa palestra aborda novos conceitos sobre o JBoss Seam 3 na prática e sua futura versão além de incluir tópicos como Weld e CDI que estão diretamente ligados.
Iremos abordar as principais dúvidas de um programador ao fazer a certificação Java. Neste artigo estaremos limitados a SCJP que é uma das mais comuns e desejadas pelos programadores Java .
Como seria XP, depois de dez anos de aplicação prática, sucessos, fracassos, adaptação, simplificação e otimização constantes?
Quando Scrum passou a atrapalhar, a implantação de Lean veio de forma natural. Essa palestra aborda os desafios e soluções da implantação de Lean num projeto maduro e sempre em desenvolvimento.
Paulo Silveira entrevista Martin Fowler e Paulo Caroli que falam sobre a realidade do desenvolvimento de software.
Este artigo apresenta o conceito de WBS utilizado no gerenciamento de projetos com base no PMBOK e como esta técnica pode ser utilizada para listar as User Stories que são utilizadas no Scrum.
Uma área bastante interessante da sociologia é aquela que estuda as diferenças entre as gerações, desde os "Baby Boomers" até a recém chegada Geração Z.
2 comentários
Acompanhar Discussão Responder