Executando verificação de segurança...
-8

Desenvolvimento web não é engenharia de software.

O desenvolvimento web é frequentemente mal compreendido como uma extensão da programação de computadores ou engenharia de software. No entanto, é muito mais semelhante a uma obra de arte que emprega código como ferramenta. Assim como um pintor usa pincéis e cores para criar um quadro envolvente ou um músico utiliza seu instrumento para criar melodias emocionantes, um desenvolvedor web usa HTML, CSS e JavaScript - código - para criar uma experiência de usuário cativante no browser.

Um desenvolvedor web pode ser competente em seu trabalho sem compreender as complexidades do JSON, por exemplo e entender que se trata de uma tabela hash extremamente sofisticada. Se você mergulhar nos arquivos fonte do V8 envolvidos exclusivamente em operações e manipulações deste objetos, encontrará conceitos avançados como tree-shaking, eliminação de código morto e escopo lexical além de muitos outros mais 'básicos' como sincronização de threads, gerenciamento manual de memória e aritmética de ponteiros.

Esse nível de entendimento, no entanto, é complemente irrelevante para o desenvolvedor web médio. Na realidade é totalmente possível criar interfaces web formidáveis sem sequer saber o que é uma tabela hash - e talvez, qualquer outro algoritmo ou estrutura de dados.

Por outro angulo, podemos considerar o protocolo HTTP, a espinha dorsal da web. É bastante raro encontrar um desenvolvedor web que tenha realmente lido e estudado o RFC 2616. Enquanto em todos os campos da engenharia - seja civil, mecânica, elétrica ou de software - a leitura e manutenção de normas, especificações e regulamentos é parte fundamental do trabalho.

Este entedimento, nos leva a uma proposta interessante: e se começássemos a trazer 'artistas' para o desenvolvimento web em vez dos tradicionais graduados em ciências da computação e outras engenharias? Aqueles que são intimidados pelos conceitos - formais; abstratos; rigorosos; complexos - da matemática, tradicionalmente associados à programação e computação, mas que são virtualmente inexistentes no desenvolvimento web.

Nesse cenário seria completamente concebivél e encorajado aos 'designers UX' - que tradicionalmente apenas 'desenham' interfaces - realmente fazendo a maior parte da codificação usando frameworks feitos sob medida para eles por engenheiros de software; que não precisariam mais lutar com o alinhamento de divs.

Essa mudança de paradigma poderia potencialmente revolucionar a maneira como percebemos e abordamos o desenvolvimento web. Ao traçar distinções claras entre as funções de engenheiro e artista podemos garantir que as pessoas estejam trabalhando onde são mais eficazes e satisfeitas. Além de atrair novos talentos e inovaçoes para ambos os lados, garatindo que todos estajam trabalhando com as ferramentas mais adequadas.

Imagine que parte do esforço usado para criar novos frameworks javascript na última década tivesse sido ao invez, usado para discutir e redigir novos documentos e comentários no IETF.

Em conclusão, acredito que o desenvolvimento web deve ser visto mais como uma forma de arte do que como programação de computadores. Essa mudança de mentalidade pode abrir caminho para abordagens mais inovadoras na criação de experiências cativantes na web para usuários em todo o mundo.

Edit:

Para aqueles negativando este tópico sem participar da discussão: convido-os a trazer suas perspectivas para enriquecer nosso debate! Cada ponto de vista tem valor inestimável em nossa busca por melhorias constantes no campo do desenvolvimento web.

Carregando publicação patrocinada...
3
2

Concordo que tópicos mais aprofundados de desenvolvimento devem ser estudados, como estrutura de dados, facilitará e muito quando necessário for sair fora de caixinha do crud, creio que existe uma evolução como desenvolvedor, e quando for a hora certa esse conhecimento sobre tópicos mais aprofundados fará toda a diferença na resolução de problemas e na entrega de um algoritmo que processa os dados de forma mais eficiente.
Por isso, eu estudo os tópicos mencionados, temos que saber como as coisas funcionam na base, ajuda muito.

2

