O conceito KISS esta numa distribuição GNU/Linux que é Mãe de muitas outras: o Slackware.
Também está presente no servidor de e-mail “qmail” que foi desenvolvido para ser mais seguro que o Sendmail. Tanto que ainda existe um prémio de US$500 para a primeira pessoa que descobrir uma falha de segurança na última versão.
A Wikipédia cita:
https://pt.wikipedia.org/wiki/Keep_It_Simple
Keep It Simple (ou : KISS principle acrônimo em inglês de: Keep It Simple, Stupid e também um trocadilho de “princípio do beijo”) é um princípio geral que valoriza a simplicidade do projeto e defende que toda a complexidade desnecessária seja descartada. Serve como fórmula útil em diversas áreas como o desenvolvimento de software, a animação, a engenharia no geral e no planejamento estratégico e táctico. Também é aplicado na Literatura, na Música e nas Artes em geral.
Variações comuns são: “Keep It Sweet & Simple”, “Keep it Short & Simple” e “Keep it Simple, Silly”
Este princípio provavelmente teve a sua inspiração nos princípios da Navalha de Occam, e das máximas de Leonardo da Vinci “Simplicidade é o último grau de sofisticação”, Mies Van Der Rohe “Menos é mais”, Albert Einstein “Tudo deve ser feito da forma mais simples possível, mas não mais simples que isso”, de Antoine de Saint-Exupéry “A perfeição é alcançada não quando não há mais nada para adicionar, mas quando não há mais nada que se possa retirar”).
Em programação há um método chamado de: Método dos refinamentos sucessivos.
O método de refinamento sucessivos ou Top-Down é um método que leva à programação estruturada.
Ele pode ser usado para fazer KISS.
Cito: http://www.inf.unioeste.br/~claudia/aula1905.pdf
"A ideia básica do método é a seguinte: partindo-se de um dado problema, para o qual se deseja encontrar um algoritmo de solução, deve-se procurar subdividi-lo em problemas menores (subproblemas) e de solução mais simples. Alguns destes terão solução imediata e outros não. Os subproblemas para os quais não for possível encontrar uma solução direta devem ser novamente subdivididos. Assim, o processo é repetido até que se consiga encontrar
um algoritmo para solucionar cada um dos subproblemas. Então, o algoritmo de solução do problema original será composto pela justaposição dos algoritmos usados para solucionar cada um dos subproblemas em que o problema original foi decomposto. "
"As principais vantagens do método dos refinamentos sucessivos podem ser resumidas no:
• estímulo à abordagem gradativa de problemas, progredindo o processo da menor para a maior quantidade de detalhes; e
• estímulo à modularização, facilitando a identificação de sub-algoritmos, incentivando a reutilização de porções de código já prontas e facilitando o processo de detecção de eventuais erros de programação. Como consequência, têm-se, ainda, a obtenção de programas claros e fáceis de entender, uma melhoria de produtividade e redução dos custos de produção de software. Por outro lado, o método descrito é deficiente no sentido em que sua aplicação é restrita às fases de projeto detalhado e implementação do ciclo de vida de um software. Assim, para as demais fases do ciclo, em especial a Análise e Definição da arquitetura do sistema, onde os erros são mais importantes e caros, o analista vê-se obrigado a utilizar outras técnicas. "
Vamos agora ver o que é programação estruturada pois ela também pode ser usada para fazer KISS.
https://pt.wikipedia.org/wiki/Programação_estruturada
Programação estruturada é uma forma de programação de computadores que preconiza que todos os programas possíveis podem ser reduzidos a apenas três estruturas: sequência, decisão e iteração (esta última também é chamada de repetição) e ao uso extensivo de sub-rotinas, desenvolvida por Michael A. Jackson no livro “Principles of Program Design” de 1975.
Tendo, na prática, sido transformada na programação modular, a programação estruturada orienta os programadores para a criação de estruturas simples nos programas, usando as sub-rotinas e as funções. Foi a forma dominante na criação de software anterior à programação orientada por objetos.
Apesar de ter sido sucedida pela programação orientada por objetos, pode-se dizer que a programação estruturada ainda é muito influente, uma vez que grande parte das pessoas ainda aprendem programação através dela. Para a resolução de problemas relativamente mais simples e diretos, a programação estruturada é muito eficiente.
Na programação estruturada o programa é executado de cima para baixo.
Há de acrescentar também que inúmeras linguagens ainda extremamente relevantes nos dias de hoje, como Cobol, PHP e Perl ainda utilizam o paradigma estruturado (muito embora possuam suporte para a orientação a objeto).
Logo, podemos dizer que há várias formas de programar e de obter o sucesso esperado.
Se for usar KISS para isto pense em:
. Refinamentos sucessivos
. Programação estruturada
. Programação Orientada a Objetos
E você já usou KISS?