Associer la logique métier de programmation à une personne non informatique [clôturé]

14

Avez-vous une expérience dans laquelle une personne non informatique travaille avec un programmeur pendant le processus de codage?

C'est comme la programmation en binôme, mais une personne est une personne non informatique qui en sait beaucoup sur l'entreprise, peut-être un ingénieur de processus avec des connaissances en mathématiques qui sait comment les choses sont calculées et peut comprendre le code procédural non idiomatique.

J'ai constaté que certains langages procéduraux spécifiques à un domaine comme PL / SQL sont assez compréhensibles par les ingénieurs non informatiques. Ces personnes finissent par être co-auteurs du code et garantissent l'exactitude des formules, facteurs, etc.

J'ai trouvé ce type de programmation en binôme assez productif, ce type d'utilisateurs de type technique se sentent également "propriétaires" et "auteurs" du code et aident à minimiser les malentendus dans le processus de communication. Ils aident même à concevoir des cas de test.

  • Cette pratique est-elle courante?
  • At-il un nom?
  • Avez-vous eu des expériences similaires?
Tulains Córdova
la source

Réponses:

11

Bien que vous décriviez cela comme une session de codage partagée (je ne peux pas appeler cela la programmation par paires, car une seule personne "conduit" - dans la programmation par paires, les deux parties prennent le clavier et écrivent le code), je l'appellerais en rassemblant des critères d'acceptation .

C'est-à-dire que vous validez des règles métier (calculs et processus corrects) avec l'utilisateur professionnel (bien que celui ayant un rôle très technique, un ingénieur).

Dans ce cas, il se traduit immédiatement en code écrit (SQL), mais pour de nombreuses autres activités, ce ne sera pas le cas, bien qu'il existe des outils de test d'acceptation automatisés pour différentes langues et plates-formes (je pense spécifiquement au langage des cornichons et aux outils associés).

Cette pratique n'est pas aussi courante qu'elle devrait l'être, mais gagne de plus en plus d'adeptes et ceux qui la suivent (obtenir des critères d'acceptation sous une forme qui peut être exécutée) la trouvent inestimable à la fois comme un outil pour communiquer avec l'entreprise et pour conduire développement.

Oded
la source
Au moins là où je suis (une petite entreprise), nous avons beaucoup de communication entre le côté commercial et le côté ingénierie, mais j'ai envie d'avoir l'un des hommes d'affaires qui connaît ses affaires s'asseoir et parcourir le code avec moi par ligne serait un gaspillage des ressources de l'entreprise, en particulier compte tenu de l'état de l'économie et de la façon dont elle pousse les entreprises à être aussi allégées que possible. Si nous avions plus d'heures dans la journée de travail, cela pourrait avoir du sens, mais chaque heure compte. Juste mon entrée de toute façon.
Ampt
@Ampt - l'avez-vous essayé? Si vous utilisez des spécifications exécutables, vous pouvez les parcourir à travers la spécification au lieu du code.
Oded
Je ne l'ai pas essayé, et je ne dis pas que c'est faux du tout! Vous venez de dire que ce n'est pas aussi courant que cela devrait l'être et j'expliquais pourquoi cela pourrait être. Je pense que plus vous avez de communication entre les entreprises et le développement, mieux votre projet peut être. La qualité de cette communication définit souvent la qualité de votre projet, et selon cette logique, s'asseoir avec un homme d'affaires et passer en revue le code qu'ils pourraient comprendre tomberait probablement dans la bonne catégorie de communication.
Ampt
2

Oui. Là où je travaille, je fais des trucs de type programmation hardcore, tandis que les stratèges travaillent sur la stratégie uhm. C'est-à-dire que j'écris les programmes qui implémentent leurs modèles de trading.

La clé pour cela est de s'asseoir juste à côté d'eux et de comprendre exactement quelles sont les idées, et de poser beaucoup de questions sur des choses qui peuvent leur être accessoires, mais importantes pour l'exécution. Par exemple, je demanderais à quelle vitesse un trade doit être exécuté, si cela affecte son modèle. Cela a un impact énorme sur la façon dont j'écrirai le code. En fait, j'ai tendance à vaporiser des questions dans la pièce alors que nous sommes assis là à travailler tous les jours.

Il y a une rétroaction bidirectionnelle. Si je leur dis qu'un système d'échange ne sera pas facile à mettre en place, ils reviennent et réfléchissent aux compromis qui peuvent être faits du côté de la prise de décision. S'ils décident que leur nouvelle stratégie a besoin d'une nouvelle fonctionnalité, j'ai une conversation avec eux sur le temps qu'il faudrait pour construire et quels sont les pièges potentiels.

Ils font des modules de code qui encapsulent de temps en temps certains aspects de la stratégie de trading, mais je masse les morceaux ensemble dans une architecture qui nous permet de garder une trace de toutes les différentes stratégies ainsi que des éléments opérationnels backend. De cette façon, ils n'ont pas besoin de connaître les moindres détails du système.

Carlos
la source