Welche Branchen entwickeln die Software von höchster Qualität? Niedrigste Qualität? Wieso den? [abgeschlossen

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

  •  24-10-2019
  •  | 
  •  

Frage

Aus Ihrer Erfahrung von jenen Branchen, die kundenspezifische Software für den internen Gebrauch entwickeln, wie z. B. Finanzdienstleistungsunternehmen, produzieren diejenigen, die in den Mangelraten gemessen werden, und, was qualitativer war, auf lange Sicht eine einfache Wartung erleichtert?

Was trägt am meisten zu dieser Leistung von höherer Qualität bei? Liegt dies an besseren Softwareentwicklungspraktiken wie einer stärkeren Betonung von Tests oder Spezifikationen? Entwickler, die die Werkzeuge besser verstehen oder die starke Problemlöser sind? Bessere Kommunikation zwischen Teammitgliedern?

Welche Branchen produzieren Ihrer Meinung nach auf der Flip-Side die Software mit der niedrigsten Qualität? Wieso den?

War es hilfreich?

Lösung

Dies ist eine wirklich komplexe Frage. Während die NASA sicherlich einen hochwertigen Code für lebenskritische Systeme oder Robotersysteme liefert, die in großen Entfernungen arbeiten müssen (denken Sie an die jüngste Software-Fix auf Voyager 2, dreizehn Lichtstunden von der Erde), ist die Qualität der NASA nicht billig, oder schnell. Linie für Linie, es ist wahrscheinlich die teuerste Software in der Branche.

Ihre grundlegende Berichterstattung in einem Unternehmen benötigt diese Art von Qualität nicht. Es ist auch nicht kostengünstig. Es gibt viele Möglichkeiten, die Qualität zu verbessern, und sie unterscheiden sich von den Kosten und billig (codierende Standards) bis hin zu ressourcenintensiven, schwierigen und immens zeitaufwändiger (geschriebener, formaler mathematischer Nachweis der Korrektheit bei jeder Methode).

Projektmanagementinstrumente wie Risikobewertung, Projekt-Post-Mortems und kontinuierliche Verbesserung können einer Organisation helfen, zu einer geeigneten Reihe von Qualitätspraktiken zu gelangen.

Ohne auf eine bestimmte Branche mit einem Finger zu richten, werde ich sagen, dass die destruktive Praxis in Bezug auf die Qualität zeitlicher Druck ist. Nichts veranlasst einen Programmierer, schlampigen Code so sehr wie enge, künstliche Fristen zu schreiben.

Was sind die Anforderungen für eine bessere Qualität?

Kommunikation ist entscheidend. Jeder Entwickler im Team sollte zumindest im breiten Bereich wissen, woran jeder andere Entwickler arbeitet.

Zweitens ein Verständnis, dass die Qualität an dem Tag beginnt, an dem das Projekt akzeptiert wird. Anforderungen müssen verstanden und validiert werden. Zu den Schlüsselfaktoren gehört, dass die Anforderungen das zu lösene Problem identifizieren, anstatt eine vorgeschlagene Lösung zu verwenden, um eine Problemdefinition zu vermeiden. Stellen Sie sicher, dass die Anforderungen messbar und spezifisch genug sind, damit sowohl Entwickler als auch Kunde erkennen können, dass eine Lösung den Anforderungen entspricht. Stellen Sie sicher, dass die Anforderungen eindeutig an alle Verbraucher von Anforderungen mitgeteilt werden, einschließlich Entwicklern, Tester, Tech -Autoren, Supportpersonal und Managern. Die Qualität wird am besten an klar angegebenen Anforderungen gemessen. Wenn Ihre Anforderungen schlecht definiert sind, ist die Qualität bestenfalls Hap-Hazard.

Bewertungen sind entscheidend. Nicht nur Code -Bewertungen, sondern Anforderungenanalyse, Entwürfe und vielleicht vor allem Testerpläne. Die Aufgabe des Tests besteht darin, zu überprüfen, ob die Anforderungen erfüllt wurden. Sie können keine schlechten oder nicht existierenden Anforderungen testen.

Und das führt zum Verständnis der Rolle des Tests. Sie können die Qualität nicht in ein Produkt testen. Tests können die Qualität überprüfen. Tests können Defekte finden und überprüfen, ob sie behoben wurden. Wenn jedoch die Qualitätspraktiken nicht so weit nachverfolgt wurden, dass die Tests beginnt, kann das Test nicht beheben.

Obwohl ich kein Fan des Wasserfallentwicklungsmodells bin, denke ich, dass die agile Entwicklung die Dinge zu weit zum anderen Extrem bringen kann und leicht auf eine Weise missbraucht werden kann, die die Qualität beeinträchtigt. Ich denke, dass Scrum dazu beiträgt, einige der Probleme von Agile zu lindern. Scrum fördert die Kommunikation innerhalb des Teams und erkennt an, dass Schätzungen nichts weiter als gebildete Vermutungen sind, die im Laufe des Wissens verfeinert werden können.

Andere Tipps

Mir hat es immer gemocht "Sie schreiben das richtige Zeug" Dies beschreibt den Softwareentwicklungsprozess für NASA -Auftragnehmer.

Shuttle -Software ist definitiv einer der letzten Orte, an denen Sie Ihren Fehler fortsetzen möchten!

Welche Branchen produzieren Ihrer Meinung nach auf der Flip-Side die Software mit der niedrigsten Qualität? Wieso den?

Ich würde das Web sagen. Meistens, weil es extrem einfach zu bereiten ist, können viele Updates/Korrekturen ohne Kundenbenachrichtigung (oder Eingabe) durchgeführt werden. Es scheint eine viel entspanntere Mentalität zu geben, als beispielsweise bei der Boxed -Software verglichen zu werden.

Ich werde weitermachen und sagen müssen, dass Banken den schlechtesten Code schreiben - sie brauchen alle möglichen benutzerdefinierten Lösungen, aber das Schreiben von Code ist nicht ihr Hauptaugenmerk. Kombinieren Sie, dass Sie mit dem Behandlungscode wie einem Widget, das Sie an den niedrigsten Bieter verschickt haben können, das Zeug, das herauskommt, wirklich erschreckend sein können.

Dies variiert natürlich von Bank zu Bank und Organisation zu Organisation innerhalb dieser Banken, aber im Großen und Ganzen sehe ich nicht viel Qualitätscode heraus. Als jemand, der seit 10 Jahren mit Banken zusammenarbeitet, betrachte ich mich als Experte für beschissene Banksoftware :)

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