Como é atuar no mercado de trabalho como desenvolvedor?

Calma, eu sei, eu sei...

Como assim? Em um portal envolvido de tecnologia há esse tipo de pergunta?

Bem... Eu vou me usar como exemplo para que eu possa validar essa minha pergunta e, de certa forma, respondê-la para os que se identificarem com o Mateus de 07 anos atrás!

⌨️ O que é programar?

Quando iniciei meus estudos, lá em 2016, sobre linguagens de programação em meu curso técnico, eu já sabia que queria ser um programador! Porem, nunca tive ninguém para me explicar o que de fato era programar, surgindo assim dúvidas como:

O que é programar? Será que um programador faz calculadora em C no trabalho? Que tipo de empresa pede para os funcionários criarem calculadoras de Índice de Massa Corporal (IMC)?

Todas essas dúvidas do filósofo Mateuzinho de 2016.

🤔 O que um desenvolvedor faz, DE FATO, em seu trabalho?

Um desenvolvedor é responsável por criar soluções, integrações e realizar manutenções em sistemas de tal forma que haja sentido para a empresa! Ou seja, SIM! Se faz sentido para a sua empresa criar uma calculadora de massa corporal, será feito!

Mas como de fato essas soluções são criadas?

🏭 A fantástica fábrica de features

De primeiro momento, é gerada uma demanda por parte de algum módulo da empresa ou do próprio cliente do tipo:

  • Preciso de um botão de "Ligar-me" na interface do aplicativo.

Neste momento, a demanda é repassada para o seu gerente de projetos que verificará a viabilidade da solicitação.

Deferido então a solicitação por parte do gestor, e momento de "quebrar" essa tarefa em diversos módulos:

Quais cores, ícones e ações são melhores para este botão?

Quem implementa o botão na interface?

O que de fato acontecerá quando clicar no botão?

Caso o botao nao funciona, o que acontecera?

👷🏽 O carinha das regras

O grandiosíssimo engenheiro ou analista de requisitos Irá elaborar um documento explicando meticulosamente e direto ao ponto quais são as regras de negócio da nova feature. Exemplo:

[RN01] - Não deve ser possível que o botão seja pressionado caso usuário não tenha um telefone cadastrado. [RN02] - Quando pressionado, o botão deve realizar uma chamada de voz para o numero do usuario [RN03] - Caso usuario nao atende, não permitir que o usuário clique no botão por 05 segundos

Este usa e abusa de softwares de edição de texto e de criação de diagramas.

🕴🏽 O chefão do projeto

O gestor de projeto é responsável por também estipular prazos e metas juntamente com os times abaixo! Sua função é observar de uma forma macro o andamento do projeto. Um gestor pode utilizar diversas ferramentas de controle de projeto como o JIRA, Trello e outros.

🎨 O carinha do design

Toda a demanda visual e interativa, de experiência do usuário ao visualizar e interagir com o botão, será encaminhada ao incrivel Deisng UI/UX!

Esse carinha é responsável por criar toda a interface dessa funcionalidade de uma maneira ilustrativa! Ou seja, até aqui nada de código foi criado! Um design UI/UX geralmente utiliza ferramentas como Figma, Adobe XD e outros.

🖼️ O dev front-end

Com o design pronto, o nosso incrível Desenvolvedor Front-End implementara o botão dentro do aplicativo. É importante que o dev se preocupe em seguir meticulosamente cada pixel criado pelo UI/UX, sua responsabilidade é codificar aquela ideia criada pelo UI/UX.

Além de utilizar do Figma para ver o design, o dev front-end também utiliza bastante do seu navegador de internet e de um bom editor de código.

⚙️ O maluco do back-end

Agora entra em campo o Desenvolvedor Back-end, responsável por aplicar as regras de negócio no lado do servidor da aplicação para que tal botão funcione de acordo definido com o Engenheiro ou Analista de Requisitos.

Na linha de ataque, o dev Back-end com certeza terá cinco milhões de abas abertas de documentações sobre APIs de implementação (por exemplo: utilizar uma API de ligação para efetuar a chamada), um bom editor de código e uma generosa xícara de café.

🧪 O cara que todo mundo xinga

Em um ambiente controlado e não disponibilidade pro usuário, e mostrado ao analista de testes a obra final! Sua missão? Bem... Encontrar furos, gotejos, pisos quebrados, maçanetas sem funcionar e outros problemas na obra recém criada. Apesar da brincadeira, seu papel é fundamental e importante na entrega de qualidade para o usuário final.

O analista de testes utiliza softwares para capturas de tela, gravações de vídeo e também muito de sua escrita para elaborar ONDE falhou e O QUE falhou para que os devs possam verificar POR QUE falhou e COMO falhou.

👮🏼‍ Isso não é uma ditadura!

