Une analyse doit-elle être indépendante de la technologie? [fermé]

11

J'ai eu une discussion hier avec un de mes collègues. Il (un analyste d'entreprise, auparavant un programmeur) pense qu'il devrait être au courant de la technologie utilisée pour mettre en œuvre le système, afin qu'il puisse prendre de meilleures décisions de conception. À mon avis (je suis un programmeur), une analyse ne doit en aucun cas être couplée à la technologie et je crois qu'un bon analyste peut faire un excellent design sans se soucier des détails de mise en œuvre.

Ai-je raison de penser de cette façon? Y a-t-il des raisons pour lesquelles un analyste commercial aurait besoin de connaître la technologie utilisée pour implémenter le système?

EDIT: Je crois que j'ai utilisé le mauvais terme en disant business analyst. Peut-être que je voulais dire architecte ou analyste système. Je ne suis pas habitué à ces termes. Je voulais dire quelque chose comme architecte ou analyste système si vous préférez.

Merci à tous pour vos réponses impressionnantes! Je ne suis pas encore très expérimenté et je suis heureux que vous m'ayez ouvert les yeux sur ce point.

marco-fiset
la source
8
Lui avez-vous demandé un exemple de moment où cela ferait une différence?
Karl Bielefeldt
Il ne m'a pas donné d'exemple, mais nous utilisons une large gamme de technologies allant des anciens systèmes AS / 400, certains Delphi puis .Net pour quelque chose de nouveau. Mais je pense toujours que si vous concevez quelque chose qui doit être implémenté dans RPG, vous le concevrez de la même manière en C # en utilisant la séparation des préoccupations et une couche appropriée pour la logique métier, etc.
marco-fiset
Il aurait besoin d'en savoir autant que l'utilisateur. AS / 400 vs une application web est un détail dont il aurait besoin.
codeur
2
La différence serait dans la partie "alors vous devez présenter quelque chose à l'utilisateur". L'analyste métier devrait savoir quel type d'interface utilisateur est utilisé et quelles options sont disponibles. Il existe des outils que les analystes commerciaux peuvent utiliser, qui leur permettent essentiellement de définir ce qui devrait se produire fonctionnellement lorsqu'un utilisateur effectue x (comme cliquer sur un bouton). Si la plateforme n'a pas de bouton (écran vert), c'est une information utile.
codeur
1
@marcof: L'interface utilisateur idéale serait où l'utilisateur pense une pensée, et ce qu'il voulait faire est simplement fait. Tout ce qui est court est paralysé par les limites technologiques que nous avons à notre disposition, alors bien sûr, le BA doit comprendre dans quel contexte il peut concevoir le système.
gahooa

Réponses:

18

Il y a certainement des cas où il est logique pour un analyste d'entreprise de comprendre la technologie au moins suffisamment bien pour comprendre où il est logique de questionner un utilisateur professionnel sur l'importance d'une fonctionnalité particulière. Par exemple, si l'entreprise est habituée au comportement d'une application client lourd alors que la nouvelle application sera basée sur le Web, il est probable qu'il y aura de nombreuses "exigences" qui seraient triviales chez un client gros mais relativement difficiles avec une application Web. Si l'analyste d'entreprise comprend si une demande de l'entreprise va être triviale pour l'équipe de développement ou si elle va impliquer 20 heures de développement AJAX,

Pour un projet donné, il existe probablement un grand nombre de séries d'exigences qui satisferaient en réalité l'entreprise en faisant divers types de compromis. Plus l'analyste commercial comprend mieux les compromis qu'il fait, plus il est probable qu'il fournira un ensemble d'exigences qui maximisent les avantages pour l'entreprise tout en minimisant les coûts.

