Cristian Marucci faz parte da equipe da Axioma – Soluciones Informáticas Concretas, uma empresa jovem especializada no desenvolvimento de aplicativos. Hoje, ele nos traz um post de convidado especial para todos aqueles profissionais que trabalham com desenvolvimento de software e novas tecnologias: com ampla experiência no tema, nos conta o que levar em conta na hora de tomar decisões técnicas e como alinhá-las às demandas do cliente.
——-
A velocidade da tecnologia obriga-nos a uma constante investigação das inovações. Isso é fundamental: sem uma atualização e capacitação diária, deixamos de ser competitivos. Então, são desenvolvidas novas técnicas, novas linguagens de programação que buscam resolver as problemáticas usuais de maneira mais eficiente. Mas, se perdermos o foco, isso pode ser contraproducente. Podemos acabar desenvolvendo soluções de software que serão admiradas por um colega, mas que poderão não conquistar a mesma admiração no caso de nossos clientes.
O que devemos levar em conta na hora de tomar decisões técnicas de desenvolvimento?
Embora possamos usar linguagens ou técnicas de programação recém saídas do forno, temos que ser precavidos e considerar que a primeira versão de qualquer produto, normalmente, traz muitos erros que serão corrigidos em versões posteriores, quando ele evoluir e se estabelecer. Além disso, se utilizarmos um produto consolidado, encontraremos milhares de pessoas nas diferentes comunidades online que, já experientes, terão a solução para nossos problemas técnicos.
É importante participar ativamente dessas comunidades: certamente, poderemos encurtar o caminho com a ajuda de outros especialistas.
Outro ponto a levar em conta é que a curva de aprendizagem tem um custo associado, que o cliente acaba pagando. Em contraste, se trabalharmos com segurança, usaremos o tempo de forma muito mais sábia. Durante o projeto, poderemos nos ocupar mais com as necessidades do cliente, com a eficiência do produto final e menos com a própria capacitação.
Mas isso não significa que você não deva encarar desafios, apenas ter em mente as vantagens e desvantagens na hora de fazê-lo e, para isso, a comunicação com o cliente é fundamental, para entender suas necessidades presentes e futuras.
O que eles querem
Existem tipos diferentes de clientes, mas o que todos querem, definitivamente, é uma solução. Não adianta nada entregar um software excelente para vender se, para utilizá-lo, o cliente deve migrar o sistema operacional de todas as suas equipes.
Se necessitamos de sua aprovação para tomar uma decisão sobre qual linguagem de programação usar e nosso cliente não está capacitado, então devemos nos transformar em humildes professores e explicar as opções disponíveis. Muitas vezes, os clientes se apegam ao que conhecem e esse conhecimento pode estar desatualizado.
Na hora de explicar essas opções, devemos levar em conta duas coisas: primeiro, como a decisão afeta sem negócio a curto, médio e longo prazo; e, segundo, lembrar a frase de Albert Einstein, “você nunca entende algo verdadeiramente até que seja capaz de explicá-lo à sua avó”. Devemos ser claros, sem usar termos técnicos, nem abreviações, nem palavras próprias da área. É melhor usar metáforas, comparações, exemplos do mundo real que possam ser compreendidos por uma pessoa que não está por dentro.
Para poder tomar uma decisão correta, devemos levar em conta os requisitos no nível macro. Quais sistemas operacionais o cliente usa? Quais dispositivos ele utiliza? Com quais prazos ele está disposto a trabalhar? Com é o problema inicial que ele busca solucionar? Nosso desenvolvimento terá custos associados de terceiros? Será necessário realizar a compra de licenças? As respostas a essas perguntas irão mostrar as opções possíveis.
Outro ponto é perguntar aos nossos clientes com quais recursos eles contam, sobretudo se a manutenção do software não será feita com seus próprios recursos. Você deve se assegurar de que estejam capacitados e, se não estiverem, orientá-los para que decidam qual o melhor caminho para eles. Em um mundo ideal, teríamos a liberdade de escolher a linguagem de programação e logo bolaríamos um plano de capacitação para seu pessoal. Mas a realidade é que, muitas vezes, os clientes prefererirão se ater aos conhecimentos de sua equipe e desenvolver uma solução em terreno conhecido.
Conclusões
A decisão de quais tecnologias e linguagens de programação usar na hora de desenvolver uma solução tem que estar motivada pelas necessidades e recursos do cliente, considerando também nossa experiência e habilidades como desenvolvedores.
Para contar com todos os elementos necessários para uma decisão correta, é fundamental manter uma comunicação excelente com nossos clientes. Temos que conhecer não apenas sua situação atual, mas também suas expectativas de crescimento e considerar esse ponto na hora de tomar decisões.
E você não precisa ter medo de novidades, mas sim consciência de suas limitações de suporte nas comunidades e os erros lógicos de qualquer versão inicial de um produto. Antes de embarcar em uma nova aventura, é necessário fazer testes e assegurar que você poderá satisfazer as necessidades do cliente.
Espero seus comentários!
Autor: Cristian Marucci, da Axioma Soluciones Informáticas Concretas
—-
Quer escrever como convidado no blog da Workana? Envie sua proposta pra nós, para [email protected].