Apesar de ser amplamente usada para o mesmo propósito, as definições de programador e desenvolvedor não são a mesma coisa e muitas vezes são usadas de forma inapropriada quando um “construtor” de qualquer software é requisitado.
Programadores, Desenvolvedores, ou simplesmente Devs ou até Dev Ops (que trabalham só com a parte de infraestrutra, e até Front-end Ops, que cuida da infraestrutura do front-end) são termos que cada vez mais usamos pra explicar nossas tarefas de “peões” do código do dia a dia.
Programador é uma expressão bastante utilizada atualmente. No passado, antes da explosão da área de TI, referir a nós como programador era a única forma designada para se referir aos “programados” que criam seus algoritmos vindos de um longo processo de desenvolvimento de software em cascata. Indo ainda mais longe: nas entranhas do surgimento do desenvolvimento de software aplicado a internet, nos deparamos com Webmasters, que basicamente faziam tudo até surgir os Webdesigners, que ficavam responsáveis pela parte de design, que deu início ao processo de especialização. Logo depois surgiu a área de UX, que se refere aos responsáveis pela experiência do usuário, arquiteto de informação e designers de interação. Do outro lado surgiram os responsáveis pela infra-estrutura, que culminou em QA’s, DBA’s e outras camadas operacionais. Estas são as definições mais recentes em que o termo programador se mostrava não fazer mais sentido. De fato, o termo precisava de um upgrade em um momento em que a área de TI se tornava cada vez mais dinâmica. Então surgiu os desenvolvedores.
Os desenvolvedores dominam não somente a parte de ser “programado” por um requisito, mas é por si só um profissional mais completo, que entende o todo e é comum vê-lo falando sobre desenvolvimento ágil. Este profissional vive em um ambiente onde é preciso sempre transformar seus problemas complexos em problemas menores para resolver desafios do desenvolvimento de software e ter algo funcionando em contrapartida aos processos com especificações sem fim.
Esta “caracterização” do profissional está inteiramente ligado ao tamanho e cultura da empresa. Assim como Analista de testes não existe na era Scrum, Sprint pode ser motivo de espanto para outras empresas mais “tradicionais”. No Scrum, com papéis reduzidos entre PO’s, Scrum Master e simplesmente Devs, não há espaço para uma divisão metódica entre eles, em um time que geralmente tem quatro pessoas, são simplesmente Devs. Eles são Engenheiros de softwares, analistas de requisitos e até alguém responsável pelos testes. Os desenvolvedores não se limitam a uma linha de produção e sim buscam soluções e automatizações para os problemas recorrentes do dia a dia.
Sendo assim, não se limite a ser programado para algo, seja desenvolvedor de um todo!