Uma análise deve ser independente da tecnologia? [fechadas]

11

Ontem tive uma discussão com um dos meus colegas. Ele (analista de negócios, anteriormente programador) acha que deve estar ciente da tecnologia usada para implementar o sistema, para que possa tomar melhores decisões de design. Na minha opinião (eu sou um programador), uma análise não deve ser acoplada de forma alguma à tecnologia e acredito que um bom analista pode criar um ótimo design sem se preocupar com os detalhes da implementação.

Estou certo em pensar assim? Existem razões pelas quais um analista de negócios precisaria conhecer a tecnologia usada para implementar o sistema?

EDIT: Acredito que usei o termo errado ao dizer business analyst. Talvez eu quis dizer arquiteto ou analista de sistemas. Não estou acostumado a esses termos. Eu quis dizer algo como arquiteto ou analista de sistemas, se você preferir.

Obrigado a todos por suas respostas impressionantes! Ainda não sou muito experiente e estou feliz que você tenha aberto meus olhos para isso.

marco-fiset
fonte
8
Você pediu a ele um exemplo de quando isso faria diferença?
22912 Karl Bielefeldt
Ele não me deu um exemplo, mas estamos usando uma ampla gama de tecnologias que vão dos antigos sistemas AS / 400, alguns Delphi e, em seguida, .Net para algo novo. Mas eu ainda acho que se você projetar algo que é para ser implementado em RPG, você vai projetá-lo da mesma forma em C # usando separação de interesses, e uma camada adequada para a lógica de negócios, etc
marco-Fiset
Ele precisaria saber tanto quanto o usuário. O AS / 400 vs um aplicativo da web é um detalhe que ele precisaria.
Codificador
2
A diferença estaria na parte "então você tem que apresentar algo ao usuário". O analista de negócios precisaria saber que tipo de interface do usuário está sendo usada e quais opções estão disponíveis. Existem ferramentas por aí que os analistas de negócios podem usar, que essencialmente permitem definir o que deve funcionar funcionalmente quando um usuário faz x (como clicar em um botão). Se a plataforma não tiver um botão (tela verde), essa é uma informação útil.
Codificador
1
@marcof: A interface de usuário ideal seria onde o usuário pensa um pensamento, e o que eles queriam fazer é simplesmente feito. Qualquer coisa menos do que isso é inválida pelas limitações da tecnologia que temos à nossa disposição, então é claro que a BA precisa entender que contexto eles podem projetar o sistema.
gahooa

Respostas:

18

Certamente há casos em que faz sentido para um analista de negócios entender a tecnologia pelo menos o suficiente para entender onde faz sentido questionar um usuário de negócios sobre a importância de um determinado recurso. Por exemplo, se a empresa estiver acostumada ao comportamento de um aplicativo cliente gordo enquanto o novo aplicativo for baseado na Web, é provável que existam muitos "requisitos" que seriam triviais em um cliente gordo, mas relativamente difíceis com um aplicativo baseado na Web. Se o analista de negócios entender se uma solicitação da empresa será trivial para a equipe de desenvolvimento ou se envolverá 20 horas de desenvolvimento do AJAX,

Para qualquer projeto, é provável que haja um grande número de conjuntos de requisitos que, na realidade, satisfizessem os negócios fazendo vários tipos de trocas. Quanto mais o analista de negócios entender sobre quais trocas eles estão fazendo, maior a probabilidade de entregar um conjunto de requisitos que maximiza o benefício para os negócios e minimiza o custo.

Justin Cave
fonte
4
+1 para "maximiza o benefício para os negócios e minimiza o custo". Isso não pode ser feito sem a BA entender a tecnologia. O trabalho do BA é entender mais tecnologia do que o programador, em um nível superior.
mattnz
Além disso, não são os requisitos que devem ser alterados, mas as restrições que afetam a implementação desses requisitos. Só porque a empresa não pode conseguir o que quer, não significa que deve parar de querer, embora isso os force a racionalizar o que pode ter agora . Por exemplo, ter um trabalho ruim agora não me impede de querer um trabalho melhor, apenas não pode ser alcançado com as restrições atuais. O importante é que abre a oportunidade de que, se uma restrição for removida, o requisito possa ser atendido. Se você alterar o requisito para o agora, você perdê-lo para sempre
BiGXERO
8

Tendo trabalhado nos dois lados desta questão, tenho que concordar com o analista. Vi alguns projetos espetacularmente ruins, resultantes da falta de entendimento dos recursos da tecnologia. Em alguns casos, isso foi resultado de tomar o hype do marketing como verdade. Em geral, o problema tem gerado especificações que não correspondem às capacidades técnicas.

O analista deve especificar o que precisa ser feito, quando e por quem. Eles devem saber por que está sendo feito. A prioridade do desenvolvimento deve ser mais dependente do Por que do que dos outros fatores. A equipe de design e desenvolvimento precisa lidar com o Como. Para desenvolver sistemas econômicos, os analistas precisam especificar o que precisa ser feito em termos que não ultrapassem os limites da tecnologia disponível.

Ultrapassar os limites pode aumentar os custos de várias maneiras, mas em alguns casos pode ter um retorno significativo. Alguns dos fatores de custo são:

  • Pode ser necessário experimentar para desenvolver uma solução funcional;
  • Talvez seja necessário adquirir novos funcionários ou consultores com conhecimento especializado;
  • Pode ser necessário treinamento sobre a nova tecnologia;
  • O desenvolvimento tende a ser mais lento e as taxas de erros mais altas; e
  • Esforços extras podem atrasar soluções mais simples, com valor mais imediato.
BillThor
fonte
6

