Desenvolvedor Web
O desenvolvedor web, também conhecido como programador web, é o profissional que conhece e domina os serviços, softwares, paradigmas e linguagens de programação de aplicações online. O desenvolvedor web, na prática, pode ter participado ou não do processo de configuração de servidores e elaboração do software, mas por via de regra, cria código de novas funcionalidades e corrige erros nos sistemas dos quais é responsável em sua rotina de trabalho. Entenda mais sobre o perfil e quais as funções desse profissional de T.I. no processo de produção e entrega de software:
São diversos os tipos de aplicações online que são construídas e/ou implantadas por desenvolvedores. Inclusive aqui na homepage do website há bons exemplos.
Qualificação
O processo de qualificação do Desenvolvedor Web parte do estudo dos conceitos básicos como toda profissão, tais como operação em linha de comando, ferramentas IDE de código, recursos de desenvolvedor do navegador, o ciclo de requisição HTTP e por fim as tecnologias-chave comuns a todo sistema web: JavaScript, HTML e CSS.
O desenvolvedor web conta com uma infinidade de linguagens de programação, documentação, bibliotecas plug-and-play, e suporte da comunidade. Nota-se a predominância de informação compartilhada em inglês, o que exige conhecimento prévio da língua norte-americana.
Cursos reconhecidos consolidam conhecimentos e certificações comprovam conhecimentos. O desenvolvedor web pode se qualificar por diversos meios: livros, eventos, cursos rápidos, treinamentos, cursos técnicos, graduação e pós-graduação.
Há uma grande expectativa sobre as qualificações do desenvolvedor, colocando-o como alguém altamente capacitado, mas em poucos anos esse estereótipo cairá por terra, esclarecendo mais o papel do desenvolvedor web como um simples “pedreiro digital”, enquanto outras profissões mais voltadas a Big Data e Inteligência Artificial ganham espaço no contexto da competitividade de mercado empresarial.
Funções
Análise de requisitos
O desenvolvedor web tem a competência de compreender as necessidades do negócio e traduzir para funcionalidades de sistema para gerar uma lista de requisitos de software (funcionais e não-funcionais) como referência inicial. Essa lista produzida então é auditada pelo gestor do negócio e o desenvolvedor, que agora podem enumerar as prioridades de entrega de funcionalidades.
Análise de cronograma e custo
De posse dos requisitos, o desenvolvedor deve avaliar o tempo e o investimento necessários para criação de um MVP (protótipo) e distribuir as entregas de funcionalidades em quadros de tempo (sprints). O valor parte dos custos/hora do desenvolvedor – e sua equipe, quando essa existe – incluindo impostos, licençás de software e as horas de trabalho.
Elaboração de contratos
Na ausência de um gestor de projetos, a elaboração do contrato acaba sendo realizada pelo desenvolvedor, que pouco conhece sobre legislação ou contabilidade. A boa notícia é que os contratos podem ser criados a partir de um modelo, disponível no link abaixo.
Leia mais e baixe o modelo de minuta no artigo: Contrato de prestação de serviços de desenvolvimento web
Prototipação
A prototipação (ou MVP – Produto Mínimo Viável) valida o produto de software antes de maiores investimentos. É adotada por 100% das startups de inovação, que focalizam entrega de funcionalidades-chave nos primeiros momentos, para entender o sentimento do consumidor, e então agregar valor iterativamente. O desenvolvedor web, nesse caso, participa do processo de configuração de servidores e elaboração do MVP do software.
Modelagem de dados
A modelagem de dados envolve formulação prévia dos requisitos do projeto, conhecimento de UML e ferramentas de diagramação de bancos de dados. A etapa de modelagem de dados é frequentemente negligenciada devido à urgência por resultados efetivos. No entanto, a verdade é que os modelos de dados orientam equipes, diminuem a chance de erro na criação das tabelas, relações e rotinas do banco de dados, além de facilitar manutenções futuras.
Leia mais em “Diagramas para analistas desenvolvedores web“
Testes
O desenvolvedor web que trabalha orientado a testes (TDD) entrega código encapsulado, ou seja, código que responde apenas o esperado, sem erros. Essas funcionalidades em formato de pequenos módulos, cada qual com suas responsabilidades, são pensadas de tal forma para que possam ser reutilizadas no mesmo ou em outros sistemas. Geralmente, a execução dos testes é realizada via linha de comando, seguida pela integração desse código verde ao código de produção do sistema.
Leia mais em “Conceitos de teste de software“
Programação
A função principal do desenvolvedor web é programar o software (camadas de dados e controle), após ter participado (ou não) das etapas de configuração de servidores e elaboração do software. O desenvolvedor aqui também é identificado como “Desenvolvedor Back-end”, por criar código com linguagens de servidor para comunicação com infraestrutura do sistema.
Design
A função do desenvolvedor web também é criar as páginas (camada visual) do software, após ter participado (ou não) das etapas de desenho das interfaces. O desenvolvedor aqui também é identificado como “Desenvolvedor Front-end”, por criar componentes visuais, sendo estes mais próximos da camada de interação humano-sistema.
Auditoria de sistemas
Por meio de ferramentas de benchmark de performance, o desenvolvedor web realiza uma análise que certifica as partes interessadas de que o sistema transita informações dentro do tempo esperado, sem brechas de segurança. Essa análise envolve ainda processamento de dados históricos para entender comportamentos dos usuários. Leia mais em “Planejamento de Capacidade para Otimizar Sistemas“
Coordenação de equipe
Quanto mais experiente um desenvolvedor se torna, maior sua capacidade de compreender problemas e orientar outros desenvolvedores com um plano para solução. Um desenvolvedor web sênior possui, entre outras, a habilidade de coordenação de equipe desde a prototipação até a publicação de um projeto em produção.
Conhecimentos específicos de um Desenvolvedor Web
Um desenvolvedor soluciona problemas relacionados aos seguintes itens, por exemplo:
- Sistemas de numeração e codificação
- Aritmética computacional
- Análise da complexidade de algoritmos: noções básicas
- Estruturas De Dados
- Representação e manipulação de listas, filas, pilhas, árvores e grafos
- Métodos de busca e de ordenação elementares
- IOT – Internet das Coisas
- Processamento em Tempo Real
- POO – Programação Orientada a Objetos
- MVC – Modelo, Visão, Controlador
- Recursividade
- Programação Estruturada e orientada a objetos:conceitos
- Linguagem orientada a objetos
- Arquitetura de aplicações para o ambiente WEB
- Relações Intermodulares: acoplamento e coesão
- UML
- Conceitos e fundamentos
- Diagramas de classes, de casos de uso, desequência, de atividades, de estados, e de componentes
- Gerência de Projetos:
- Estudo de viabilidade técnica eeconômica, análise de risco, métricas para estimativas de prazo e custo
- Pontos por função
- ITIL e COBIT
- Engenharia de Software:
- Modelo de Entidades e Relacionamentos
- Modelo Relacional Normalizado, primeira, segunda e terceira formas normais
- Ciclo de vida e desenvolvimento de um software-produto
- Modelos de desenvolvimento
- Conceitos de qualidade de software
- Análise e técnicas de levantamento de requisitos
- Técnicas e estratégias de validação
- Banco De Dados – Conceitos básicos: banco de dados, esquema,tabelas, campos, registros, índices, relacionamentos, transação, triggers, stored procedures, tipos de bancos de dados
- Oracle PL/SQL g: SQL no PL/SQL: DML em PL/SQL, controle de transações, consultas e subconsultas
- Bancos dedados distribuídos
- Arquitetura OLAP
- Gerência de Configuração e Mudanças:
- Conceitos e fundamentos
- .Controle de Versões
- Testes de Software: fundamentos de técnicas e estratégias
- Sistemas Operacionais: Windows Server’s, Windows , Linux, Mac OS
- Sistemas de arquivos:
- Diretórios e direitos de acesso,compartilhamento e segurança, integridade
- Interrupções: conceito de interrupção, tipos e tratamento
- Gerenciamento de memória: organização, administração e hierarquia de memória, sistemas mono e multiprogramados, memória virtual
- .Escalonamento de discos: políticas de otimização, considerações sobre desempenho
- Interoperação de sistemas operacionais
- Sistemas Distribuídos: Servidor de aplicação
- Redes de Computadores: Conceitos básicos
- Protocolos de rede
- Modelo OSI, TCP/IP: camadas, endereçamento IP
- Cabeamento: meios de transmissão, tipos
- Arquitetura Ethernet
- Equipamentos de redes: hubs, switches, roteadores
- Segurança de redes
- Serviços, Proxy, Firewall, DNS, SMTP, IMAP, VPN, HTTP e FTP
- Virtualização
- Containerização/Docker
- Versionamento Git
- Microsserviços
Métricas do trabalho em equipe do Desenvolvedor Web
O painel acima é gerado pela plataforma GitLab e reflete o desempenho do desenvolvedor na sua operação dos repositórios que colabora na plataforma. Através dessa informação, é possível inferir o aproveitamento do desenvolvedor em uma janela de tempo, comparando seu aproveitamento com o aproveitamento Top registrado pela plataforma.
Um fato curioso sobre isso, é que, quando está mais envolvido com Dutos, Publicações, Monitoramento e Service Desk, o desenvolvedor passa a trabalhar com operação de infraestrutura de suporte a software, podendo então ser entitulado Desenvolvedor DevOps (desenvolvimento + operações).
Conclusão sobre o profissional Desenvolvedor Web
Desenvolvedores Web são profissionais que operam sistemas de natureza operacional e inovadora, e que conhecem desde os conceitos básicos de programação até o mais estranho dos erros. Por demanda do mercado, estão sendo criadas ainda especializações para este profissional, tais como Arquiteto de Software e Cientista de Dados.
Muitas vezes a contratação de um gestor de projetos pode inviabilizar um projeto de pequeno porte, e é aí que as competências intrísecas do desenvolvedor permitem que ele leve um projeto do zero, da mesa do gestor do negócio para o ambiente de produção em escala. Contratar um desenvolvedor profissional que domine também análise de negócio e projeto significa que as soluções de software serão mais produtivas.
Se está buscando por Desenvolvedor de sites WordPress, leia mais neste outro artigo.
Leia mais em “Demanda de software e a busca pelo perfil do fornecedor de serviços de desenvolvimento“
Se deseja contratar um Desenvolvedor web, você pode Solicitar orçamento via Chat
Talvez você esteja no período de transição para a área de tecnologia. Para atender seu perfil, eu criei o Curso Particular PHP Ligeiro
Interessante a rotina de desenvolvedor.