Wie kann ich Teamkollegen mitteilen, welche Änderungen ich an einem Objekt vorgenommen habe? [geschlossen]

9

Angenommen, ich habe ein PHP-Objekt, sagen wir: companyObj.

class companyObj
{
  private company_name;
  private company_address;

  public function print_contact()
  {
    //logic
  }
}

Dies ist das Objekt, das ich geschrieben und mit den Teamkollegen geteilt habe. Jetzt möchte ich es so mächtiger machen:

class companyObj
{
  private company_name;
  private company_address;
  private company_contact_person;

  public function print_contact()
  {
    //logic updated
  }
}

Wie kann ich meine Teamkollegen darüber informieren, dass mein Objekt mehr Attribute hat, die sie festlegen können?

Wie kann ich das Team wissen lassen, was los ist, anstatt E-Mails an alle Mitglieder des Entwicklungsteams zu senden, wenn ich nicht möchte, dass meine Teamkollegen ihre Zeit damit verschwenden, sich die Änderungen auf Quellcodeebene anzusehen?

Ted Wong
quelle
7
svn kann helfen, da sie erfahren, dass sich etwas im Code geändert hat. So können sie Ihre Änderungen direkt aktualisieren (in Ihrem Fall kann sich eine bestimmte Datei befinden). Sie müssen nicht wissen, was sich geändert hat (optional, wenn sie dies nicht möchten zu)
PresleyDias
1
Es ist eine Klasse, die Sie geschrieben haben, kein Objekt :) Objekte existieren zur Laufzeit nicht kompiliert
Rune FS

Antworten:

10

Das hängt stark von der konkreten Situation ab. Nehmen wir an, die neue Eigenschaft, die Sie hinzugefügt haben, ist obligatorisch, dh sie muss immer festgelegt werden. Anschließend müssen Sie den Code selbst durchsuchen und ihn überall dort aktualisieren, wo er companyObjerstellt wurde, um sicherzustellen, dass er ordnungsgemäß erstellt wurde (einschließlich der Festlegung der neuen Eigenschaft). Ich gehe davon aus, dass PHP Konstruktoren hat. In diesem Fall müssen Sie nur einen neuen Konstruktorparameter hinzufügen, und der Compiler markiert automatisch jeden Konstruktoraufruf ohne den zusätzlichen Parameter als Kompilierungsfehler. Dadurch wird auch sichergestellt, dass Teamkollegen von der neuen Eigenschaft erfahren, sobald sie eine verwenden companyObj.

Wenn die neue Eigenschaft jedoch optional ist, sind die Dinge weniger klar. Möglicherweise haben Sie einen geeigneten Standardwert dafür. Im letzteren Fall würde ich weiterhin empfehlen, alle Instanzerstellungen zu aktualisieren, um die neue Eigenschaft bei Bedarf festzulegen. Dies soll sicherstellen, dass der Code jederzeit in einem konsistenten Zustand gehalten wird .

Die Weitergabe der Änderung an Ihre Teamkollegen ist hier ein weiterer, weit entfernter Schritt. Agile Teams bevorzugen persönliche Kommunikation und meiner Meinung nach aus gutem Grund. Das Verlassen auf Dokumente ist ein sehr langsames und ineffektives Mittel, um Informationen in einem Team zu verbreiten. Ein Wiki ist etwas besser, aber dennoch ist es IMHO-Overkill, jedes einzelne Klassenattribut zu dokumentieren. Es wird nur eine enorme Belastung für das Team sein und wird ohnehin schnell unzuverlässig und nutzlos, da wir Menschen sind und das Update manchmal vergessen müssen. Außerdem wette ich, dass nicht viele Teammitglieder es regelmäßig tun werden Überprüfen Sie die Dokumentation (in welcher Form auch immer), um über die neuesten Codeänderungen informiert zu werden.

Letzteres gilt auch für automatisch generierte Dokumentationen über zB Javadoc oder Doxygen. Obwohl sie in einem automatischen Build konfiguriert werden können, um die generierte Dokumentation jederzeit auf dem neuesten Stand zu halten, habe ich noch nie ein Entwicklungsteam gesehen, bei dem Mitglieder regelmäßig die Dokumentation durchsuchen, um über die neuesten Codeänderungen informiert zu werden. Und wenn Sie ein Versionsverwaltungssystem verwenden, bemerken Sie die Änderungen zunächst, wenn Sie Ihre lokale Kopie des Codes trotzdem aktualisieren. Dann können Sie in vertrauten Klassen nach Änderungen suchen und genau sehen, was und wie sich geändert hat (zusammen mit a kurze Erklärung und / oder Verweis auf eine Aufgaben-ID, wenn Ihr Team daran gewöhnt ist, aussagekräftige Check-in-Kommentare hinzuzufügen - die in automatisch generierten Dokumenten fehlen werden).

