Há muito tempo o desenvolvimento de software deixou de ser tarefa para o exército de um homem só – que costumava ser o programador.
Hoje, essa força é composta por uma série de profissionais, com qualificações e backgrounds dos mais variados. A segregação das equipes de trabalho, em geral, provoca uma atmosfera de competição na qual o ego leva algumas pessoas a acreditar: seu papel na complexa engrenagem do desenvolvimento é mais importante que o de outros profissionais fundamentais, situação desgastante e prejudicial para o planejamento e até mesmo para a qualidade do software.
Ego
Nessa engrenagem, um dos profissionais mais respeitados – e que, por isso e outras coisas, geralmente costuma ter o ego mais problemático – é o programador.
Talvez o seu ego também se origine do fato de ele ter sido o primeiro profissional da área de desenvolvimento de software. Nasceu com tarefas solitárias, responsável por planejamento (se é que havia algum), levantamento de requisitos (existia?), programação, teste e todas as demais etapas.
Porém, não tardou e a coisa ficou muito mais complicada, com sistemas complexos – senão monstruosos – que exigiam processos mais elaborados e equipes maiores e bem preparadas.
Competição
Atualmente, o processo de desenvolvimento é uma engrenagem e a lubrificação das articulações entre todas as suas peças é fundamental. Não obstante, a competição persiste. Programadores desprezam a equipe de levantamento de requisitos porque consideram sua tarefa no processo “menos técnica”; designers (de projeto e não gráficos) desprezam programadores porque acham que eles são “escovadores de bits”, servem apenas para colocar suas brilhantes ideias para funcionar; os três anteriores desprezam a equipe de manutenção porque “depois que a parte difícil está pronta é muito fácil fazer umas correçõezinhas aqui e ali”; e, para não citar cada profissional, todo mundo despreza o profissional de teste.
A realidade
Pois bem, colegas de profissão, há algumas coisas a serem ditas:
1 – A tarefa de levantamento de requisitos é fundamental para ser possível chegar ao resultado final desejado. E, embora algumas metodologias aceitem a necessidade se retornar a essa etapa várias vezes, se você tem um prazo a cumprir é preferível que esse retorno ocorra o mínimo de vezes – ou não ocorra at all.
O levantamento de requisitos é a base, o esqueleto do software e foram necessários muitos erros desastrosos e muita fúria dos clientes para que as empresas chegassem à conclusão: uma etapa de levantamento de requisitos é, não apenas necessária, mas essencial.
2 – O relacionamento em que deveria haver menos competição é o designer-programador, pois eles estão exercendo basicamente a mesma tarefa.
Não? Explico: os dois têm a mesma atribuição, ou seja: desenvolver software – em camadas diferentes, é claro! Portanto, a comunicação e até mesmo amizade entre os dois setores é imprescindível para um bom resultado.
3 – Quem xingamos quando o Blogger / Twitter / Facebook fica fora do ar? – O desenvolvedor que cometeu uma falha? A equipe de testes que deixou a falha passar e se tornar um erro fatal? Quem salva o dia? A equipe de manutenção!
4 – Está na hora de o profissional mais injustiçado da área de desenvolvimento de software ser redimido. O profissional de teste (o “testador”) é um cara (ou uma moça) que precisa ser extremamente bem preparado (e se não é, há um equívoco na seleção de profissionais da empresa).
Em primeiro lugar, ele não pode ser leigo, deve ter um conhecimento de médio à avançado em programação. Por quê? Porque ele precisa pensar como um programador para identificar onde o coder costuma errar.
Mais ainda: ele precisa ser um profissional criativo, pensar “out of the box” (“fora da caixa”, numa tradução direta, que quer dizer “além do óbvio”) para identificar as aberrações que nós, programadores, cometemos de vez em quando – e não adianta negar, todo mundo já produziu alguma dessas aberrações.
A engrenagem
Acredito: essa divisão em departamentos deve, dentro de pouco tempo, tornar-se bem mais maleável.
Atualmente, cada profissional tem um pé em mais de uma etapa do desenvolvimento – natural, pois somos todos desenvolvedores, criadores – artistas, dando vida a uma nova entidade que acrescentará algo à vida de alguém.
Ainda que as coisas não possam se misturar tanto e (infelizmente) deva haver algum sistema de divisão de tarefas e hierarquização, é hora de reduzir um pouco essa separação e lembrar os pontos em comum: em especial o objetivo, que é desenvolver software de qualidade; e vamos além – nosso trabalho precisa ser criativo, disciplinado, precisamos ser responsáveis para assumir erros e maleáveis para aceitar boas ideias, não importa de onde elas venham.
* Gears pictures by obsidiandawn.com [Webinsider]
…………………………
Acompanhe o Webinsider no Twitter e no Facebook.
Assine nossa newsletter e não perca nenhum conteúdo.
Catharina Pinheiro
Catharina Pinheiro (@catharinapin) é tradutora, revisora e redatora. Informações completas aqui: catharinapin.tumblr.com/.
2 respostas
É verdade, Giovanni, um verdadeiro profissional trabalha pelo sucesso do projeto, e não pelo sucesso individual – aliás, o sucesso individual é um resultado do sucesso do projeto / empresa. Contudo, gradualmente essa linha de pensamento individualista vai ficando para trás, e o modelo de competição vai sendo substituído pelo modelo de colaboração, muito mais eficiente.
Obrigada pelo comentário e um ano novo de muitas realizações!
Olá Catharina,
Primeiramente parabéns pelo post. Gostaria de adicionar que este “ego” está presente em diversas áreas.
Trabalho com desenvolvimento de websites e já vi esta briguinha clássica de programador vs. designer acontecer milhares de vezes, seria legal se um dia todos tomassem o conhecimento de quanto é importante e vantajoso ter um feedback de todas as áreas de um determinado projeto. Creio que este nível de cooprenção, respeito e entedimento de todas as partes é o que determina um profissional de qualidade.
Abraços