Caio Carrara Trabalhando principalmente com Python, Java, HTML, CSS e Javascript. Hora ou outra me arrisco no empreendedorismo. Quando não estou programando ou estudando estou treinando, andando de bicicleta, jogando meu 3DS ou assistindo um filme.
Published

Wed 19 February 2014

←Home

Está funcionando? Não está bom!

Eu ainda não posso dizer que sou um profissional tão experiente, afinal estou há pouco mais de 3 anos atuando profissionalmente com desenvolvimento de software. Nesse pouco tempo tive a oportunidade de passar por algumas empresas, conhecer várias pessoas entre programadores, analistas e gerentes. Nessa pequena jornada uma expressão que invariavelmente ouvi por onde passei é a famigerada: "está funcionando? Então está bom!". Ou uma de suas variações mais famosas e a preferida dos gerentes: "está funcionando? Então não mexe!".

Particularmente eu não tenho nada contra esse tipo de expressão, a não ser que comece a se tornar cultura! Quando paro para pensar sobre a origem desse tipo de comportamento eu imagino que possa ter surgido durante o período de estudos e provas de algum indivíduo. Certamente alguém teve a brilhante ideia de parar de mexer em algum programa / projeto assim que ele passou a funcionar. Talvez esse comportamento não pareça ser tão ruim, e até faça algum sentido, quanto estamos fazendo algoritmos didáticos ou programas básicos "para passar em uma matéria", mas quando essa praga de pensamento contamina o ambiente de desenvolvimento profissional, pode ser prejudicial demais!

Desenvolver software profissionalmente, entre outras coisas, é entregar satisfação ao usuário e atender necessidades de clientes. O trabalho visto dessa forma pode ser exercido de duas maneiras: proativa ou reativa.

A forma reativa de trabalhar é a forma com que a grande maioria (sempre há excessões) traz consigo desde os primeiros anos de escola. O aluno passivamente deve absorver algum conceito e reativamente praticar alguns exercícios tentando mostrar que o conceito foi absorvido. Isso se torna tão natural ao futuro profissional, que ao sair da faculdade tantos ainda se comportam dessa forma. Durante muito tempo esse perfil pode ter sido suficiente para satisfazer o mercado de desenvolvimento de software, mas aos poucos esses antiquados profissionais vem sendo descartados pela seleção natural do mercado.

Basicamente a forma proativa de se trabalhar com desenvolvimento é antecipando inteligentemente e de forma objetiva as necessidades do produto de software. Quando digo necessidades me refiro tanto àquelas requisitadas diretamente pelos clientes, quanto àquelas inerentes da natureza do software: atender às requisições de forma satisfatória, possuir pouco, ou nenhum, erro durante sua execução, atender às necessidades de performance / disponibilidade, possuir boa qualidade de código principalmente para a futura manutenabilidade e continuidade do produto, possuir flexiblidade, dentre tantas outras. Colocando dessa forma até parece algo simples, mas se atentar constantemente para esses cuidados durante o dia-a-dia de trabalho enquanto tem que atender às necessidades do negócio no qual o software está inserido não é fácil. Requer dedicação, prática e muito cuidado.

Desenvolver software para o mundo real, que resolva problemas reais e seja usado diretamente por pessoas, vai muito além de escrever código e resolver problemas de lógica. Atualmente produtos de software envolvem muito mais complexidade que não pode ser resolvida de forma exata, quem sabe um dia! O diferencial de um bom desenvolvedor de software para os demais, dentre outras coisas, está na sua capacidade de raciocínio, análise, criticidade, predição e contextualização do problema.

Um abraço e muitos estudos pra todos nós!

Go Top
comments powered by Disqus