Qual das duas opções te resume melhor?

  1. teve problemas ao implementar um design proposto por um UI/UX e não está sabendo lidar com isso.

  2. sofrendo de ansiedade, pensando num futuro inovador, sendo que, nem ao menos conseguiu inovar com o que tu tem disponível hoje

Você fala como se frontend se resumisse a Landing Pages ou telas bonitas e se tu tá tão insatisfeito assim, e supondo que a resposta seja a 2, faça o seguinte: aprenda frontend e construa uma aplicação visual que construa código de aplicações.

1

Acho que entendi seu ponto de vista e imagino ter um equívoco nele. Pois até onde sei já existem artistas trabalhtrabalhandoando no desenvolvimento web. E fazendo a parte que lhes convém. O UI/UX. Pessoas que não sabem programar uma linha HTML mas sabem usar o Figma, por exemplo.

1

Engenharia é a aplicação do conhecimento científico, econômico, social e prático, com o intuito de planejar, desenhar, construir, manter e melhorar estruturas, máquinas, aparelhos, sistemas, materiais e processos. O profissional de engenharia aplica os conhecimentos matemáticos e técnicos para a criação, aperfeiçoamento e implementação de utilidades que realizem uma função ou objetivo específico.

Fonte: Wikipedia

E software é algo não físico, que existe dentro de um computador e nos permite interagir com o hardware (fonte: minha cabeça, rs)

Então, na minha opinião pode sim ser chamado de engenharia de software, por mais simples que seja.

Além disso, hoje até os sites mais simples em geral são gerados por um backend PHP por exemplo, que precisa ser programado em algum grau para exibir aquela interface.

Fora o fato de que hoje são cada vez mais escassos websites simples, e mais presentes websites com maior "inteligência" e complexidade.

2

Muito interessante trazer a definição de engenheira para a discussao, o que levanta a pergunta aonde os desenvoldores web medios, aplicam conhecimentos cientificos e matematicos para resolver problemas? É justamente este meu ponto, pq na minha opiniao nao o aplicam, apenas se valem de ferramentas prontas que abstraem todo o conhecimento necessario para resolver o problema. Isso é engenharia?

1

E quantos engenheiros civis calculam de fato algo, sem usar ferramentas prontas? Não é apenas o fato de fazer calculos e usar ciência diretamente, mas sim saber aplicar.

2

Concordo com o autor do artigo e concordo plenamente contigo.

Toda obra intelectual é uma peça de engenharia, mas nem toda peça de engenharia é "considera uma obra de arte". fonte:Minha cabeça

Eu diria que:
...desenvolvimento web não é "só" engenharia de software....

Sustento que o artista plástico não precisa saber fazer a tinta e engenheiro químico não precisa saber pintar obras de arte.

Mas cada um no seu "quadrado", mesmo que "tudo junto e misturado"...

Acho que o artigo trás uma discussão (diálogo) muito importante e saudável...

A pesar de que, a mesmo tempo que temos pessoas com visão dogmática a respeito de profissionais de T.I., temos pessoas que já pensaram nessa questão de priorização da crianção antes de ferramentas, a muito mais tempo do que o texto nos leva a entender.

Vide WordPress entre outras ferramentas ou framework se assim preferir chamar.

meus 10 centavos para essa conversa afiada rsrsrs

2

Obrigado por sua contribuição.

Acredito que o tom do artigo não foi o mais adequado, mas fico muito feliz de saber que tem gente que entendeu e acha essa discussão importante.

Sua analogia é muito boa, o dialágo que queria fomentar era justamente se não estamos vivendo um mundo no desenvolvimento web onde pintores precisam entender de engenharia quimica e os engenheiros quimicos precisam ser pintores habilodosos.

1

Desenvolvimento web precisa de análise de requisitos, design, codificação, testes, integração continua e continuous deploy. Todos acima são disciplinas da engenharia de software.

Quando você diz que um desenvolvedor web médio consegue produzir mesmo não tendo conceitos de CS, você está sugerindo que as disciplinas acima não sejam utilizadas também?

De quem seria a responsabilidade de produzir testes automatizados pro JavaScript produzido pelos artistas?

1