Por mais hierárquico que pareça, na verdade não é! O desenvolvedor back-end tem total autonomia para questionar regras de negócios e a viabilidade delas para o seu analista/engenheiro de requisitos!

Assim como o dev front-end tem também o seu direito de opinar e falar sobre o design criado pelo UI/UX.

O gestor de projetos nao e um big fuc#ing boss inquestionável! Ele também está ali para ouvir as dores da equipe e, se necessário, prorrogar prazos de forma a entregar um produto bom para os futuros clientes.

☕ Conclusão

Você! Você mesmo! Fique tranquilo, pois no mercado de trabalho você não será responsável por criar design, documentar projetos, desenvolver, testar, publicar e etc.! Você é responsável apenas por designar sua função e designar com excelência! Você não precisa ser o melhor designer para iniciar sua carreira como front-end, pois na sua futura empresa terá um cara que estudou especificamente para isso!

Porém, nada impede que um dev front-end também saiba, mesmo que o básico, sobre design! Sempre é importante cobrir "mais que a sua area", até mesmo para entender melhor e ver mais sentido no trabalho dos seus colegas de trabalho!

Lembrando que esta é minha visão como o Mateus de 2022 de uma forma simples e generalista sobre como funciona o processo de produção de um software! Sei que não é exatamente desta forma e existem N fatores que podem diversificar o desenvolvimento, contudo eu queria que alguém, lá em 2016, tivesse me dito isso!

Devo dizer que é o tipo de explicação que busquei por muito tempo quando comecei meus estudos de programação. Nem sabia bem como buscar de uma forma que o Google me trouxesse exatamente um exemplo prático como esse. Tenho certeza que é a dúvida de muita gente que começou na área, só para ter uma visão de como é o dia a dia.

Que post absurdo!!

Muito interessante saber como funcionam as coisas dentro de uma empresa. Interessante saber que o cara do back-end é o mais insano kkkkk

Em startups essa linha é bem borrada. Não há espaço nem dinheiro para esperas, burocracias etc.

Muita gente começa sendo uma pequena engrenagem de algo muito maior. Como um funcionário de uma grande empresa, por exemplo. Com o tempo as skills vão aumentando e é possível ampliar para a stack toda ou mesmo tornar-se um especialista em algumas áreas.

Concluindo: nessa distribuição normal de condições e skills, tem de tudo.

Excelente POST, deu para ter uma ideia de como funciona todo o processo.

Cara que da hora !!! cada vez que entro aqui, e vejo pérolas como esta, me dá a sensação de que estou no lugar e na comunidade certa, obrigado por compartilhar um pouco da rotina e de como funciona a realidade do mercado de trabalho, pra um dev iniciante e curioso como eu faz toda a diferença pra eu entender a lógica da rotina e já ir me familiarizando. Obg pelo post

Fico feliz demais, Leandro, que esse meu post (do Mateus de hoje, com mais experiência) chegou em você (o Mateus lá de 2016 que estava bem no início)! Pra cima!!!

Sensacional a linguagem usada. Qualquer um, até com pouquíssimo conhecimento na área, consegue entender os papéis. PArabéns pelo Texto!!!

Muito obrigado, Andre!

Muito bom em Seixas. Parabens.

ótimo artigo, antes de eu trabalhar como dev web estagiário eu também me fazia a mesma pergunta, a parte triste é que hj em dia estou trabalhando como Desenvolvedor ServiceNow (lowcode/code) mas estou pegando bastante experiência com projetos, processos e desenvolvimento em conceito geral.

Eu tinha muitas dúvidas sobre como é realmente trabalhar na área, sei que pode mudar de empresa para empresa, mas já deu uma luz do que posso encontrar pela frente. Obrigado irmão 👏🏿

Fico feliz de ter repassado esse conhecimento para outra pessoa!! Pra cima

Muito massa sua abordagem, é assim mesmo e talvez um pouco melhor ou pior. De um todo você foi bem polido nas palavras e termos, eu abordaria de uma forma masis dura e enfática, mas temos que ser calmos e serenos :smile::smile::smile:. Quem trabalha com desenvolvimento sabe que o buraco as vezes é bem mais embaixo, mas sempre saímos por cima, pois sem os back ou fronts não tem "sisteminha" rodando suave. :smile: :smile::smile::smile::smile: Parabéns

É pra não assustar os juninhos... Brincadeira, hahah!! Mas a intenção é mostrar como pode ser um ambiente de desenvolvimento para um leigo ou iniciante que não tem onde começar. Obrigado pelo feedback! Quando se tá na linha de frente, aos 45 do segundo, de fato o front-end veste as calças do back-end que veste a camisa do engenheiro de requisitos que veste o boné do analista de testes e aí vai...

que texto excelente e esclarecedor! vou começar ads em jan/2023 e ler essa explicação tão bem feita me animou muito :)

Feliz em te inspirar, Siqueira! Show de bola

