Executando verificação de segurança...
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?

Carregando publicação patrocinada...
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.