Fork me on GitHub

Keep Learning Conhecimento nunca é o bastante

Postado em
30 January 2008 @ 11:46

Tag(s)
Artigos, Desenvolvimento

Programador ou Desenvolvedor?

A diferença entre um programador e um desenvolvedor de software é muito grande, mas quase sempre ignorada.

Presa à um paradigma completamente equivocado, a “indústria” do software busca imitar a indústria “convencional”, baseada no trabalho manual, seguindo muitas das idéias de Taylor e Adam Smith.

Essas idéias e princípios funcionam muito bem no chamado trabalho manual, que, em geral, atinge sua máxima eficiência quando organizado na forma de linha de montagem, com alta especialização e divisão de tarefas. Mais uma vez: desenvolvimento de software não funciona como linha de montagem.

O software possui fatores inerentes que não são encontrados em produtos manufaturáveis. Como exemplo, podemos citar a complexidade: o software é formado por uma grande quantidade de elementos distintos, enquanto produtos manufaturáveis possuem muitos elementos repetidos ou semelhantes em sua composição.

É um fato: desenvolvimento de software é trabalho sobre conhecimento, não trabalho manual. A expressão “fábrica de software” chega a me dar arrepios, é uma afronta a quem trabalha com desenvolvimento.

O que muitos gerentes e diretores tentam fazer com o processo de desenvolvimento de software é torná-lo uma linha de montagem, como a de carros ou produtos eletrônicos. Aqui chegamos ao assunto principal deste artigo: o trabalhador.

As empresas tratam o trabalhador da indústria do software como uma máquina: sua função é receber uma especificação “mastigada” e apenas traduzí-la para uma linguagem de programação. Resumindo, um operário. Isto é um grande erro. Se há algum trabalho manual (de “chão de fábrica”) no desenvolvimento de software, este é o trabalho realizado por IDEs, editores, compiladores e ferramentas automatizadoras em geral.

O trabalhador acima descrito é o típico programador (ou, ainda pior, codificador). Ele não precisa pensar, apenas traduzir. E, pior do que o tratamento das empresas, é o que os próprios profissionais fazem consigo mesmos: a maioria aceita isso e acaba agindo como uma máquina codificadora por toda a carreira.

O desenvolvedor de software é um profissional muito mais completo: ele pensa. É um profissional altamente qualificado, com conhecimento multi-disciplinar, isto é, não apenas em informática, mas também em comunicação, gerência, negócios. Ele não precisa ser um mestre nessas outras áreas, mas deve conhecer, no mínimo, os princípios básicos de cada uma. Além disso, não fica esperando que alguém pague um treinamento: está sempre buscando melhorar. Não pelo aumento de salário ou pelo cargo com nome mais bonito, mas sim pela satisfação de realizar um trabalho melhor.

Quase todo o trabalho do desenvolvedor de software é trabalho de design. Trata-se de uma atividade criativa (a maioria das pessoas acredita que criativo é apenas o trabalho com resultado visual). Numa analogia à fabricação de carros, o desenvolvedor é o profissional que faz o projeto do carro, não o operário (ou robô) que apenas faz a montagem (o “compilador” do projeto de carro).

Aí nos deparamos com outro problema: a falta de estímulo. É muito comum que pessoas com talento e gosto por desenvolvimento de software mudem de área, geralmente devido aos baixos salários. Quando um desenvolvedor começa a ficar bom no que faz, torna-se gerente, vendedor, coordenador, enfim, qualquer outra coisa que pague melhor.

Acredito que as empresas devem investir em posições de alta responsabilidade também no desenvolvimento. Estou falando de profissionais com funções de liderança e gerência (incluindo salários e benefícios equivalentes a gerentes ou coordenadores) mas que ainda “botem a mão na massa”.

Em qualquer equipe é extremamente produtivo ter um profissional assim como referência, pois isso dá muito mais segurança aos profissionais que trabalham com ele. O que mais vemos por aí são equipes de desenvolvimento “órfãs”: quando algum desenvolvedor começa a se destacar, é retirado da equipe e muda de carreira. Os prejuízos são grandes mas, como são “invisíveis”, os empregadores simplesmente ignoram.

É bom lembrar que a questão “programador versus desenvolvedor” não é apenas culpa dos empregadores. Como mencionei anteriormente, os profissionais também possuem grande parcela dessa culpa. Após 7 anos trabalhando com desenvolvimento de software, creio que, para cada cinquenta programadores, existe um desenvolvedor de software (isto é totalmente baseado em observações pessoais).

E você, é um programador ou um desenvolvedor se software?
Mais recursos:


9 Comentários

Comentário por
Blog da W7 Solutions » Programador ou Desenvolvedor?
30 January 2008 @ 12:13

