Programmieren auf die Spitze treiben

Mansour Raad hatte ein großes Problem. Seine Start-up-Firma DiscoverCast entwickelte Kollisionserkennungssoftware für die Luftfahrtindustrie – Fehler im Code könnten Leben kosten. Aber das Geld war nach einer ersten Finanzierungsrunde versiegt, und es kam nicht in Frage, zusätzliche Programmierer einzustellen, um eine fehlersichere Version fertigzustellen.

Also hat Raad eine relativ neue Programmierdisziplin namens Extreme Programming ins Leben gerufen. Anstatt allein an einzelnen Aufgaben zu arbeiten, arbeiteten Programmierer zusammen, wobei einer Code schrieb, während der andere zuschaute und kritisierte – was sowohl ein kritisches Auge als auch ein kritisch wichtiges Backup bot. [Meine Frau] bekam ein Baby, aber das Projekt musste weitergehen, sagt Raad. Weil ich es den anderen zeigte, konnte jemand in meine Fußstapfen treten. Das Unternehmen hielt Termine ohne eine Zunahme von Fehlern aufgrund der Kommunikation ein.

Die meisten Programmierer sind mit der Softwarequalität nicht zufriedener als ihre Kunden. Jetzt versuchen immer mehr Menschen, Wege zu finden, solide Software in einem Markt zu entwickeln, der neue Produkte und Verbesserungen erwartet und sie schnell haben möchte. Softwareunternehmen wenden sich zunehmend Entwicklungsstrategien zu, deren Namen wie agile Entwicklung und extreme programmieradrenalingeladene Schlagworte gut zum Selbstverständnis der Programmierer als robuste Helden des Informationszeitalters passen. In Wirklichkeit signalisiert der Trend, der eine lange Geschichte hat, eine Ablehnung der Primadonna-Programmierung zugunsten von Teamwork und Zusammenarbeit.



In der Softwareindustrie ist fehlerhafter Code seit langem als eine Tatsache des Lebens akzeptiert - wenn auch eine ärgerliche und teure ( Sehen Sie, warum Software so schlecht ist, KINDER Juli / August 2002 ). Das Problem ist, dass man bei Software zu viel Vertrauen in den eigenen Einfallsreichtum hat, sagt Michael Stiefel, ein Berater, der Kunden in Methoden der Softwarezuverlässigkeit schult. Ich würde beobachten, wie all diese jungen Leute in ihren Zwanzigern die gleichen Fehler machen wie in den 70er und 80er Jahren, und ich frage mich, warum wir das alles noch einmal durchmachen müssen.

Um Fehler zu reduzieren, werben Reformer für Software-Engineering-Ansätze - in der Branche als agile Entwicklung bekannt -, die Teamwork, Zusammenarbeit mit Endbenutzern und einen flexiblen Ansatz für Veränderungen betonen. Um seine Software zur Kollisionsvermeidung zu entwickeln, verwendete Raads Unternehmen eine Art agiler Entwicklung, die als extreme Programmierung bezeichnet wird und die sowohl auf ständige Tests als auch auf Zusammenarbeit Wert legt.

Wenn Sie [eine kollaborative Umgebung] mit voller Kraft anwenden können, wird die Qualität der Produkte besser, sagt Michele Marchesi, ein führender Verfechter der extremen Programmierung und Professor für Elektrotechnik an der Universität Cagliari in Italien.

Was ist Quantencomputer?

Einer der mächtigsten Aspekte der agilen Programmierung ist die sogenannte Peer-Programmierung, bei der Entwickler zusammenarbeiten und abwechselnd Code schreiben und dem anderen seine Logik erklären. Paare sind temporär, teilen sich regelmäßig und tauschen sie aus, um noch mehr Interaktion zu fördern. Neue Augen untersuchen jedes Stück Code und schaffen so einen Prozess der kontinuierlichen Überprüfung.

Zwei Menschen können Ideen voneinander abprallen lassen, sagt Frank Arkell, leitender Softwareingenieur beim Rüstungsunternehmen General Dynamics Decision Systems, das seit zwei Jahrzehnten kollaborative Techniken einsetzt. Um Teams frisch zu halten, ändert General Dynamics sie für jedes Projekt.

Ein weiterer Vorteil der Peer-Programmierung? Gruppenzwang. Niemand möchte die Person sein, die nachlässt, also arbeiten beide härter, sagt Scott W. Ambler, Präsident von Ronin International und Autor und Redner zum Thema agile Entwicklung.

Auf die Probe stellen

Kollaborative Ansätze verändern auch die Art und Weise, wie Software getestet wird. Traditionell ist das Testen ein zweistufiger Prozess. Erstens schreiben Programmierer Code basierend auf Anforderungen. Dann testet eine separate Gruppe das Ergebnis. Aber wenn Software Millionen von Codezeilen enthält, ist der zweistufige Prozess analog zum Entwerfen eines Autos auf Papier, dem Bauen und dann der Überprüfung, ob das Design funktioniert hat.

