[quote=Luca]Olá
Como engenheiro estudei 5 anos para me formar (mais 2 de mestrado) e nunca gostei do termo engenheiro de software dado a um cara que estudava 3 anos com menor carga horária do que 3 anos de engenharia.
Menos ainda gosto do termo engenharia de requisitos. Para mim requisito é o que o cliente quer. Precisa de um engenheiro para convencer o cliente do que ele quer? Ou a função seria reescrever o que o cliente quer?
Antigamente se dizia que o bom analista de sistemas precisava ser um pouco psicólogo para entender o que cliente pedia e o que ele queria dizer. (…)
Quando é que vão concluir de vez que engenharia é uma coisa e informática é outra? Ou será que depois da engenharia de software e do arquiteto de software ( http://martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf ), vão criar também os termos médico de software, massagista de software e advogado de software? Os termos fazem tanto sentido como engenheiro e arquiteto.
[/quote]
embora seja dificil aceitar o termo engenheiro ou arquiteto como o nome de um curso ou de uma posição na empesa isso não significa que o trabalho feito por pessoas nesse papel (role) não seja relevante.
Sim, o cliente não sabe o que quer. Ele sabe o que espera do sistema, mas não o como espera isso. Muitas vezes o desenvolvedor tem que fazer escolhas ditadas pela inepcidade do cliente em decidir ou entender os problemas levantados pela sua propria necessidade. Especialmente quando os processos de negocios são divergentes do senso comum, das normas, ou dos padrões de mercado. Ai sim tem que existe alguem com capacidade de dialogo (peoples-person) que entenda o cliente e saiba comunicar com os desenvolvedores. O nome desse papel (role) não é importante, mas é importante que se reconheça a sua necessidade. Normalmente é chamado de analista.
Arquiteto, desenvolvedor, programador, tester , gerente, etc… são papeis (roles) dentro da peça (play) que é a criação de um software. A critica do publico (cliente) à peça (sistema) pode destrui-lo ou energizá-lo. Logo, é necessário que se entenda o publico.
Em teatro e no ciname isso e tarefa do produtor executivo e quiça do director e escritores, mas em software essa tarefa também tem que caber a alguem. Ela é a diferença entre a ruina e o exito.
O erro é achar que Arquiteto é um posto na empresa. Que o cara faz apenas aquilo. Tal como tester ou programador ou desenvolvedor. Esse é o erro. Cada um deve fazer todos os papeis. A questão é que são poucas as pessoas que tem capacidade para todos os papeis. Por isso ocorre a especilização. Algo que é o cerne da cultura mundial atual e contra o que é dificil lutar.
O texto do Fowler que citaste é hipocrita*. Desce o pau no termo “arquitetura” porque ele não o consegue definir. Mesmo quando consegue não aceita a definição, mas ele proprio confessa que o termo pertencia no titulo do seu livro. É o mesmo que dizer “não sei o que “arquitetura” significa mas usei o termo para vender livros”. Esse tipo de discurso é inaceitável como evidência de que a arquitura não é necessária. Se ela não fosse, não precisava estar no titulo …
Confundir “arquiteto” com “guia” é o minimo nunca ter sabido, para começo de conversa, o que é um arquiteto. O que aliás fica patente no texto logo cedo. a pergunta não é “quem precisa de um arquiteto?” (cuja resposta é “todo o mundo”) mas sim “O que é um arquiteto?” ou “O que é arquitetura?”
A falta de estrutura, de visão do todo, num projeto é um erro grave.
Ele tem que ter a visão do todo pois o arquiteto é suposto decidir sobre requisitos não-funcionais ( ao contrario do desenvolvedor ) que afetam o sistema. Protocolos de comunicação, ambiente de rede, inclusão ou exclusão de mecanismos de segurança, performance , escalabilidade, etc… É com certeza um papel que é desempenhado no inicio do projeto e que será muito exporádiamente chamado durante o resto do processo ( se o sistema é standalone torná-lo cliente-servidor é fazer outro sistema). No meio tempo a mesma pessoa pode ser desenvolvedor, programador, tester, gerente, ou seja, pode ter outros papeis na construção do software.
O ponto é que cabe a ele decidir, não apenas saber e entender. Isso todos os intervenientes têm que ser capazes de fazer.
É porque o papel é temporário e porque exige sim uma maior cultura e conhecimento das tecnologias ( do maior numero possivel e relevante delas) que é dificil ter mais do que um arquiteto no projeto. Contudo não é impossivel ter mais do que um.
(*consultem um dicionário antes de de vir defender a honra do cara…)