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?
programming-practices
teamwork
communication
Ted Wong
quelle
quelle
Antworten:
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
companyObj
erstellt 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 verwendencompanyObj
.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 ).
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle