quinta-feira, 24 de maio de 2012

Cargos de TI: O Desenvolvedor



Na última postagem dessa categoria, falei um pouco sobre o real analista de sistemas, o cargo mais popular da área e que muitas vezes é utilizado para intitular profissionais que na prática acabam desempenhando outras funções. Entre estes os desenvolvedores...

...Ou programadores. Talvez o grupo que possua os profissionais mais fanáticos pelo que fazem no mercado de tecnologia. Há até alguns que digam que quem não desenvolve não trabalha com tecnologia.
Mas o que um desenvolvedor faz, afinal de contas? Esse talvez seja o tópico mais arriscado de se redigir, pois sempre falta algo a dizer e corro o risco de ser acusado de estar diminuindo a classe. Os desenvolvedores são unidos! O que não falta são fóruns e comunidades com discussões e troca de conhecimento sobre as tendências dessa área que para muitos chega a ser um estilo de vida. Portanto, quem quiser ter um entendimento mais técnico e mais aprofundado, pode contar com a ajuda do nosso amigo Google, que eu vou apenas passar uma visão geral para aqueles que não têm ainda muita ideia de como eles botam a mão na massa e fazem esse mundão todo virtual girar!

Todos os programas (softwares) que utilizamos, sejam softwares corporativos mais robustos como o SAP, até os mais simples de automação de um caixa, passando pelos sites que acessamos na internet, como esse blog aqui, funcionam como resultado de um conjunto de códigos, ou seja, comandos organizados de maneira lógica que são capazes de informatizar qualquer tipo de operação. Usando uma operação simples para ilustrar, vamos pensar num cadastro em algum site, por exemplo:

Programa cadastro do site do zé
Variáveis nome, endereço, telefone.
Imprima “Digite seu nome:”;
Leia nome;
Imprima “Digite seu enderço:”;
Leia endereço;
Imprima “Digite seu telefone:”;
Leia telefone;
Fim.

A partir desta sequência de comandos já podemos observar coisas simples (mesmo que eles não sejam exatamente com esses nomes em português). O que está em negrito representa um comando já entendido pelo computador, que irá executar ações já pré-configuradas. No caso do imprima ele entenderá que tudo o que está entre aspas deverá ser exibido na tela para o usuário. Outro ponto que podemos notar já de cara, é que cada comando é separado por um ponto e vírgula. Ou seja, o programa só irá exibir na tela “Digite seu endereço”, depois que executar o comando “Leia nome”. O comando leia, por sua vez, indica ao computador que ele deverá guardar um valor, que poderá ser utilizado e modificado posteriormente. Isso funciona graças às variáveis, que funcionam como “caixinhas” que guardam valores de diversos tipos, sejam eles números inteiros, decimais, letras ou datas.

O exemplo de programação que vimos é chamada de programação estruturada, que roda justamente de maneira sequencial, ou seja, uma linha após a outra. O tipo de programação mais utilizada no mercado é a programação orientada à objetos, por diversas qualidades que a fazem superar a programação estruturada, como maior facilidade na manutenção do código e reutilização de comandos e comportamentos para várias partes do sistema - afinal um sistema comercial possui milhares de linhas de códigos, e não só nove como no exemplo.
E como esses códigos são interpretados? Os códigos são implementados em IDE’s, que são outros programas que funcionam como ambientes específicos para desenvolvimento, facilitando o trabalho dos desenvolvedores. As IDE’s verificam se o código está correto e traduzem os comandos de forma que o computador processe as informações adequadamente.

Olhando de uma visão mais macro, o desenvolvedor vai fazer com que o sistema funcione e manipule as informações que serão inseridas nele de maneira correta, por meio de comandos organizados de maneira lógica. O trabalho dele dá continuidade ao trabalho do analista de sistemas (ou analista de negócios, que falaremos mais a frente), que já levantou todas as necessidades do cliente e as especificou de forma apropriada para facilitar o entendimento de quem vai desenvolver. Para fazer um comparativo, o analista de sistemas entende da tecnologia, mas foca em entender o cenário do cliente e traduzi-lo de maneira mais técnica para o desenvolvedor, enquanto este foca nas questões técnicas de desenvolvimento, tendo o papel de escrever um código limpo, de fácil entendimento para outros desenvolvedores que venham realizar manutenção naquele código, entre outras boas práticas.

Existem diversas linguagens (conjunto de comandos) conhecidas no mercado de software utilizadas para desenvolvimento, como Java (da Oracle) e ASP (da Microsoft). Uma área que tem crescido bastante ultimamente é o de desenvolvimento para dispositivos móveis, devido a consolidação do Android (da Google) e do iOS (da Apple) como os principais sistemas operacionais do mercado.
Os sites de todas essas tecnologias possuem um vasto conteúdo e fóruns de discussão para iniciantes que desejam ingressar de vez na área de desenvolvimento. Há ainda diversas comunidades de código aberto, onde sistemas são desenvolvidos de maneira colaborativa por qualquer pessoa no mundo! O navegador Firefox, da Fundação Mozilla, é um exemplo de sistema que possui diversas versões e com possibilidade de desenvolvimento em código aberto para a comunidade de software - um dos fatores que contribuem para que ele seja grátis!

As certificações mais cotadas da área são as que reconhecem o profissional pelo conhecimento das próprias linguagens, como por exemplo a OCJP (Oracle Certified Java Professional) que certifica desenvolvedores especialistas na linguagem Java, e também as que reconhecem o profissional pelas habilidades com metodologias de gerenciamento de projetos de desenvolvimento de software, como a CSM (Certified Scrum Master) que certifica desenvolvedores especialistas em Scrum, um conjunto de boas práticas para gestão de projetos voltados para desenvolvimento de sistemas.

Por ser o cara que “põe a mão na massa” e “faz a coisa acontecer”, o desenvolvedor foi um dos primeiros profissionais que surgiu no mercado de tecnologia, e até hoje é um cargo bem remunerado. No entanto com a evolução da TI e a maior necessidade de entrosamento com as áreas de negócio, outras profissões foram surgindo, e o desenvolvedor por ser um profissional muito especializado, acaba tendo isso como um limitador para continuar a crescer nas áreas. A bagagem e experiência que só eles têm são um prato cheio para virarem excelentes gestores, pois entendem cada detalhe da técnica. No entanto o mercado ainda carece dessa versatilidade num profissional: justamente por realizarem tarefas muito técnicas, poucos possuem perfil para gestão e liderança.

Muitos profissionais da área afirmam que ter experiência como desenvolvedor é algo mandatório para crescer no mercado de TI. Apesar de eu considerar que faz sim uma grande diferença, sugiro aos que não gostam de desenvolvimento que sigam em frente mesmo assim e não desistam da faculdade – há uma grande evasão nas faculdades de tecnologia por conta das disciplinas de desenvolvimento de software. É possível trilhar uma boa carreira na área de tecnologia sem precisar atuar com desenvolvimento. Mas é preciso ter em mente que desenvolvimento é algo essencial, e de alguma forma você terá que conviver com essa área e ter o mínimo de conhecimento sobre ela.

Na próxima postagem dessa sequência, falaremos um pouco sobre as atribuições do Analista de Teste. Profissional que talvez seja o que mais interaja com o Desenvolvedor.

Comente e exponha sua opinião sobre o assunto e sobre o ponto de vista relatado! Um abraço.

Nenhum comentário:

Postar um comentário

quero comentar!