Frases de Desenvolvimento de Software | Frases, Mensagens e Legendas

Considerando o triste estado atual dos nossos programas de computador, o desenvolvimento de software ainda é claramente uma arte negra e ainda não pode ser chamado de disciplina de engenharia.

O aspecto mais importante do desenvolvimento de software é ter clareza sobre o que você está tentando construir.

A programação hoje é uma corrida entre engenheiros de software que se esforçam para construir programas maiores e melhores à prova de idiotas, e o Universo que tenta produzir idiotas maiores e melhores. Até agora, o Universo está vencendo.

A tarefa da equipe de desenvolvimento de software é criar a ilusão de simplicidade.

O desenvolvimento de software é uma atividade técnica conduzida por seres humanos.

Em teoria não há diferença entre teoria e prática. Na prática existe.

Qualquer idiota pode escrever um código que um computador possa entender. Bons programadores escrevem códigos que os humanos podem entender.

Existem duas maneiras de construir um design de software: uma delas é torná-lo tão simples que obviamente não haja deficiências, e a outra maneira é torná-lo tão complicado que não haja deficiências óbvias. O primeiro método é muito mais difícil.

O problema com os programadores é que você nunca sabe o que um programador está fazendo até que seja tarde demais.

Medir o progresso da programação por linhas de código é como medir o progresso da construção de uma aeronave pelo peso.

Depurar é duas vezes mais difícil do que escrever o código. Portanto, se você escrever o código da maneira mais inteligente possível, você não será, por definição, inteligente o suficiente para depurá-lo.

Lei de Hofstadter: sempre leva mais tempo do que você espera, mesmo quando você leva em consideração a Lei de Hofstadter

O teste por si só não melhora a qualidade do software. Os resultados dos testes são um indicador de qualidade, mas por si só não a melhoram. Tentar melhorar a qualidade do software aumentando a quantidade de testes é como tentar perder peso pesando-se com mais frequência. O que você come antes de subir na balança determina quanto você pesará, e as técnicas de desenvolvimento de software usadas determinam quantos erros o teste encontrará. Se você quer perder peso, não compre uma balança nova; mude sua dieta. Se você quiser melhorar seu software, não teste mais; desenvolver melhor.

Quando estou trabalhando em um problema, nunca penso em beleza, mas quando termino, se a solução não for bonita, sei que está errada.

O problema mais fundamental no desenvolvimento de software é a complexidade. Só existe uma maneira básica de lidar com a complexidade: dividir para conquistar

Se a depuração é o processo de remoção de bugs de software, então a programação deve ser o processo de colocá-los.

Um mau programador pode facilmente criar dois novos empregos por ano.

O design agrega valor mais rápido do que custo.

Nove pessoas não conseguem ter um filho em um mês.

Não importa quão engenhosa seja a demonstração no ensaio, quando você a faz diante de um público ao vivo, a probabilidade de uma apresentação impecável é inversamente proporcional ao número de pessoas assistindo, elevado à potência da quantidade de dinheiro envolvida.

O Linux só é gratuito se o seu tempo não tiver valor.

Para entender a recursão, é preciso primeiro entender a recursão.

Ao depurar, os novatos inserem código corretivo; especialistas removem código defeituoso.

Quando estou resolvendo um problema, nunca penso em beleza. Penso apenas em como resolver o problema.

O maior risco que enfrentamos no desenvolvimento de software é superestimar nosso próprio conhecimento.

Frases de desenvolvimento de software – Parte 2

Minha definição de especialista em qualquer área é alguém que sabe o suficiente sobre o que realmente está acontecendo para ficar com medo.

Qualquer tolo inteligente pode tornar as coisas maiores e mais complexas… É preciso um toque de genialidade – e muita coragem para avançar na direção oposta.

Deve-se notar que nenhum engenheiro de software com treinamento ético jamais consentiria em escrever um procedimento DestroyBaghdad. Em vez disso, a ética profissional básica exigiria que ele escrevesse um procedimento DestroyCity, ao qual Bagdá poderia ser dado como parâmetro.

