DesenvolvimentoPense. Porque nós fazemos software?

Pense. Porque nós fazemos software?

-

Publicidade

Você faz software por que outras pessoas precisam dele. Muitos desenvolvedores, mesmo os mais experientes esquecem algumas vezes que o motivo da construção do lindo software que eles estão fazendo é que alguém precisa do sistema para realizar alguma tarefa e eles só vão usar o sistema se ele atender as suas necessidades.

Não importa o quão lindo seja o software tecnicamente, ou quais técnicas e padrões de projeto foram usados na construção do sistema, no final das contas, alguém precisa usar e esse é o motivo de tudo. Essas afirmações tem vindo a minha cabeça ultimamente porque tenho “esbarrado” com muitos artigos e decisões sobre “qualidade” VS “entrega”, diversas são os artigos dizendo a você, quase que como um hino: “Não negocie qualidade.” Eu particularmente discordo, construir algo do zero não é fácil e como tudo na vida, decisões aplicadas ao contexto devem ser tomadas e muitas vezes, o problema é que a falta da qualidade no prazo solicitado não é deixada clara para quem solicitou, ou mesmo que o plano de negócio da empresa não está alinhado com o direcionamento da TI, ou mesmo que não existe plano de negócio.

O fato é que no fim das contas alguém tem de decidir entre entregar valor ao cliente e produzir o melhor software em aspecto técnico, com a melhor estrutura, performance e etc.

Eu particularmente acho que o problema não está no débito-técnico produzido momentaneamente, eu vejo um problema muito maior na falta de alinhamento entre o que é produzido e a estratégia da empresa.

E o que foi produzido para uma demanda pontual, pode ser refeito logo em seguida, desde que os custos adicionais fiquem claros para quem solicitou.

Casos como esse provavelmente aparecem todos os dias, custos adicionais com testes, falta de arquitetura bem definida, problemas com reuso de componentes mal projetados, esses fatores são provavelmente resultado de desconhecimento de engenharia de software ou de decisões de negócio mal planejadas.

Certa vez, tive de lidar com uma demanda relativamente fácil de implementar, porém, o componente que deveríamos alterar era utilizado em uma das áreas de mais demanda do sistema e que operava 24h na empresa, tínhamos 2 dias de prazo para realizar a alteração ou informar a diretoria que não atenderíamos a demanda.

O problema maior não era a dificuldade técnica, mas, a extensão dos testes que teriam de ser feitos e já estávamos no final do sprint, sem falar que os fornecedores de outro estado e outra operadora dependiam da alteração, ou seja, em termos de negócio, o prejuízo seria enorme.

Eu sugeri uma abordagem diferente e “errada”: Minimize o risco, copie o componente atual, modifique e aplique na área que precisa dele.

Uma revolução foi disparada entre os desenvolvedores, eu que sempre defendi fazer o certo, estava sugerindo uma gambiarra, logo obtive a resposta padrão: “faça certo da primeira vez”. Tentei expor os motivos para realizar a gambi, final de sprint, testar o sistema todo sem scripts automáticos, testar as outras alterações realizadas no sprint, horas adicionais de desenvolvimento e alto risco de para o setor por causa de problemas nessa área, novamente, a resposta padrão: “faça certo da primeira vez”.

Pois bem, no final das contas, aconteceu o pior, introduzimos um problema no componente que fez com que tivéssemos de retirar do ar a nova versão do sistema, isso por causa de brilhantismo técnico, depois do transtorno, fica a pergunta, pensamos sempre em entregar mais valor de negócio para o cliente, equilibrando o desafio técnico com a necessidade?

Bom, vou tentar deixar aqui um conjunto de conselhos para que vocês meditem comigo:

