Paarbildung der Geschäftslogik mit einer Nicht-IT-Person

14

Haben Sie Erfahrungen gemacht, in denen eine Nicht-IT-Person während des Codierungsprozesses mit einem Programmierer zusammenarbeitet?

Es ist wie beim Programmieren von Paaren, aber eine Person ist eine Nicht-IT-Person, die viel über das Geschäft weiß, vielleicht ein Verfahrenstechniker mit mathematischem Hintergrund, der weiß, wie Dinge berechnet werden, und nicht-idiomatischen prozeduralen Code verstehen kann.

Ich habe festgestellt, dass einige prozedurale, domänenspezifische Sprachen wie PL / SQL für Nicht-IT-Ingenieure gut verständlich sind. Diese Personen sind letztendlich Mitautoren des Codes und garantieren die Richtigkeit von Formeln, Faktoren usw.

Ich fand diese Art der Paarprogrammierung ziemlich produktiv. Diese Art von Benutzern mit technischen Kenntnissen fühlt sich auch als "Eigentümer" und "Autoren" des Codes und hilft, Missverständnisse im Kommunikationsprozess zu minimieren. Sie helfen sogar beim Entwerfen von Testfällen.

  • Ist diese Praxis üblich?
  • Hat es einen Namen?
  • Haben Sie ähnliche Erfahrungen gemacht?
Tulains Córdova
quelle

Antworten:

11

Obwohl Sie dies als eine gemeinsame Codierungssitzung bezeichnen (ich kann es nicht als Paarprogrammierung bezeichnen, da nur eine Person "fährt" - bei der Paarprogrammierung übernehmen beide Parteien die Tastatur und schreiben den Code), würde ich es das Sammeln von Akzeptanzkriterien nennen .

Das heißt, Sie validieren Geschäftsregeln (korrekte Berechnungen und Prozesse) mit dem Geschäftsbenutzer (obwohl einer mit einer sehr technischen Rolle, einem Ingenieur).

In diesem Fall wird es sofort in schriftlichen Code (SQL) übersetzt, aber für viele andere Aktivitäten ist dies nicht der Fall, obwohl es automatisierte Abnahmetesttools für verschiedene Sprachen und Plattformen gibt (ich denke speziell an die Gurkensprache und verwandte Tools).

Diese Praxis ist nicht so üblich wie sie sein sollte, gewinnt jedoch immer mehr Anhänger und diejenigen, die sie befolgen (indem sie Akzeptanzkriterien in einer Form erhalten, die ausgeführt werden kann), finden sie von unschätzbarem Wert, sowohl als Instrument zur Kommunikation mit dem Unternehmen als auch zur Förderung Entwicklung.

Oded
quelle
Zumindest dort, wo ich mich gerade befinde (in einem kleinen Unternehmen), haben wir eine Menge Kommunikation zwischen der Geschäftsseite und der technischen Seite, aber ich habe das Gefühl, dass einer der Geschäftsleute, der sich auskennt, sich mit mir zusammensetzt und den Code durchgeht Auf der ganzen Linie wäre dies eine Verschwendung von Unternehmensressourcen, insbesondere in Anbetracht der Wirtschaftslage und der Art und Weise, wie Unternehmen so schlank wie möglich werden. Wenn wir mehr Stunden am Arbeitstag hätten, könnte es sinnvoll sein, aber jede Stunde zählt. Nur meine Eingabe sowieso.
Ampt
@Ampt - hast du es versucht? Wenn Sie ausführbare Spezifikationen verwenden , können Sie diese anstelle des Codes durch die Spezifikation führen .
Oded
Ich habe es nicht ausprobiert und ich sage nicht, dass es auf jeden Fall falsch ist! Sie haben gerade festgestellt, dass es nicht so häufig ist, wie es sein sollte, und ich habe meinen Beitrag dazu geleistet, warum das so sein könnte. Ich glaube , dass die mehr Kommunikation , die Sie zwischen dem Unternehmen und Entwicklungsseite haben, desto besser Ihr Projekt kann sein. Die Qualität dieser Kommunikation bestimmt oft, wie gut Ihr Projekt ist, und nach dieser Logik würde es wahrscheinlich in die Kategorie der guten Kommunikation fallen, wenn Sie sich mit einer Geschäftsperson zusammensetzen und den Code durchgehen, den sie verstehen könnten.
Ampt
2

Ja. Wo ich arbeite, mache ich das Hardcore-Programmieren, während Strategen an der UHM-Strategie arbeiten. Das heißt, ich schreibe die Programme, die ihre Handelsmodelle implementieren.

Der Schlüssel dazu liegt darin, direkt neben ihnen zu sitzen und genau zu verstehen, was die Ideen sind, und viele Fragen zu Dingen zu stellen, die für sie möglicherweise zufällig, für die Ausführungsseite jedoch wichtig sind. Zum Beispiel würde ich fragen, wie schnell ein Trade ausgeführt werden muss, ob das ihr Modell betrifft. Dies hat einen enormen Einfluss darauf, wie ich den Code schreiben werde. Tatsächlich neige ich dazu, Fragen in den Raum zu sprühen, während wir dort sitzen und jeden Tag arbeiten.

Es gibt ein bidirektionales Feedback. Wenn ich ihnen sage, dass ein Handelsschema nicht einfach aufzubauen sein wird, gehen sie zurück und überlegen, welche Kompromisse auf der Seite der Entscheidungsfindung gemacht werden können. Wenn sie entscheiden, dass ihre neue Strategie ein neues Feature benötigt, unterhalte ich mich mit ihnen darüber, wie lange es dauern würde, bis sie erstellt sind, und welche potenziellen Fallstricke es gibt.

Sie erstellen von Zeit zu Zeit Codemodule, die einige Aspekte der Handelsstrategie zusammenfassen, aber ich fasse die Teile zu einer Architektur zusammen, die es uns ermöglicht, alle verschiedenen Strategien sowie Back-End-Operationen im Auge zu behalten. Auf diese Weise müssen sie die Einzelheiten des Systems nicht kennen.

Carlos
quelle