Justin Cave
la source
4
+1 pour le "maximise l'avantage pour l'entreprise tout en minimisant le coût". Cela ne peut être fait sans que le BA comprenne la technologie. Le travail du BA est de comprendre plus de technologie que le programmeur, à un niveau supérieur.
mattnz
En outre, ce ne sont pas les exigences qui devraient être modifiées, mais les contraintes affectant la mise en œuvre de ces exigences. Ce n'est pas parce que l'entreprise ne peut pas obtenir ce qu'elle veut qu'elle doit cesser de le vouloir, même si cela les oblige à rationaliser ce qu'elle peut avoir maintenant . Par exemple, avoir un mauvais travail maintenant ne m'empêche pas d'en vouloir un meilleur, cela ne peut tout simplement pas être réalisé avec les contraintes actuelles. L'important est qu'il ouvre la possibilité que si une contrainte est supprimée, l'exigence peut désormais être satisfaite. Si vous modifiez l'exigence pour le moment présent, vous la perdez pour toujours
BiGXERO
8

Ayant travaillé les deux côtés de cette question, je suis d'accord avec l'analyste. J'ai vu des conceptions spectaculairement médiocres résultant d'un manque de compréhension des capacités de la technologie. Dans certains cas, c'est le résultat de la prise du battage publicitaire comme vérité. En général, le problème a généré des spécifications qui ne correspondent pas aux capacités techniques.

L'analyste doit préciser ce qui doit être fait, quand et par qui. Ils devraient savoir pourquoi cela se fait. La priorité de développement devrait dépendre davantage du pourquoi que des autres facteurs. L'équipe de conception et de développement doit gérer le Comment. Afin de développer des systèmes rentables, les analystes doivent spécifier ce qui doit être fait en termes qui ne repoussent pas les limites de la technologie disponible.

Repousser les limites peut augmenter les coûts de plusieurs façons, mais dans certains cas, il peut y avoir un retour significatif. Certains des facteurs de coût sont:

  • L'expérimentation peut être nécessaire pour développer une solution de travail;
  • Il peut être nécessaire d'acquérir de nouveaux employés ou consultants possédant des connaissances spécialisées;
  • Une formation sur la nouvelle technologie peut être nécessaire;
  • Le développement a tendance à être plus lent et les taux de bogues plus élevés; et
  • Des efforts supplémentaires peuvent retarder des solutions plus simples qui ont une valeur plus immédiate.
BillThor
la source
6

Si la technologie qui sera utilisée est connue, elle doit être prise en compte par les analystes lors de la création de la conception. Différentes technologies font les choses différemment et une conception qui ne prend pas en compte ces différences va avoir des problèmes.

Cependant, les analystes commerciaux ne devraient pas se soucier de la technologie utilisée, leur travail consiste à rassembler les règles métier et à les rendre compréhensibles pour l'équipe technique. Les analystes de systèmes / architectes / concepteurs ou tout autre nom qui pourrait leur être attribué devraient connaître les technologies utilisées et les concevoir autour d'eux, car ce sont eux qui devraient faire la conception réelle, et non les analystes commerciaux.

Ryathal
la source
6

Je pense qu'il y a un point entre les deux lignes de pensée qui est probablement plus réaliste. Bien qu'une conception de haut niveau puisse être préférable lorsqu'elle est maintenue indépendante de la technologie, il faut tenir compte des contraintes et des exigences connues du monde réel qui doivent être intégrées à la conception. Quel niveau est ce design? Avez-vous des exigences suffisantes? L'environnement est-il flexible? La direction est-elle investie dans une direction technique spécifique?

N'y a-t-il pas de paramètres opérationnels qui vous conduisent dans une direction spécifique? Avez-vous un large éventail de ressources capables d'implémenter une solution dans n'importe quelle pile technologique? Y a-t-il des problèmes d'interopérabilité nécessitant l'accès à d'autres systèmes?

Des réponses à ces questions sont nécessaires avant de pouvoir dire définitivement si la technologie doit faire partie de l'équation ou si la conception doit guider la sélection de la technologie.

En l'absence de contraintes et étant une conception de très haut niveau, je pourrais être d'accord avec votre pensée que la conception soit vraiment agnostique. Cependant, dans mes 20+ années d'expérience, je me suis rarement trouvé dans une situation où il n'y avait pas de contraintes qui limitaient mes choix - et qui poussaient ma conception vers des technologies ou des familles de technologies spécifiques.