Lembre sempre, o motivo da construção do software é uma necessidade do cliente. A engenharia de software ajuda você a fazer o um software melhor, mais fácil de manter, com mais qualidade, mas, lembre sempre que sem usuário não existe sistema e que as oportunidades para o sistema podem não esperar você. Veja o exemplo do “Segundo sistema” no livro: o mito do homem-mês.
Avalie o impacto. Algumas alterações não são estratégicas e as pressões associadas são somente fogo de palha da diretoria, na verdade, as vezes nem existe um plano para utilização do recurso em questão. Mas, em certas horas, o seu brilhantismo pode aumentar drasticamente os custos do projeto, ou mesmo impossibilitar a utilização do sistema simplesmente porque você foi tão lento que deixou o momento certo passar. Mas, não se engane, não se venda, deixar a qualidade de lado sempre é uma decisão difícil e não existe uma fórmula mágica para decidir o que fazer, dependendo do que for solicitado, eu posso estar errado e o melhor seja dizer não.
Deixe as coisas claras. Se você decidir fazer do jeito aparentemente mais fácil, lembre de deixar isso claro para quem pediu e para não levar a culpa depois. Se puder registre formalmente e questione porque as atividades técnicas não estão alinhadas com o planejamento estratégico.
Se precisar, refaça. Depois de entregar a funcionalidade, verifique se o que foi entregue realmente tinha tanta importância e se realmente tiver, comece a refazer ou agende tempo para isso, para que sua equipe não acumule débito-técnico desnecessariamente em uma parte importante do sistema e, caso não seja usado, não gaste tempo e dinheiro refazendo algo que não tem valor para o cliente, pegue o caso discuta com os gestores para tentar alinhar o planejamento com o operacional.
Refaça seu planejamento. Uma mudança de rumo não é motivo para você deixar a organização de lado. Destrua o sprint, direcione as atividades para o maior valor de negócio, crie um branch, mas, faça tudo isso sabendo quando e o que você tem de entregar e principalmente, informe a todos o que você vai deixar de entregar. Opa, esqueci de mencionar que usamos scrum, adeque se julgar necessário, ao seu processo.

Thiago Ferraz
Sou formado em Gestão de TI e Desenvolvimento de Softwares. Tenho mais de 7 anos de experiência em ORACLE (PL/SQL), PHP, MySql, domínio em Java(J2SE) e conhecimento em Linux, ASP, Qlik View, DataFlex e Delphi.

1 COMMENT

Latest news

Google I/O 2025: Como a Nova Era da IA Impacta Desenvolvedores e Profissionais de Tecnologia

Descubra como o Google I/O 2025 redefine o futuro da Inteligência Artificial. Veja como o Gemini 2.5, Deep Think e Project Mariner impactam desenvolvedores e o ecossistema de tecnologia.

Pessoas – O Verdadeiro Gargalo nas Empresas – De Startups a Multinacionais

O maior gargalo nas empresas? Pessoas. De startups a gigantes, o fator humano ainda é o elo mais fraco — ou o mais poderoso.

5 elementos que não podem faltar no site de um MSP

Soluções completas de TI gerenciada para empresas. Otimize sua infraestrutura, aumente a segurança e foque no seu negócio. Conte com suporte especializado e proativo.

De Mainframes a Data Centers Modernos: Como o Passado da TI Molda Nosso Futuro Digital

A história da Tecnologia da Informação (TI) é uma trajetória de inovação contínua – desde os Mainframes operados por...
Publicidade

CMO as a Service: revolucione o marketing da sua empresa de TI! 

Ainda não conhece o CMO as a Service ou não sabe como integrar essa solução na sua empresa? Veja como ter um marketing forte ficou fácil!

Prevenção de Fraudes no E-commerce Global

Este artigo explora as complexidades da prevenção de fraudes globais, o papel de ferramentas como o Sift Science e por que estratégias como o 3D Secure (3DS) precisam ser adaptadas às necessidades específicas de diferentes mercados.

Must read

Google I/O 2025: Como a Nova Era da IA Impacta Desenvolvedores e Profissionais de Tecnologia

Descubra como o Google I/O 2025 redefine o futuro da Inteligência Artificial. Veja como o Gemini 2.5, Deep Think e Project Mariner impactam desenvolvedores e o ecossistema de tecnologia.

Pessoas – O Verdadeiro Gargalo nas Empresas – De Startups a Multinacionais

O maior gargalo nas empresas? Pessoas. De startups a gigantes, o fator humano ainda é o elo mais fraco — ou o mais poderoso.
- Advertisement -

You might also likeRELATED
Recommended to you