Entendo seu ponto de vista e concordo que as disciplinas da engenharia de software são cruciais no desenvolvimento web. No entanto, minha sugestão é que nem todos os aspectos do desenvolvimento web requerem um conhecimento aprofundado em ciência da computação.

Quando mencionei o conceito de artistas codificando, estava me referindo àqueles profissionais cujo foco principal está na experiência do usuário e no design visual. Esses indivíduos podem não ter qualquer conhecimento de computação, mas ainda assim conseguem criar interfaces cativantes com o uso básico de HTML, CSS e JavaScript.

Em relação aos testes automatizados para o JavaScript produzido por esses "artistas", acredito que essa responsabilidade poderia ser compartilhada com os engenheiros de software ou ainda equipes dedicadas à garantia da qualidade. A ideia aqui é fomentar uma colaboração mais próxima entre designers UX e desenvolvedores para criar experiências web mais ricas e envolventes.

No tocante à integração contínua (CI) e entrega contínua (CD), concordo plenamente que estas são responsabilidades dos administradores de sistemas ou DevOps, não dos desenvolvedores focados na criação das experiências dos usuários.

2

Então ambos concordamos que desenvolvimento web é engenharia de software, ao contrário do título escolhido.

Seguindo o raciocínio que você trouxe, requisitos seriam tratados por um analista de requisitos, testes por um engenheiro, ci/cd por devops. Aonde faz sentido ter especialistas em todas as disciplinas da engenharia de software porém na codificação, etapa crucial, alguém que não seja um especialista?

Eu entendo seu ponto em relação a alguém que não saiba o que é hashtable conseguindo entregar o mínimo. Agora, o quão medíocre ou sem qualidade é essa entrega?
Se estamos discutindo sobre um website institucional ou um cardápio estático de restaurante isso funciona, no caso de um ecommerce, um website com milhões de acessos, layout responsivo etc a coisa muda de figura.

O problema aqui não é ter um "artista" codificando, mas que essa pessoa entenda tecnicamente o que está fazendo, e tecnicamente incluem CS e ES. Do contrário, você vai precisar de um engenheiro de software pra fazer o resto da codificação, e se esse for o caso, não há vantagem alguma.

1

Agradeço por trazer esses pontos à discussão. Acredito que estamos nos aproximando de um entendimento comum, embora ainda haja algumas diferenças em nossas perspectivas.

Concordo plenamente que aplicações web complexas são verdadeiras maravilhas da engenharia moderna.

No entanto, minha proposta inicial era voltada para a ideia geral do desenvolvimento web - a criação de interface com o usuário interativas.

Estou refletindo sobre como podemos expandir nossa percepção tradicional dos papéis dentro desta área. Por exemplo: poderíamos permitir aos designers UX maior liberdade para implementar suas visões diretamente no código usando ferramentas e frameworks adequados sem precisar depender totalmente dos engenheiros para essa tarefa.

Em relação à qualidade desses projetos realizados por estes codificadores - concordo que pode haver preocupações válidas aqui; mas isso também se aplica a qualquer projeto realizado sem supervisão adequada ou controle rigoroso da qualidade independentemente das credenciais acadêmicas dos participantes.

Por fim gostaria ressaltar novamente meu objetivo principal nesta discussão: estimular o pensamento crítico sobre como abordamos o desenvolvimento na Web atualmente e explorar possíveis maneiras alternativas pel quais podemos melhor atender às necessidades crescentes.

1

Muita gente vai amar isso!

Na minha visão isso não importa de verdade!

São só titulos para ego das pessoas.

Só pra alguém dizer que é engenheiro e outro não é!

Só ego e nada mais que ego sem sentido algum que não vai levar a canto algum

1

Estou totalmente alinhado com você quando diz que títulos são menos importantes do que habilidades reais. Independentemente se você se identifica como 'artista' ou 'engenheiro', o crucial é sua contribuição efetiva para a criação de produtos digitais excepcionais. Mas penso também que essa mistura confusa entre títulos e ferramentas pode ser prejudicial, talvez traçar linhas claras entre as disciplicinas pode ajudar, sabendo claro que nenhuma é mais imporante que a outra.

0