Larry Hector
la source
3

L' interface utilisateur idéale serait où l'utilisateur pense une pensée, et ce qu'il voulait faire est simplement fait. Tout ce qui est court est paralysé par les limites technologiques que nous avons à notre disposition, donc bien sûr, le BA doit comprendre dans quel contexte il peut concevoir le système.

gahooa
la source
2

Différentes technologies peuvent avoir des structures de coût et d'efficacité très différentes pour résoudre un problème donné. Ces coûts peuvent inclure des éléments tels que les coûts d'embauche dans la zone locale, les coûts d'énergie et de refroidissement pour des systèmes spécifiques, le code existant et les possibilités de réutilisation des équipements existants, etc., etc. si l'on travaille sur un projet dont le coût et l'efficacité ne sont pas aussi importants que d'autres considérations (comme la sécurité aérienne, le contrôle des centrales nucléaires, les implants médicaux, etc.). Mais pour la plupart des situations commerciales, la direction peut se soucier de la structure des coûts des solutions potentielles par rapport aux avantages de la mise en œuvre du système.

hotpaw2
la source
1

L'analyste d'affaires doit savoir quel type d'application que nous développons comme * Application Web / Application console / Application mobile / Application de reporting, etc. * afin qu'elle puisse mieux proposer un bel ensemble de fonctionnalités pour l'application ou repousser l'utilisateur sur des attentes impossibles comme le glisser-déposer imbriqué de 3e niveau (par exemple).

Il / Elle n'a pas besoin de savoir quelle technologie comme Java / C # / Python / SQL etc.

java_mouse
la source
1

Le processus d'analyse lui-même doit être entièrement indépendant de la technologie. Lorsque vous recherchez le client et ses besoins, vous devez le faire avec un esprit complètement ouvert. Cependant, le revers de la médaille est que l'analyste est souvent invité à fournir des recommandations et peut également être amené à gérer l'architecture du système. Il s'agit d'un aspect entièrement différent du rôle dans lequel une compréhension plus large des technologies disponibles est cruciale, car elle peut faire une énorme différence pour le client non seulement en termes de capacité à démarrer un projet, mais aussi en termes des besoins à long terme du client et de la durabilité du projet lui-même.

S'il est vrai que la plus grande partie de la conception de logiciels est essentiellement la même quelle que soit la technologie utilisée, il y a toujours des domaines où la conception sera influencée par le choix de la technologie. Les choix de plate-forme peuvent influencer les choix de langue et d'API, tandis que la disponibilité de l'expertise, du support et même du coût aura également un impact sur les choix effectués. Donc, d'un point de vue, une partie de votre position est justifiée en ce que l'analyse réelle doit être effectuée sans l'influence d'une technologie spécifique, mais l'utilisation de l'analyse pour déterminer une conception nécessitera toujours une connaissance technologique plus large, afin que l'analyste puisse faire des recommandations qui permettra l'application de conceptions destinées à répondre aux besoins du client.

S.Robins
la source
0

Chaque technologie a des limites et des contraintes, il est donc logique qu'un analyste tienne compte de ces limites. D'un autre côté, un analyste qui connaît bien .net, mais qui n'a pas vu Java depuis la fin des années 90, va très probablement concevoir une solution .net - en utilisant la terminologie et les modèles de conception .net - même si Java (ou RoR, etc.) serait mieux adapté au problème. Il est relativement difficile de mettre en œuvre une telle conception dans une autre technologie plus tard.

Par conséquent, je pense qu'un analyste devrait être agnostique lorsque la technologie n'a pas encore été sélectionnée, mais expérimenté dans les cas où le choix a déjà été fait.

user281377
la source
Les modèles de conception ne sont-ils pas indépendants du langage?
marco-fiset
2
Ils ne sont généralement pas liés à un langage spécifique, mais certaines piles technologiques peuvent les rendre plus faciles à mettre en œuvre que d'autres. Une conception faite avec ASP.net MVC à l'esprit peut être lourde à implémenter en PHP simple ou Oracle Application Express.
user281377