Frage

Kontext: Ich an einem kleinen Software-Unternehmen arbeiten, die traditionell forschungs Art der Arbeit getan hat und viel Erfahrung nicht im kommerziellen Raum haben. Wir versuchen nun, in die Berufswelt zu schieben. Aufgrund unserer Ursprünge in der Forschung sind wir zu einem sehr schnellen Entwicklungszyklus und sehr wenig Struktur in Bezug auf die Aufrechterhaltung der richtigen Versionen von Projekten verwendet.

Problem: Der Mangel an Struktur erweist sich nun etwas ein Hindernis zu sein, da jeder Entwickler einen etwas anderen Blick auf die Codebasis hat. Ein Problem, ein Entwickler entdeckt ist von einem anderen Entwickler nicht reproduzierbar und in einem Build gefunden Probleme in dem nächsten (oder noch schlimmer, neue Probleme auftreten können) verschwinden. Dies sorgt für eine sehr frustrierende Erfahrung für jemanden, der für die Integration aller Projekte verantwortlich und gewährleistet Qualitäts- und Leistungsstandards erfüllt sind - das heißt selbst.

Mögliche Lösung: Ich persönlich bin überzeugt, dass wir eine bessere Struktur über feste Versionsnummern und regelmäßige Meldungen erzwingen müssen. Es soll selbstverständlich sein, wie die richtige Versionsverwaltung mit vielen unseren Problemen helfen würde, aber es ist natürlich nicht ohne Probleme - Entwickler zusätzliche Arbeit ausführen und Test Releases tun müssen, und wird nicht mehr in der Lage sein, die neuesten Versionen zu verwenden, von alles.

Frage: Um zu einem Punkt zu kommen - welche Arten von Strategien, die Sie empfehlen für die Freisetzung erforderlich, um den Prozess und Aufwand für die Gewährleistung so reibungslos wie möglich auftritt? Wir verwenden git für die Versionskontrolle, Maven für unser Build-System, und wir haben Bug-Tracking und kontinuierliche Integration Systeme ausgeführt werden, so dass ich glaube, dass die Werkzeuge geben. Ich bin einfach nicht sicher, was ein richtiger Release-Prozess aussehen soll.

War es hilfreich?

Lösung

Sie haben die großen drei statt: Versionskontrolle, mit einem Klick über Maven und Ihren kontinuierlichen Build-Server bauen, und Bug-Tracking. Es klingt wie Sie Jungs sind auf Agile Methodologien gravitierende, und so sollten Sie versuchen, zu jeder Zeit die Stamm Version Ihres Produkts in einem in der Nähe von lieferbaren Zustand zu halten.

Wenn Sie sich entscheiden, Ihre erste Veröffentlichung zu machen, eine Filiale von Ihrer Stamm-Version für diese Version erstellen. Entscheiden Sie sich für ein Kennzeichnungssystem und sicher sein, die Zweig Version beschriften. Zum Beispiel könnte Ihre erste Release 1.0.4530 sein, wobei die 1 bedeutet, erste Version, die 0 bedeutet, es ist das erste Release Candidate, und die 4530 ist die Versionskontrolle Änderungsnummer. Sie testen diese Release-Zweig und beheben wichtige Bugs darauf. Nach einer Weile Sie eine andere Release Candidate ausgeben, sagen 1.1.4807. Dieser Prozess durchläuft ein paar Mal (sagen wir), Ihre Freilassung wird gut genug, und Sie versenden Version 1.3.5167.

Inzwischen Ihre Neuentwicklung tritt nur in der Stamm-Version und von Zeit zu Zeit müssen Sie Bug-Fixes von dem 1.x Release-Zweig zurück zu dem Stamm zusammenführen. Später werden Sie einen 2.x-Zweig vom Stamm abspalten den Prozess für die zweite Veröffentlichung zu wiederholen. Sie werden in der Regel mehr aktiven Zweige haben (plus den Stamm), mit der Entwicklung an den Stamm begrenzt und jeder Zweig gehalten unberührten und unabhängig von der Entwicklung.

Ihr Jungs werden den Dreh Dinge und Ihre Entwickler Koordinationsprobleme werden geworden bekommen weniger häufig. Aber diese Probleme gehen fast alle auf den Stamm beschränkt, nicht die Freigabe Zweige.

Andere Tipps

  

Ein Problem ein Entwickler entdeckt ist   nicht reproduzierbar von einem anderen Entwickler,   und Probleme in einem Build gefunden kann   verschwinden in dem nächsten (oder noch schlimmer, neu   Probleme können auftreten). Dies sorgt für eine   sehr frustrierende Erfahrung für   jemand, der verantwortlich ist für   alle Projekte zu integrieren und   Gewährleistung der Qualität und Leistung   Standards erfüllt sind - d. h selbst

     

Mögliche Lösung: Ich persönlich bin   überzeugt, dass wir brauchen eine bessere Durchsetzung   Struktur über feste Versionsnummern   und regelmäßig Releases.

Ich glaube nicht, dass Sie sehr häufig Versionen haben müssen, nur intern zu koordinieren. Sie können, dass durch Versionskontrolle tun. Gerade haben die Menschen über bestimmte git Revisionen sprechen, wenn Probleme gemeldet. Beachten Sie auch, dass Sie alle externen Abhängigkeiten / Bibliotheken koordinieren müssen. Irgendeine Art von Herstellerzweige rel="nofollow dabei helfen könnte .

Es klingt wie die Entwickler brauchen „Test Zweige“ und respektieren den „stable / Produktionszweig“ ein wenig mehr zu verwenden.

Verkaufen in dem Konzept der „tun Ihr Wild-West-Material in diesem Zweig“, und wenn Sie mit den Ergebnissen zufrieden sind, dann sind Sie es in diesen „langweilig stabilen Produktionszweig“ verschmelzen .... (Oder so ähnlich)

Es gibt Bücher über das allgemeine Thema geschrieben; Amazon Suche gibt auch drei Titel für spezielle „Versionskontrolle mit Git.“

Ich denke, Sie definieren eine kanonische Ansicht der Codebasis profitieren. Rufen Sie testen. Ein Problem ist ein Problem, wenn es in Test erscheint. Wenn ein Problem in einigen Entwickler-Ansicht nicht erscheint, ist es in diesem Entwickler bis herauszufinden, was der entscheidende Unterschied ist; und ebenfalls für ein Problem, das in einem Entwickler-Ansicht angezeigt wird, aber nicht in Test.

Eine Konvention ist für Test von Quellen auf einer nächtlichen Basis neu gebaut werden. Eine anstrengende Konvention ist für Test bei jeder Aktualisierung neu gebaut werden. Wenn Ihr Team klein ist (fünf oder weniger) und nicht über große Entfernungen oder mehrere Zeitzonen verteilt ist, eine vernünftige erste Näherung Testen Sie einen git Arbeitsplatz auf einem Server, auf das Ihre Werkzeugkette zusammen mit einigen Cron-Jobs installiert wurde zu machen, so dass dieser Arbeitsbereich aktualisiert und jede Nacht (in der Regel) wieder aufgebaut.

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