Muito massa essa visão passada numa linguagem bem compreensível.

Tô cursando ADS e é bem interessante ver que aquela tuia de coisa pra fazer em um projeto realmente existe mas é bem dividida em uma empresa de verdade.

Valeu por compartilhar com nois, seixas! ✌

Cara, muito obrigado! Posso dizer que nesse momento sou o Mateus de 2016, e vc tirou mts dúvidas e até msm umas que eu nem sabia que tinha kkkk

Fico extremamente feliz da minha mensagem chegar em devs que sabiam como funciona de fato o mercado! É óbvio que este é um cenário dentre vários, contudo já é algo para se ter como base para imaginar o que vem por aí! Obrigado pelo feedback, Ally!

Muito obrigado por clarear nossas mentes, não é monstruoso como pensava que precisa de tudo mas sim entender de tudo um pouquinho, saber oq o pessoal faz, bacana d+, já me tirou um carga dos meus ombros, eu que ainda busco meu 1º emprego na área

Massa, deu uma visão muito boa e direta, porém acredito que isso acontece em uma faixa de médias/grandes empresas ou até em algumas pequenas. Mas no caso de uma micro-empresa por exemplo, o cenário muda um pouco. Nestes, as vezes, você será o cara do design, o cara do front-end, o cara que arruma impressora, etc. Mas é um caso a parte. Parabéns pelo post.

Eu estou nesse barco Matheus! Sou o cara do design, front, back e suporte técnico aqui na empres aonde trabalho. Faço desde criar um botão no front, implementar as regras no back, passo pelo deploy e configurações de dns, e chego até instalar driver de impressora, formatar pc ou resolver questões com o wifi Realmente são muitas coisas para fazer, mas a empresa é pequena. No setor de TI sou só eu e mais um que está iniciando. Queria ficar mais focado só no backend. Vocês tem alguma dica de como reverter esse processo?
Não sei em que estágio sua empresa está, mas pode ser que demore até ela conseguir maturidade para ter uma ou mais pessoas separadas por stacks e tal. Mas pensa pelo lado bom: Você está adquirindo uma visão holística sobre uma empresa/projeto/aplicação. Isso vai te ajudar muito lá na frente quando você decidir entrar em uma empresa apenas com o foco no back-end. É um diferencial enorme.
De fato, Matheus! Em pequenos projetos ou em pequenas empresas, muitas vezes o dev e o carinha do café são os mesmos. Obrigado pelo feedback!!

Caraca! Muito foda!

Boa Mateus ...

Valeu, Rael!!

Perfeito!! Sempre tive curiosidade de saber como funcionava... mas eu descobri na marra kkkk

Muito bom cara... Boa leitura

adorei o modo como explicou kkkkkkkkkk, eu sou leigo né achei mt divertido aprender como funciona no dia a dia do jeito que vc explicou

Hahah, amo diversificar o modo o qual escrevo para tentar ao máximo explicar coisas "complexas" com leveza e simplicidade! Obrigado, Venadi

Você não faz idéia como tirou um peso que eu sentia Acreditava que eu teria que saber de tudo e isso tava me pesando muito Obrigado, muito obrigado!!

Curti muito a didática da explicação no entanto permita-me discordar em parte para complementar: discordo que sempre teremos nossa ocupação muito bem definida ao longo da nossa carreira. Em empresas pequenas e médias muitas vezes faremos mais de um papel dentre os citados e por isso gosto da ideia de conhecimento profissional/carreira em T na qual temos uma boa noção do nosso contexto de trabalho e nos especializamos em uma área. Se alguém ainda não estiver familiarizado com o assunto o site de uma escola fez um ótimo "resumo gráfico" do livro Range de David Epstein (traduzido "Por que os generalistas vencem em um mundo de especialistas").

Dev em T: https://www.alura.com.br/dev-em-t Original:https://davidepstein.com/the-range/ Tradução: https://www.amazon.com.br/Por-generalistas-vencem-mundo-especialistas/dp/6580634340

Show de bola, Marcio! Obrigado pelo feedback e pela indicação do livro. O mundo ao qual escrevi, de fato, é o cenário ideal ou o país das maravilhasas! Mas na prática vemos desenvolvedores atuando em quase todo o processo de desenvolvimento de um software.

Que forma divertida de exemplificar o funcionamento interno!

Aaah... Fico grato pelo feedback! Obrigado, Ghizzi
Obrigado, leunardonaia!!

esse post é extremamente necessário, quando estudamos programação aprendemos um infinito de coisas como estudando php aprendemos planejamento do código, debug, e diversas outras coisas, e imaginamos muito que quando iremos trabalhar vamos realmente usar tudo, quando na nossa função esses conhecimentos são usados apenas para conversar com os outros colegas e ter um melhor relacionamento da equipe, já que cada um teria sua função especifica, muito obrigada por isso,ajudou muito =)