Frage

Eine gemeinsame Komponente ist eine Bibliothek oder andere Stück code, dass ist erstellt und verwaltet durch eine Gruppe und von vielen Gruppen.

Einige Probleme, die wir haben, sind:

  • Die Benutzer müssen den Bericht nicht Probleme mit den Komponenten.
  • Benutzer erstellen, workarounds, um die Komponenten zu Anzug Ihre Bedürfnisse.
  • Brechen Sie die Kompatibilität mit der trunk-version ist einfach zu erfüllen und Termine einzuhalten.
  • Benutzer codieren Ihre eigenen (weniger robust) - Lösungen, weil Sie denken, es ist besser.

Wie hat Ihre Organisation handle gemeinsame Komponenten?

Ideen, die ich habe:

  • Behandeln Sie die Komponente wie ein open-source-Projekt und benötigen teams patches.
  • Völlig zu verbieten benutzerdefinierte änderungen am code.
  • ...
War es hilfreich?

Lösung

Was haben Sie hier möglicherweise eines menschlichen Faktoren problem eher als eine technische.In der Tat kann es sein in Erster Linie ein Lern-Problem (kombiniert mit dem typischen nicht erfunden hier syndrom).

Nachdem er in großen Unternehmen, merke ich, dass es hart ist, für eine neue person zu verstehen alle die Ressourcen (z.B.gemeinsame code-Bibliotheken) zur Verfügung, die ihm, viel weniger, wie und Wann Sie zu benutzen.

Wenn Sie eine neue Miete, ist er/Sie seine formelle Ausbildung in Ihrem gemeinsamen Komponentenbibliothek?

Dann gibt es das problem, was die Leute belohnt werden, die für.Bei der Beurteilung Zeit-Manager belohnen die Menschen für die Verwendung des gemeinsamen Komponenten, Sie zu verbessern und Absenden Verbesserungen wieder in die Bibliothek?Oder haben Manager einfach kümmern sich um Ihre eigenen Projekte.

Wie für Ihre Gruppe, die behauptet, die Allgemeine Bibliothek, in welcher form oder reconginition tun Sie liefern, um Menschen, die sich die Zeit nehmen, zu empfehlen oder senden Verbesserungen?Kommen Sie geschrieben in die Unternehmens-newsletter?Holen Sie sich einen cash-bonus?Holen Sie sich Ihr Foto auf die bulliten board?

Denken Sie daran, Menschen, ist es sehr unwahrscheinlich, etwas zu tun für ein Unternehmen, für das Sie erhalten keine Anerkennung oder Belohnung.

Andere Tipps

Wir versuchen, zu mehr Service-basierten Systemen zu bewegen, so dass, wenn wir eine bestimmte Funktionalität für ein Projekt zu erstellen, kann es aus einem anderen Projekt über einen Web-Service genutzt werden. Auf diese Weise gibt es nur eine Instanz des Codes.

Natürlich funktioniert dies besser für einige Arten von Komponenten. (Ein Beispiel: wir vor kurzem einen PDF-Erstellung Dienst erstellt) als andere (wahrscheinlich übertrieben für eine String-Manipulation Dienstprogramm)

Die einzige erfolgreiche Komponente ich hier gesehen habe, ist in einer kompilierten Version neu verteilt (* .dll). Benutzer melden Sie Fehler oder Wünsche direkt mit dem besitzenden Team, und sie sie selbst umzusetzen. Es gibt eine api für eigenen Plugins für Sachen zu schreiben, die am ehesten zu ändern ist, damit die Menschen, die Funktionalität in vielen Fällen erstrecken können.

Es gibt immer den Kompromiss zu

  • die Menschen davon überzeugen Ihre Komponente verwenden
  • hält ein vernünftiges Maß an Qualität bei gleichzeitig

Nicht sicher, was ist das Beste, was in Ihrem Fall zu tun, aber in der Regel versuchen, die Kernlogik selbst, halten Sie die Komponente konfigurierbar / ausfahrbaren zu implementieren, damit die Menschen brauchen, um den Kern die ganze Zeit und eine gute Unterstützung bieten nicht zu ändern . Aus irgendeinem Grund einige Entwickler neigen dazu, immer das Rad neu zu erfinden, aber dumm ist es, so würde ich keine Sorgen darüber zu viel.

Eine gute Möglichkeit ist regelmäßigen Code-Reviews zu stehen. Während diese, wenn Sie ein Rad neu erfunden finden Sie die Möglichkeit, entweder verwenden können, um die Entwickler zu erziehen, um gemeinsame Komponente zu verwenden, oder warum sie das Bedürfnis verspürt, neu zu erfinden und verbünden ihre Argumentation auf den ursprünglichen Code. Diese Anforderungen Weise, jeder gemacht werden und die Komponenten für alle verbessert.

Behandeln Sie sie auf die gleiche Weise Bibliotheken von Drittanbietern würde. Ich würde nicht einmal die anderen Teams läßt die Quelle zu sehen -. So tun zu vielen zeitraubende Kritik führen kann und Back-Biting

Wie groß ist die Organisation? Ich habe dieses Zeug sehr gut in einer kleinen Organisation behandelt gesehen (ein paar Dutzend Programmierer insgesamt), wo ein oder zwei Personen, das Eigentum an jeder Komponente haben, sind bekannt, und reagieren Anfragen zu kennzeichnen.

Es ist einfacher zu jemandes Büro zu marschieren (oder sie E-Mails), erklärt, was Sie brauchen, und erhalten Sie eines der folgenden:

  • die erwartete Art und Weise zu tun, was Sie wollen,
  • Vereinbarung die erforderliche Funktion (oder direkt ein Günstling zu tun) hinzuzufügen,
  • die Erlaubnis, die gewünschte Funktion in der gemeinsamen Komponente,
  • zu implementieren

Als es gerade in dem Schreiben Abhilfe zu starten ist, beginnend mit einer Gabel oder schreibt eine gleichwertige neue Komponente. Wenn Ihr Programmierer klug sind, werden sie tun, was sie denken, ist am einfachsten. Der Trick ist, um sicherzustellen, dass dies das Richtige ist.

Neben wirklich einfachen Sachen wie verkettete Listen, gab es nicht eine ganze Menge Rad-Neuerfindung geht. Es gab nur sehr selten, private Gabeln für bestimmte Produkte, am häufigsten durch Zerhacken Dinge Codegröße zu reduzieren, aus. Aber die übliche Weise zu tun, war die ursprüngliche Komponente zu ändern, um mehr Build-Optionen zu haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top