Quando trabalhando em uma agência web, o que mais ouvia eram pedidos para criar "sisteminhas" de notícias, fotos, e-mails, entre outros. Argumentava que existem soluções prontas para isso; que fazer o "sisteminha" envolve muitos aspectos além do software e que se usassemos padrões abertos teríamos mais qualidade. Infelizmente, alegavam que queriam ter controle sobre o software - a famosa síndrome do "Not Made Here".
Em desenvolvimento web, é quase certo que alguém já criou a solução do seu problema. Existem módulos que pode-se adicionar ao seu software, ou mesmo usar um software por completo, como é o caso do Drupal, do Wordpres, etc. Esses módulos, ou softwares já trazem as tarefas comuns implementadas, e muito bem implementadas. É uma questão de não reinventar a roda, um conceito muito enfatizado no livro "The Pragmatic Programmer" através do príncipio DRY (Don't Repeat yourself). Se já tem pronto, vamos usar e nos preocupar com o modelo de negócios do cliente, apenas.
Implementar um CMS, por exemplo, envolve vários aspectos além do próprio software. Há preocupações com segurança de informações, treinamentos, manuais, usabilidade, , e muitos outros que, provavelmente, serão dispensados, pelo simples fato de o prazo ser curto e, então, não "haverá tempo" de fazer. A ausência de tais itens acarretará problemas no futuro: na manutenção, no suporte e, principalmente, quando aparecerem os erros críticos. Não seria bem melhor aprender a usar uma ferramenta bem testada e bem implementada, com boa documentação?!

O ser humano tem tendência a errar. E programadores são humanos (pelo menos em teoria). Ao iniciar um projeto “from scratch” para uma agência web, por exemplo, muitos erros aparecerão e permanecerão no software/site, visto que não será dado o tempo necessário para o planejamento desse sistema. Talvez nem mesmo haja alguém para fazer esse planejamento, apenas o operacional. Isso acontece muito em empresas web pequenas, mesmo existindo vários softwares e padrões abertos na internet para serem usados à vontade. Exemplificando, empresas pequenas poderiam usar muito bem Drupal, Wordpress, Joomla, e vários outros CMS's; se forem aplicações, temos frameworks como CakePHP, Zend, CodeIgniter, que já trazem as melhores práticas de desenvolvimento consigo; além desses, é quase que falta de educação não utilizar XHTML e CSS, junto com Tableless nos projetos. O pensamento de querer fazer tudo in-house, criar seu próprio sistema, gera projetos ruins, sites mal feitos e mal planejados, e aplicações com uma infinidade de problemas.
As situações citadas são relacionadas ao desenvolvimento web, mas podem muito bem serem aplicadas a outros ambientes. Os conceitos de DRY estão, finalmente, sendo massivamente aplicados na computação, principalmente no exterior. Devemos sim nos adequar a isso. Onde trabalho, utilizamos Drupal para websites e CakePHP para aplicações. Não nos preocupamos tanto com aspectos de implementação comuns, porque o software/framework já lida com isso para nós. Assim, podemos focar, ao máximo, no negócio do cliente e atendê-lo. Justamente por não ter a tal síndrome do "Not Made Here", podemos fazer projetos melhores e com mais qualidade, já que são milhares de pessoas cuidando da parte mais “perigosa”. Quem não utiliza CMS/Framework deve adotar um, o mais breve possível, pois o mercado está sempre mais competitivo e quem tiver qualidade prevalece. Cada caso é um caso e deve ser analisado, mas a maioria se adequa às soluções existentes.