As dinâmicas da criatividade no desenvolvimento de software

A criatividade é crucial no desenvolvimento de software, pois é a fonte para resolver problemas complexos e inovar.
O setor tem dado cada vez mais ênfase à usabilidade do software. Essa questão existe há algum tempo: em 1995, a Microsoft tentou comprar o Quicken, programa de gestão financeira da Intuit, pela impressionante soma de $1.5 bilhão, principalmente porque os clientes o consideravam mais fácil de usar e entender do que o próprio software da Microsoft.
Em seu livro "Bringing Design to Software", Terry Winograd afirma:
"Quando engenheiros de software ou programadores dizem que um software funciona, normalmente querem dizer que ele é robusto, confiável e atende à sua especificação funcional. Essas preocupações são, de fato, importantes. Qualquer designer que as ignore corre o risco de um desastre.
*Mas essa perspectiva voltada para dentro, com foco na função e na construção, é unilateral. Para projetar software que realmente funcione, precisamos passar da visão do construtor para a visão do designer, tomando o sistema, os usuários e o contexto em conjunto como ponto de partida. *
Quando um designer diz que algo funciona —por exemplo, a composição de uma capa de livro ou o projeto de um conjunto habitacional—, o termo reflete um significado mais amplo. Um bom design produz um objeto que funciona para as pessoas em um contexto de valores e necessidades, para gerar resultados de qualidade e uma experiência satisfatória."
Para resolver os problemas complexos atuais no desenvolvimento de software, o conhecimento técnico já não é suficiente.
A criatividade no desenvolvimento de software
Praticantes de métodos ágeis contam com o talento criativo das pessoas para improvisar soluções para problemas complexos. O desenvolvimento de software é um processo iterativo de descoberta. Cada problema resolvido é um passo mais perto da solução necessária, e todos aprendem mais sobre o negócio e a tecnologia.
A programação é complexa, o que torna provável a participação da criatividade na resolução de problemas.
Em um estudo Delphi recente, foram identificadas habilidades importantes de engenheiros de software excepcionais. Especialistas do setor concordaram que ser criativo —por exemplo, abordar um problema por diferentes ângulos— é uma habilidade essencial para resolver problemas e vital para ter sucesso como desenvolvedor de software. No entanto,
a criatividade é um conceito multidimensional que não é tão fácil de definir quanto se poderia pensar.
Lidar com a incerteza
Decidir exatamente como o software será durante a fase inicial de requisitos é visto hoje como uma forma de trabalhar bastante antiga e desatualizada. A flexibilidade que os processos ágeis trouxeram ao desenvolvimento de software costuma ser considerada positiva para o setor e uma ótima maneira de construir bons softwares.
Um componente do processo de desenvolvimento de software são os fatores humanos de comunicação e flexibilidade, e todos os problemas habituais que acompanham a entrega de um produto.
Considerações finais
A criatividade não precisa comprometer um processo confiável e funcional. Assim como os métodos ágeis coexistem com a programação estruturada, os processos criativos podem estar no centro de uma estratégia de software que funcione bem em qualquer empresa.