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.
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
Sensacional a linguagem usada. Qualquer um, até com pouquíssimo conhecimento na área, consegue entender os papéis. PArabéns pelo Texto!!!
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 👏🏿
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
que texto excelente e esclarecedor! vou começar ads em jan/2023 e ler essa explicação tão bem feita me animou muito :)
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
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.
Perfeito!! Sempre tive curiosidade de saber como funcionava... mas eu descobri na marra kkkk
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
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
Sensacional!!
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 =)