[…] Programador ou Desenvolvedor? […]


Comentário por
Mauricio
14 February 2008 @ 10:27

Ok, concordo com praticamente todo o artigo. O paradoxo disso tudo é:

Qual o lugar aonde todas as pessoas idolatram os softwares? Índia.

A índia é conhecida por suas “fábricas de software”, por seus salários baixos… e produz os softwares mais reconhecidos…

Para um chefe, que está apenas interessado em ganhar e produzir algo de qualidade, o esquema de “fábricas de software” é o caminho a se seguir… e sim, isso também me dá arrepios.


Comentário por
lucashungaro
16 February 2008 @ 16:32

O esquema de fábricas pode até ser mais rentável em alguns casos, mas a qualidade costuma ser bem baixa.

O que penso sobre isso é que as fábricas de software não deixarão de existir tão cedo (ou nunca). Infelizmente, nem tudo é do jeito que queremos… o que posso fazer nesse caso é não trabalhar para pessoas que pensam assim.

Em resumo, prefiro ganhar menos e ficar orgulhoso de produzir software útil e com qualidade alta. 😀


Comentário por
Carlos Fitl
6 February 2009 @ 13:20

Primeiramente eu gostaria de parabenizar a iniciativa do artigo, apesar de eu não ter conseguido identificar é o autor do artigo.

Lucas eu já não concordo com você, imagina se todos pensassem assim, a nossa categoria seria desvalorizada porque ninguém se valoriza. Desenvolver com alta qualidade sim, mas ganhar menos, pelo menos um salário compatível com o seu desempenho e dedicação, que é o que os bons profissionais adquirem ao longo de suas carreiras. O nosso mercado de trabalho não existe desemprego, o que existe são maus profissionais que acabam “prostituindo” a profissão, existem bons salários, mas que exija responsabilidade, e todos os dias mais e mais as empresas procuram profissionais com várias qualidades e dinamismo, pois a folha de pagamento de uma equipe para desenvolver um software não é barata quando falamos em qualidade de software, a área que esta sendo mais afetada pela mão de obra mal qualificada é a de analise de sistemas, existe um buraco negro nesta área, e isso afeta todo o processo de desenvolvimento de um software.

Obrigado pelo espaço cedido.

Att.
Carlos Fitl


Comentário por
Lucas Húngaro
6 February 2009 @ 13:34

Carlos, se valorizar significa apenas ganhar mais dinheiro ou fazer um trabalho bem feito e ficar satisfeito com isso?

O meu pensamento é justamente que falta valorizar o profissional que desenvolve software, não apenas com dinheiro, mas reconhecendo sua importância como um profissional do conhecimento, muito além de uma “máquina de codificar”.


Comentário por
Alan Santos
30 July 2010 @ 23:21

Não concordo.
O programador pra mim é diferente do Desenvolvedor não por estar abaixo desse num nível de conhecimento, mas por programar, ou seja: todo mundo liga a palavra “programador” a palavra “desenvolvedor”, mas o programador é um cara que programa, ele pode programar um Robô, ele pode programar um script pra automatizar uma tarefa, ele programa coisas que devem acontecer numa maquina, e o desenvolvedor desenvolve softwares.


[…] This post was mentioned on Twitter by francival, Luiz Sanches. Luiz Sanches said: Programador ou Desenvolvedor? Post antigo e atual do @lucashungaro http://tinyurl.com/2c6obqs […]


Comentário por
Rubens Takiguti Ribeiro
30 October 2012 @ 10:01

Creio que o artigo apresenta uma visão muito particular do autor.

A meu ver, “programador de software” é um cargo que descreve um profissional que desenvolve programas através da codificação, já “desenvolvedor de software” é apenas uma expressão mais ampla e genérica, que não está diretamente ou estritamente relacionada ao ato de codificar, mas cujo produto final também é um software.

Porém, é apenas nomenclatura. Para mim é facilmente perdoável uma empresa oferecer um cargo de programador para um profissional que não irá apenas codificar, da mesma forma como ela pode oferecer um cargo de “desenvolvedor de software” para um profissional que só irá traduzir modelos em código-fonte.


Comentário por
Gomes
22 May 2015 @ 18:47

Me identifiquei mais com o comentário do Rubens Takiguti Ribeiro que com o artigo, que manifesta apenas a opinião do autor.

Desenvolvedor, Tecnologia da Informação… esses termos criados por empreendedores é que enchem o saco. Prefiro pura e simplesmente dedicar minhas forças ao conhecimento técnico/científico.

Uns sonham em trabalhar nas mega empresas de softwares, enquanto outros se encantam com laboratórios e uma carreira acadêmica.


Deixe um comentário