Wie kann eine große Anzahl von Entwicklern schreibt Software zusammen, ohne entweder einen mühsamen Prozess oder schlechte Qualität Software?

StackOverflow https://stackoverflow.com/questions/2866762

Frage

Ich arbeite in einem Unternehmen mit Hunderten von Menschen Software für im Wesentlichen das gleiche Produkt zu schreiben. Die Qualität der Software hat, hoch zu sein, weil so viele Menschen davon abhängen (nicht zuletzt die Entwickler selbst). Aus diesem Grund jede wichtige Frage wurde in einem neuen Check geführt -. Entweder automatisiert oder manuell

Als Ergebnis der Prozess-Software liefern wird immer beschwerlicher. So dass mehr Entwickler, die erfordert ... gut können Sie sehen, es ist ein Teufelskreis ist.

Wir haben jetzt ein Problem mit Freigabe Software schnell -. Die Durchlaufzeit auch für eine sehr ernste Angelegenheit einer Zeile Code zu ändern, ist mindestens einen Tag

Was Techniken verwenden Sie, die Lieferung von Software in einer großen Organisation zu beschleunigen, während sie noch die Softwarequalität beibehalten?

War es hilfreich?

Lösung

Ich arbeite auch in einem großen und umständlichen Organisation. Ich habe Erfolg mehr agile Softwareentwicklung Methoden der Umsetzung habe, aber es gibt zwei besonders, dass ich haben herausgefunden, besonders wertvoll.

iterative und inkrementelle Entwicklung - Ihre Release-Zyklus kurz und dicht. In einem großen Team, wenn zahlreiche Änderungen zwischen den Versionen gemacht werden, können Sie sich in einem Integrations Alptraum finden.

Große Organisationen neigen zu großen Projektplänen mit langen Entwicklungszeitlinien. Kämpfen Sie diese. ein Projekt aus einem ganzen Jahr Planung macht keinen Sinn, wenn Ihre gesamte Wahrnehmung nach den ersten zwei Wochen der Entwicklung ändern könnte. Bedingung Ihre Stakeholder machen kleine inkrementelle Releases auf die Idee zu gewöhnen und die Anpassung an den sich ständig ändernden Anforderungen.

Automatische Unit Tests - Dies ist eine gute Möglichkeit, Sie zu versichern sind die Freigabe Qualitätssoftware. Die schlimmsten Fehler werden durch scheinbar harmlose Änderungen am Code verursacht, die an anderer Stelle unbeabsichtigte Folgen haben. Umfassende Unit-Tests sind vielleicht der beste Weg, diese Art von Fehlern zu fangen. Wenn Sie einen Abschluss an Test Driven Development oder Verhalten Driven Development , sogar besser.

Jede große Organisation wird einige mittelmäßigen Entwickler haben. Es ist eine Tatsache des Lebens. Automatisierte Unit-Tests ist eine gute Möglichkeit, ein Auge auf sie zu halten. Haben Sie einen Ihrer besseren Entwickler schreiben ihre Unit-Tests für sie. Sie Gewissheit haben, dass zumindest ihr Code funktioniert (auch wenn es hässlich ist).

Andere Tipps

Es gibt viele Möglichkeiten, um den Prozess zu verbessern, aber die Schlüsselkomponente ist Modularität . Durch die klaren Verantwortlichkeit (sowohl im Code und in der Organisation) und definieren klare und einheitliche Schnittstellen, ein großes Team zu trennen kann so viele kleine Teams arbeiten alle zusammen gebunden.

Wise aber düster Sprüche:

Etwas, das funktionieren könnte:

Sie organisieren das Projekt so, dass es eine Kernanwendung von einer oder zwei Personen aufgebaut ist, vorzugsweise über eine Sprache betrieben. Dann werden alle lassen die Programmierer effektiv sein Benutzer des Kerns, durch Codierung in dieser Sprache.

Ich denke an sprachbasierte Produkte: SAS , < a href = "http://en.wikipedia.org/wiki/S_%28programming_language%29" rel = "nofollow noreferrer"> S / R , MATLAB , etc.

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