Sobre Desenvolvimento e Tecnologia

Uma visão possível sobre programadores e nosso contexto atual em que a tecnologia evolui de maneira exponencial e com uma extrema velocidade seria o foco na resolução de problemas, partindo do principio que cada problema é intrinsecamente diferente dos outros, o conjunto de tecnologias, práticas e arquitetura empregadas para o desenvolvimento de um software pode variar muito, como elas são normalmente complexas e extensas, não é humanamente possível conhecer todas elas a fundo, o que nos leva a conhecer de forma superficial uma arcabouço enorme de ferramentas. Nesse sentido, o programador deve se portar como um juiz que não conhece todas as sentenças, deve a cada novo caso buscar referencias, especialistas e estudar as leis envolvidas em determinado contexto para que então seja possível a tomada de decisão de forma razoável. Por tanto, o foco deve ficar na resolução dos problemas, em arquiteturas de maneira mais ampla e em um repertório de ferramentas úteis para solução de determinados problemas, este último se torna muito custoso nos dias atuais já que a quantidade de bibliotecas, frameworks e práticas cresce exponencialmente de forma assustadoramente rápida. Propor uma solução razoável depende do contexto implícito envolvido, é necessário levar em consideração, não só coisas como escalabilidade, performance, consumo de memória, como estamos acostumados a pensar como engenheiros, mas em outros aspectos mais subjetivos e que realmente entregam valor ao cliente, aspectos técnicos são “legais” para desenvolvedores que amam o que fazem, mas o valor deles é nulo se a solução não resolve de forma satisfatória as necessitas do cliente. Devemos primeiramente levar em conta o atendimento as expectativas do cliente e ao desenho do processo, o sistema deve ser prático, automatizar e facilitar processos do cliente, resolver o problema do cliente e entregar uma solução que gere valor para o negócio. Um sistema realmente eficaz é um sistema que se torna parte do processo do cliente, deve ser como a luz elétrica, não pensamos nela a todo instante, mas de forma transparente ela está presente em cada instante tornando nossa vida mais fácil, prazerosa e produtiva.
Contexto, contexto, contexto! Os prazos, a especialização da equipe de desenvolvimento, a necessidade do cliente, os custos do projeto, a usabilidade, aderência ao desenho da solução do problema e a experiência que o software entrega devem ser o foco de uma boa peça de software. Detalhes técnicos, arquiteturais e as tecnologias empregadas para o desenvolvimento só são interessantes para nós, nerds, que adoram tecnologias. Não se codifica por codificar, nunca devemos esquecer que estamos, agilizando, automatizando, criando valor e gerando resultados, tornando a experiência dos usuários mais agradável e tornando o mundo mais produtivo e eficaz, não devemos focar em tecnologia pela tecnologia, devemos focar em usar a tecnologia para potencializar a existência humana, estamos aqui para deixar tudo mais rápido, eficaz e agradável para que nós humanos possamos usufruir melhor que cada segundo que nos pertence. Não sejamos escravos da tecnologia e ávidos em dedicar cada segundo da nossa existência a desenvolver/aprender novas técnicas e tecnologias, o foco deve estar em nos tornar melhores como humanos e em como tornar o mundo melhor para nós, humanos.