Se a tecnologia que será usada for conhecida, ela deverá ser levada em consideração pelos analistas ao criar o design. Diferentes tecnologias fazem as coisas de maneira diferente e um design que não leva em conta essas diferenças terá problemas.

No entanto, os analistas de negócios não devem se preocupar com a tecnologia usada, o trabalho deles é reunir regras de negócios e torná-las compreensíveis para a equipe técnica. Os analistas de sistemas / arquitetos / designers ou qualquer outro nome que eles possam receber devem conhecer as tecnologias que estão sendo usadas e o design em torno delas, porque devem ser as que estão realizando o design real, não os analistas de negócios.

Ryathal
fonte
6

Acredito que há um ponto entre as duas linhas de pensamento que provavelmente é mais realista. Embora um design de alto nível possa ser melhor quando mantido independente da tecnologia, deve-se considerar as restrições e requisitos conhecidos do mundo real que devem ser incorporados ao design. Que nível é esse design? Você tem requisitos suficientes? Quão flexível é o ambiente? A gerência investe em uma direção técnica específica?

Não existem parâmetros operacionais que o direcionem em uma direção específica? Você tem uma ampla variedade de recursos capazes de implementar uma solução em qualquer pilha de tecnologia? Existem problemas de interoperabilidade que exigem acesso a outros sistemas?

São necessárias respostas para essas perguntas antes que você possa dizer definitivamente se a tecnologia deve fazer parte da equação ou se o design deve orientar a seleção da tecnologia.

Não havendo restrições e sendo um design de nível muito alto, posso concordar com o seu pensamento de que o design seja verdadeiramente independente. No entanto, nos meus mais de 20 anos de experiência, raramente estive em uma situação em que não houvesse restrições que limitassem minhas escolhas - e que levassem meu projeto a tecnologias ou famílias de tecnologias específicas.

Larry Hector
fonte
3

A interface de usuário ideal seria onde o usuário pensa um pensamento, e o que eles queriam fazer é simplesmente feito. Tudo isso é prejudicado pelas limitações tecnológicas que temos à nossa disposição; portanto, é claro que o BA precisa entender em que contexto ele pode projetar o sistema.

gahooa
fonte
2

Diferentes tecnologias podem ter estruturas de custo e eficiência muito diferentes para resolver um determinado problema. Esses custos podem incluir itens como custos de contratação na área local, custos de energia e refrigeração para sistemas específicos, código existente e possibilidades de reutilização de equipamentos existentes etc. etc. Então, sim, talvez seja possível ignorar essas restrições e detalhes de tecnologias específicas se alguém estiver trabalhando em um projeto em que custo e eficiência não sejam nem de longe tão importantes quanto outras considerações (como segurança da aviação, controle de usinas nucleares, implantes médicos, etc.). Mas para a maioria das situações de negócios, o gerenciamento pode se preocupar com a estrutura de custos das soluções em potencial versus os benefícios da implementação do sistema.

hotpaw2
fonte
1

O analista de negócios deve saber que tipo de aplicativo estamos desenvolvendo, como * Aplicativo da Web / Aplicativo de console / Aplicativo móvel / Aplicativo de relatórios etc *, para que ela possa criar um bom conjunto de recursos para o aplicativo ou pressionar o usuário novamente em expectativas impossíveis, como arrastar e soltar aninhados no terceiro nível (por exemplo).

Ele / ela não precisa estar ciente de qual tecnologia como Java / C # / Python / SQL etc.

java_mouse
fonte
1

O processo de análise em si precisa ser totalmente independente da tecnologia. Quando você está pesquisando sobre o cliente e suas necessidades, precisa fazê-lo com uma mente completamente aberta. O outro lado da moeda, no entanto, é que muitas vezes o analista é solicitado a fornecer recomendações e também pode ser necessário para lidar com a arquitetura do sistema. Essa é uma faceta totalmente diferente do papel no qual uma compreensão mais ampla das tecnologias disponíveis é crucial, pois pode fazer uma enorme diferença para o cliente, não apenas em termos da capacidade de iniciar um projeto, mas também em termos das necessidades de longo prazo do cliente e da sustentabilidade do próprio projeto.

Embora seja verdade que a maior parte do design de software é essencialmente a mesma, independentemente da tecnologia usada, sempre há áreas em que o design será influenciado pela escolha da tecnologia. As escolhas de plataforma podem influenciar as opções de idioma e API, enquanto a disponibilidade de conhecimento, suporte e até custo também terão impacto nas escolhas feitas. Portanto, de uma perspectiva, parte da sua posição é justificada, pois a análise real deve ser realizada sem a influência de qualquer tecnologia específica; no entanto, o uso da análise para determinar um projeto sempre exigirá um conhecimento mais amplo da tecnologia, para que o analista possa fazer recomendações. o que permitirá a aplicação de projetos destinados a atender às necessidades do cliente.

S.Robins
fonte
0

Cada tecnologia tem limites e restrições, portanto, faz algum sentido para um analista considerar esses limites. Por outro lado, um analista que conhece bem o .net, mas não vê Java desde o final dos anos 90, provavelmente criará uma solução .net - usando terminologia .net e padrões de design - mesmo se Java (ou RoR etc.) se ajustaria melhor ao problema. É relativamente difícil implementar esse design em outra tecnologia posteriormente.

Portanto, acho que um analista deve ser agnóstico quando a tecnologia ainda não foi selecionada, mas experiente nos casos em que a escolha já foi feita.

user281377
fonte
Os padrões de design não são independentes da linguagem?
marco-Fiset
2
Eles geralmente não estão vinculados a um idioma específico, mas algumas pilhas de tecnologia podem torná-las mais fáceis de implementar do que outras. Um design feito com o ASP.net MVC em mente pode ser complicado de implementar em PHP ou Oracle Application Express.
usar o seguinte comando