Kommunikation ist einer der Hauptgründe, warum Extreme Programing-Teams Paarprogrammierung durchführen. Wenn Sie die Änderungen zusammen mit einem Teamkollegen vornehmen, wissen sofort zwei von Ihnen über jede Änderung Bescheid, und beim nächsten Mal wird sich jeder von Ihnen mit jemand anderem paaren, sodass sich nützliche Informationen recht schnell verbreiten. Es ist jedoch aus verschiedenen Gründen nicht immer anwendbar. Ansonsten können Sie einfach zu einem geeigneten Zeitpunkt mit Ihren Nachbarn über die Änderung sprechen (z. B. während des Mittagessens, wenn Sie gerade zusammen zu Mittag essen) oder eine E-Mail senden, wenn es sich um eine größere, wichtigere oder kompliziertere Änderung handelt.

Im letzteren Fall kann es einen guten Grund geben, dies ordnungsgemäß zu dokumentieren. IMHO-Konstruktionsdokumente sind am besten geeignet, wenn sie einen grobkörnigen Überblick über das System auf hoher Ebene bieten, während die Implementierungsdetails im Code enthalten sind (gemäß dem DRY-Prinzip ).

Péter Török
quelle
2
+1 Ich denke, jeder im Team muss geschult werden, nicht "blind" auf die neueste Version des Codes zu aktualisieren, sondern kurz zu überprüfen, was und wo getan wurde, bevor er es tut. Und wie Sie sagten, ist ein kurzer, aber präziser Kommentar großartig.
Jalayn
10

Haben Sie darüber nachgedacht, einfach mit ihnen zu sprechen ? Planen Sie ein kurzes Meeting: "Hey, ich habe einige Änderungen an Objekt X vorgenommen. Ich möchte Ihnen zeigen, was sich geändert hat und warum." Oder sprechen Sie einfach mit jeder Person einzeln, wenn eine Besprechung zu formell oder störend erscheint.

Bryan Oakley
quelle
+1, irgendwie wird die naheliegendste Antwort nicht zuerst gedacht!
NoChance
2

Wenn Sie ein Team haben, haben Sie wahrscheinlich auch ein Designdokument. Wenn nicht. Fangen Sie damit an. Verwenden Sie ein UML-Tool, um Ihre Entwürfe abzubilden.

DPD
quelle
7
Das hört sich jedoch im Prinzip gut an: 1. Ein Designdokument, das jedes einzelne Klassenattribut enthält, wird zu einem Problem, wenn es darum geht, den Code zu pflegen und mit ihm synchron zu halten. 2. Ein UML-Diagramm, das aus Code rückentwickelt wurde, wird in einem nicht trivialen Projekt wahrscheinlich bald praktisch unbrauchbar, wiederum aufgrund der Fülle an Details.
Péter Török
Sie müssen nicht jede einzelne Klasse dokumentieren, wenn Sie zu viele haben. Nur diejenigen, aus denen sich die öffentliche Schnittstelle zusammensetzt. Stimmen Sie zu, dass es für ein großes Projekt umständlich wird, aber es ist besser, als kein Dokument zu haben, das angibt, wie die verschiedenen Teile der Anwendung miteinander kommunizieren.
DPD
1
Ich stimme der Bedeutung eines hochrangigen Architektur- / Designdokuments zu (wie in meiner Antwort angegeben). Dies ist jedoch genau so hoch, dass es nicht ständig mit winzigen Änderungen aktualisiert werden muss.
Péter Török
1

Sie können ein Tool wie doxygen in Ihrem Code verwenden. Erstellen Sie nun ein Skript, das die Sauerstoffdokumentation generiert und regelmäßig ausführt, möglicherweise als Teil Ihres nächtlichen Builds (Sie führen einen nächtlichen Build durch, oder?).

Ich denke, Sie können Ihrem Zusatz ein benutzerdefiniertes Attribut in doxygen zuweisen, um es als neu hervorzuheben.

Wenn Ihre Teamkollegen gut sind, würden sie die neue Dokumentation durchgehen.

tehnyit
quelle
Vielleicht habe ich noch nie mit guten Teamkollegen gearbeitet, da ich diese Arbeit noch nie in der Praxis gesehen habe :-(
Péter Török
@ PéterTörök Ich muss zugeben, dass sie weit und breit dazwischen liegen, auch ich.
Tehnyit
0

Wie kann ich meine Teamkollegen darüber informieren, dass mein Objekt mehr Attribute hat, die sie festlegen können?

Nun, Sie sollten Ihre Teamkollegen nicht über alles informieren, was Sie machen. Andernfalls müssten Sie viele E-Mails senden. Wenn es eine große Sache ist, können Sie eine kleine Besprechung abhalten und sie wissen lassen, was Sie getan haben (Wenn Sie Scrum machen, müssen Sie keine separate Besprechung einrichten).

Wenn Sie eine IDE verwenden, die die automatische Vervollständigung unterstützt, sollten Ihre Teamkollegen Ihre Änderung bemerken. Ich hoffe nur, dass Sie Ihren Code kommentieren.

BЈовић
quelle