Eu costumo explicar que a programação é a solução criativa de problemas. Você tem um problema - deseja um recurso em um produto (e geralmente escolho um produto conhecido, Amazon.com, MS Word etc.), e ele não está lá. Isso nunca foi feito antes, e você é o primeiro, por isso é como qualquer projeto de arte - você tem uma visão, mas precisa descobrir um caminho.
Também me concentro no fato de que há mais de uma maneira de resolver o problema, várias maneiras muito ruins e provavelmente mais de uma boa maneira. A longo prazo, pode haver um caminho melhor , mas esse caminho não será óbvio por um longo tempo (extensibilidade, reutilização etc.); portanto, no momento do desenvolvimento, há muitas solicitações de julgamento importantes.
Finalmente, o produto final pode ser amado ou odiado pelo destinatário. Assim como algumas pessoas amam Picasso e outras não conseguem fazer cara ou coroa da arte moderna - algumas podem amar um recurso e outras podem odiá-lo. Você faz o melhor que pode para a maioria das pessoas e acha que não pode agradar a todos.
Focando em:
- território desconhecido
- ninguém responde
- sujeito a interpretação
Mostra que esse trabalho se parece muito mais com arte e muito menos com trabalho repetitivo e chato.
Eu converso sobre isso com artistas com bastante frequência (e eles parecem ter uma crença instintiva de que o trabalho com computadores não é criativo. Geralmente, também consigo relacioná-lo com a forma de arte favorita do artista. Em algum nível, a maioria dos artistas também é técnica - pintura , dançar, fazer música e provavelmente qualquer outra arte - todos envolvem uma série de atividades repetitivas que levam você ao ponto de executar algo novo, diferente e criativo.Para assim, os artistas geralmente têm problemas em negar que atividades aparentemente repetitivas possam levar a obras de inspiração e beleza.
Nesse ponto, eles geralmente desejam admitir que, apenas porque minha "arte" envolve um conjunto de instruções de sintaxe bizarras e diagramas UML de aparência branda, isso não significa que não seja criativo, pois essas linhas de código e os modelos do sistema acabam criando algo bem diferente da soma de suas partes.