É preciso um toque de genialidade e muita coragem para seguir na direção oposta.

Integração Contínua é uma prática de desenvolvimento de software onde os membros de uma equipe integram seu trabalho com frequência, geralmente cada pessoa integra pelo menos diariamente – levando a múltiplas integrações por dia. Cada integração é verificada por uma construção automatizada (incluindo teste) para detectar erros de integração o mais rápido possível. Muitas equipes descobrem que essa abordagem reduz significativamente os problemas de integração e permite que uma equipe desenvolva software coeso mais rapidamente.

Não existe uma “raiz de todos os males” no desenvolvimento de software. O design é difícil de várias maneiras. As pessoas tendem a subestimar as dificuldades intelectuais e práticas envolvidas na construção de um sistema significativo que envolve software. Não é e não será reduzido a um simples processo mecânico de “linha de montagem”. Criatividade, princípios de engenharia e mudanças evolutivas são necessários para criar um grande sistema satisfatório.

O desenvolvimento de software exige um imenso esforço intelectual. Mesmo os melhores programadores raramente conseguem sustentar esse nível de esforço por mais do que algumas horas por dia. Além disso, eles precisam descansar um pouco, e é por isso que parecem estar sempre navegando na Internet ou jogando quando você os invade.

A má gestão pode aumentar os custos de software mais rapidamente do que qualquer outro fator. Especialmente em grandes projetos, cada uma das seguintes ações de má gestão tem sido frequentemente responsável pela duplicação dos custos de desenvolvimento de software.

Em software, os consultores às vezes dizem para você aderir a certos métodos de desenvolvimento de software, excluindo outros métodos. Isso é lamentável porque se você aderir 100% a qualquer metodologia única, verá o mundo inteiro em termos dessa metodologia. Em alguns casos, você perderá oportunidades de usar outros métodos mais adequados ao seu problema atual.

O desenvolvimento de software, assim como os esportes profissionais, consegue fazer com que homens de trinta anos se sintam decrépitos.

Ainda estamos na infância para nomear o que realmente está acontecendo nos projetos de desenvolvimento de software.

Eu definitivamente gostaria de trabalhar na Microsoft, já que o desenvolvimento de software e a exploração de novas tecnologias sempre foram minha paixão, e a Microsoft é a melhor quando se trata de tecnologias de software de próxima geração.

Existem diversas técnicas para dividir o software em partes e tornar o desenvolvimento de software mais eficiente. Muitas dessas técnicas foram meio que… e todos ficaram entusiasmados, mas muito pouco benefício foi obtido depois que a coisa foi colocada em prática.

Imagine o desincentivo ao desenvolvimento de software se, após meses de trabalho, outra empresa pudesse aparecer e copiar seu trabalho e comercializá-lo em seu próprio nome…sem restrições legais a tal cópia, empresas como a Apple não poderiam se dar ao luxo de promover o estado da arte.

É mais difícil do que você imagina desperdiçar milhões de dólares, mas um processo de desenvolvimento de software falho é uma ferramenta adequada para o trabalho.

Estima-se que o uso inadequado de métodos de engenharia de usabilidade em projetos de desenvolvimento de software custa à economia dos EUA cerca de US$ 30 bilhões por ano em perda de produtividade.

Após a formatura, consegui um emprego na Manufacturers Hanover Trust em desenvolvimento de software. Acho que não estive lá por mais de um mês.

Se o DHS insistir, como as burocracias costumam fazer, que o código aberto deve ser certificado através de um processo formal e sancionado, isso interferirá no próprio processo informal do código aberto. Parece-me que o DHS está tentando transformar um projeto de desenvolvimento de código aberto em um projeto de desenvolvimento de software da Microsoft (ou IBM ou Oracle). E sabemos o que isso significa: mais erros, e não menos, de segurança e outros.