Wie steht Trump zur Abtreibung?

Dieser Ansatz funktionierte für Entwickler wie Nicholas Stamos, Chief Technical Officer von Phase Forward aus Waltham, MA, einfach nicht. Phase Forward entwickelt Software für die Durchführung klinischer pharmazeutischer Studien, und seine Produkte müssen die strengen Anforderungen der US-amerikanischen Food and Drug Administration erfüllen.

Laut Stamos erfüllt Phase Forward diese Anforderungen, zum Teil aufgrund der engen und konstanten Zusammenarbeit zwischen den Programmierern des Unternehmens und dem Qualitätssicherungspersonal. Man kann es nicht über den Heckspiegel werfen und hoffen, sagt er. Qualität muss vom ersten Tag an eingebaut werden. Wenn Programmierer eine Komponente fertigstellen, überprüft das Qualitätsteam deren Arbeit. Dann tauschen die Teams die Plätze für eine weitere Runde Bugfixes. Schließlich wird die integrierte Anwendung getestet, um Probleme mit der Interaktion zwischen den Komponenten zu finden. Anstelle des alten zweistufigen Ansatzes wird das Testen zu einem interaktiven, fortlaufenden Prozess.

Einige Unternehmen versuchen einen ähnlich iterativen Ansatz, nicht nur zum Testen, sondern auch zum Entwerfen von Code. Cognizant Technology Solutions, ein Beratungsunternehmen mit Sitz in Teaneck, NJ, hat herausgefunden, dass bestehende Methoden, mit formalen Spezifikationen zu beginnen und dann Code zu schreiben, um diese zu erfüllen, vor 20 oder 30 Jahren möglicherweise funktioniert haben. Aber in einer Welt, die über das Web läuft und Flexibilität erfordert, kann formell steif sein.

Als wir versuchten, die traditionellen Prozesse für diese neueren Arten von Projekten zu verwenden, waren die Kunden entweder wirklich frustriert, weil wir sie zwangen, den Prozess einzufrieren, oder die Projektteams folgten dem Prozess einfach nicht, sagt Kumar Mahadeva, CEO von Cognizant. Stattdessen verwenden Projekte eine Reihe von Prototypen, gefolgt von einem Industrialisierungszyklus, der es dem Unternehmen ermöglicht, plötzliche Änderungen von Kunden auf eine Weise zu handhaben, die weniger Auswirkungen auf die Zuverlässigkeit hat, als ein Programm nach seiner Fertigstellung anzupassen. Zukünftige Benutzer geben ständig Feedback, während die Anwendung Gestalt annimmt.

Die ultimativen Grenzen der Softwarequalität liegen jedoch möglicherweise nicht in den Fähigkeiten der Programmierer oder der Stärke des Entwicklungsprozesses. Dies ist das Rätsel, mit dem wir und viele Hersteller heute konfrontiert sind: Was ist ein akzeptables Qualitätsniveau? sagt James Hymel, Director of Software Engineering bei Motorola. Wenn Konkurrenten süße, billige, aber fehlerhafte [Produkte] herstellen und die Kunden sagen, dass dies akzeptabel ist – das heißt, sie geben ihr Geld dafür aus –, werden Sie herausgefordert.

Mit Methoden wie agiler Entwicklung, Partnering von Entwicklung und Test und der Einbeziehung von Endbenutzern unternehmen Softwareentwickler Schritte, um ihr Produkt zu verbessern. Aber am Ende des Tages können die gleichen Leute das größte Hindernis für die Qualität sein, die es am lautesten fordern: die Verbraucher.

verbergen

Tatsächliche Technologien

Kategorie

Unkategorisiert

Technologie

Biotechnologie

Technologierichtlinie

Klimawandel

Mensch Und Technik

Silicon Valley

Computer

Mit News Magazine

Künstliche Intelligenz

Platz

Intelligente Städte

Blockchain

Reportage

Alumni-Profil

Alumni-Verbindung

Mit News Feature

1865

Meine Sicht

77 Mass Avenue

Treffen Sie Den Autor

Profile In Großzügigkeit

Auf Dem Campus Gesehen

Lerne Den Autor Kennen

Alumni-Briefe

Nicht Kategorisiert

77 Massenallee

Rechnen

Tech-Richtlinie

Lernen Sie Den Autor Kennen

Nachrichten

Wahl 2020

Mit Index

Unter Der Kuppel

Feuerwehrschlauch

Unendliche Geschichten

Pandemie-Technologieprojekt

Vom Präsidenten

Titelstory

Fotogallerie

Empfohlen