Scott Hanselman, em seu blog Computer Zen, propõe uma hierarquia das necessidades de Maslow adaptada ao desenvolvimento de software, definindo os níveis de necessidades que devem ser satisfeitos para atingir a excelência nesta área.
Abraham Maslow é famoso pela criação da hierarquia das necessidades humanas, dividida em cinco níveis, sendo os inferiores as necessidades básicas, enquanto que os superiores representam aspectos sócio-psicológicos de satisfação e realização:
Segundo Maslow, a hierarquia das necessidades estabelece que as pessoas somente se preocupam com um determinado nível, quando o nível anterior está satisfeito; isto é, irão se preocupar, por exemplo, com necessidades de relacionamento somente quando as necessidades de segurança e as fisiológicas estiverem satisfeitas.
De forma análoga, os níveis propostos por Hanselman estão dispostos em forma de pirâmide, reforçando a ideia de não ser possível atender aos níveis superiores enquanto as necessidades da base ainda não tiverem sido totalmente satisfeitas. Veja a pirâmide proposta por Hanselman, também com cinco níveis:
Hanselman descreve, então, os cinco níveis de necessidades para o desenvolvimento de software, os quais apresentamos abaixo em tradução livre:
Revisable - Revisável (Controle de mudanças no desenvolvimento)
O nível mais básico: exige que o código possa ser desenvolvido e revisado de maneira controlável e consistente. Para isso é necessário ter um método e um fluxo de trabalho claros para o desenvolvimento e para os testes.
Buildable & Deployable - Implementável (Controle de mudanças na produção)
Quando o nível anterior de controle do código for dominado, pode-se pensar no nível Buildabe & Deployable. Neste nível, a preocupação repousa sobre a implementação do software, estabelecendo procedimentos específicos de contingências e mudanças.
Maintainable - Fácil manutenção (Controle Pós-implementação)
Considerando que os níveis anteriores estejam garantidos, a atenção se dirige agora para a manutenção do software implementado. Neste nível deve haver padronização para correção de bugs e para a verificação do software.
Refactorable - Refatoração facilitada (Oportunidades de Melhoria)
Os três níveis anteriores são básicos para o bom desenvolvimento de software, e uma vez satisfeitos pode-se dar um passo na direção de códigos mais fáceis de reutilizar, modificar e melhorar. A refatoração, com se sabe, mantém a capacidade de melhorar o software existente, além de deixá-lo mais claro e às vezes mais eficiente.
Bragging Rights - Direito ao orgulho (Excelência no desenvolvimento)
O nível mais alto da pirâmide de Maslow é a auto-realização. De maneira análoga, no desenvolvimento de software, um desenvolvedor busca criar códigos de qualidade com excelência em arquitetura, funcionalidades, e facilidade de manutenção e atualização - em busca de respeito, autoridade técnica e reconhecimento de suas habilidades.
Hanselman conclui ressaltando a importância de uma liderança forte e consciente. Criar arte é a parte divertida, diz, mas isso sozinho não assegura o progresso do projeto. O líder técnico precisa reconhecer o momento certo para ser um 'artista' e o momento certo para investir em processos fundamentais, e com isso viabilizar a escalada para níveis mais altos da pirâmide de necessidades.