Ao se pensar em desenvolvimento de software, é comum se lembrar de processos, metodologias, códigos e a construção de um produto que atenda às necessidades do cliente e seja entregue no tempo estimado possuindo um baixo custo.
Surgem novas maneiras de se desenvolver software, novas metodologias, e pensamentos evoluem com o tempo, trazendo maior maturidade para a área.
Mas o ponto principal ao qual me refiro não diz respeito a uma metodologia de desenvolvimento de software em específico, mas sim a uma característica comum entre elas: a importância de se conhecer as pessoas – conhecimento técnico e conhecimento de negócio.
O desenvolvimento de software é formado pela colaboração e interação entre as pessoas – quanto maior essa interação, muito provável é a chance de se construir um software que atenda às necessidades do cliente.
O entendimento das ideias de uma pessoa para se construir algo que atenda às suas necessidades é o ponto inicial. As ideias, muitas vezes, são bem claras em nossos pensamentos, podendo não ser tão claras quando ditas a outra pessoa.
Esse entendimento fica ainda mais difícil quando misturado aos conhecimentos técnicos de desenvolvimento de software.
Entender uma nova ideia demanda uma forma de raciocinar, muitas vezes, fora daquela a que estamos acostumados a pensar. Com relação a software, devemos ser ainda mais cuidadosos, pois os conhecimentos que temos, quando vamos iniciar em um novo projeto, são conhecimento técnicos correlatos ao desenvolvimento de software e, quando ouvimos uma nova ideia, uma nova forma de pensar é transmitida, e o cuidado está ao fato de não deixar os conhecimentos técnicos interferirem nos novos conhecimentos de negócio.
Para facilitar o entendimento da nova ideia proposta, é necessário atentar para o que está sendo dito pela pessoa, entender apenas o domínio em sua essência. Essa atividade por si só já pode ser complexa demais, uma vez que nem sempre entendemos tudo quando ouvimos apenas uma vez ou explicado somente de uma forma.
Os conhecimentos técnicos de desenvolvimento em si, tais como arquitetura, paradigmas, linguagens e banco de dados, só devem ser definidos após se obter um entendimento confiável do que se trata a ideia – isso trará maior clareza para que se possa escolher e definir quais são as melhores.
Não pensar assim pode ser catastrófico para o projeto, dificultando por completo o entendimento do negócio e da ideia que a pessoa está propondo. Essa dificuldade de entendimento surgiria pelo fato de se misturar dois tipos de conhecimentos que deveriam ser conciliados, e não misturados, comprometendo de forma séria a entrega do produto final.
Conhecer as pessoas com as quais se trabalha é importante. Varia desde conhecer do cliente, qual a melhor forma para se obter as informações dele com clareza, até conhecer as pessoas da equipe, quais as reais habilidades de cada um, em quais ambientes mais gostam de trabalhar, se é no escritório ou home office, de manhã ou a noite.
Quando esses conhecimentos são conciliados, o resultado que o produto final tende a atingir é muito satisfatório. Antes de conhecer as especificações de cada projeto, mais importante é conhecer e saber trabalhar da melhor maneira com cada pessoa envolvida, melhorando assim a colaboração e a interação entre elas e gerando um bom resultado final.