Benutzer:D.loehmann/Artikelentwurf

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 7. März 2014 um 09:46 Uhr durch imported>D.loehmann(937381) (→‎Kritik).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Software Craftsmanship (aus dem Englischen, etwa: Software-Handwerkskunst oder Softwerkskunst) ist eine Bewegung in der Softwareentwicklung, die sich mit der Arbeitsweise und Wahrnehmung des Berufsstandes der Softwareentwickler beschäftigt. Ziel der Bewegung ist es, die Softwareentwicklung als eigenständige Profession, als Handwerk (und nicht als Ingenieursdisziplin) wahrnehmbar zu machen und die Bewertung von Softwareprojekten nach Entwicklerverantwortlichkeiten und nicht nur unter rein finanziellen Gesichtspunkten vorzunehmen.

In der Vergangenheit wurden Programmierer vor allem als Praktiker eines statistisch und mathematisch basierten Engineering-Ansatzes gesehen, der mit Attributen wie Berechenbarkeit, Präsizion, wenig Risiko und geringer Professionalität konnotiert war. Der Softwareentwickler wird gerne als Hobbyprogrammierer oder Entwicklungsingenieur gesehen, der von Projektleitern und Produktverantwortlichen gelenkt werden muss. Zum Sinnbild wurde die Figur des eher weltfremden Nerds. Auch ziehen viele Softwareentwickler sich gerne auf diese Position zurück.

Die Mehrheit der Softwareentwickler erstellt Individualsoftware, von der der Auftraggeber einen Mehrwert erwartet. Der Beruf des Softwareentwicklers ist in den Anforderungen an das Ergebnis vergleichbar mit der Tätigkeit eines Handwerkers, der auch mit Fachkompetenz individuelle Produkte herstellt, die beim Kunden einen gewissen Zweck erfüllen sollen.

Ein Beispiel ist der Elektriker, der die Stromversorgung einer Wohnung erstellt. Ein Elektriker muss zum Beispiel verschiedene Anforderungen beachten: die Kabel müssen nachvollziehbar verlegt sein und ausreichend dimensioniert sein für zukünftig zu erwartende Energiebedarfe. Die Absicherung muss ordnungsgemäß ausgeführt sein, Elektroherd und Durchlauferhitzer sollen gleichzeitig betrieben werden können und darüber hinaus sollen Steckdosen in ausreichender Anzahl und an den richtigen Plätzen vorhanden sein. Der Elektriker kennt aktuelle Technologien und berät den Auftraggeber kompetent. Unter Umständen muss er dem Kunden aber auch unmissverständlich klar machen, dass preisgünstigere Vorschlag (z.B. Kabel diagonal zu verlegen, um Kupfer zu sparen, oder weniger Absicherungen einzubauen) keine gangbare Lösung darstellt.

Genau wie der Elektriker soll auch der professionelle Softwareentwickler verantwortungsbewusst handeln und Aspekte wie Geschäftszweck, Wirtschaftlichkeit, Qualitätsanspruch, Machbarkeit und rechtliche Anforderungen berücksichtigen und vor allem auch gegenüber seinen Auftraggebern (Kunden, Projektmanagern, Vorgesetzten etc.) vertreten können. Vereinfacht gesagt, unterscheidet der professionell agierende Softwareentwickler sich von einem Amateurprogrammierer vor allem durch den Wertekodex, nach dem er handelt und entscheidet.

Dieses Vorgehen lässt sich als Berufsethos der Softwareentwickler ansehen. Die Softwareentwicklung wird damit in den Stand einer Profession erhoben. Darüber hinaus ergeben sich Forderungen nach Standards, Zulassungskriterien, Zertifizierung, permanenter Weiterentwicklung und allgemeingültigen Wissensgrundlagen als Mechanismen für die Reifung der Disziplin.

Bereits das Agile Manifest , mit seiner Betonung auf "Individuen und Interaktionen über Prozessen und Werkzeugen" hinterfragt einige der eingangs dargestellten Annahmen über den Beruf des Softwareentwicklers. Das Manifest des Software Craftmanship erweitert die Annahmen des Agilen Manifestes und verweist in der Formulierung der Grundideen des Software Craftmanship metaphorisch auf das Lehrmodell der mittelalterlichen Handwerkskünste in Europa.


Übersicht

Die Bewegung basiert auf Ideen verschiedener Autoren. Der Pragmatische Programmierer von Andy Hunt und Dave Thomas sowie Software Craftsmanship von Pete McBreen stellen die Verbindung zwischen der Softwareentwicklung und den mittelalterlichen Handwerkskünsten her. Der Philosoph Richard Sennet beschrieb Softwareentwicklung als ein modernes Handwerk in seinem Buch The Craftsman. Freeman Dyson ergänzt den Begriff der Softwerkskunst um die Meisterschaft, Software als einen Treiber für wirtschaftlichen Erfolg einzusetzen:

"Trotz des Aufstiegs von Microsoft und anderer großer Softwarefirmen bleibt die Softwareentwicklung in großen Teilen eine Handwerksindustrie. Aufgrund der enormen Fülle an spezialisierten Anwendungen bleibt immer noch Raum für den einzelnen, Software anhand seines einzigartigen Wissens zu schreiben. Es wird immer Nischenmärkte geben, in denen kleine Softwarefirmen überleben. Die Kunst, Software zu schreiben, wird nicht überflüssig werden. Und die Kunst, Software kreativ einzusetzen, gedeiht noch mehr als die Kunst, Software zu schreiben."

Nach den ersten Diskussionen wurden Konferenzen in London [1] und Chicago abgehalten [2] und ein Manifest wurde erstellt. Dieses ist online verfügbar[3], um Unterzeichner zu sammeln.

Geschichte

1992 veröffentlichte Jack W. Reeves seinen Aufsatz "What Is Software Design?" (Was ist Software-Design?) [4], in dem er postuliert, dass die Softwareentwicklung eher ein Handwerk sei als eine Ingenieursdisziplin.

1999 erscheint Der Pragmatische Programmierer. Der Untertitel der englischen Originalausgabe, "From Journeyman to Master", unterstellt, dass Programmierer während ihrer beruflichen Entwicklung mehrere Stufen vom Lehrling bis zum Meister durchlaufen, ein Prozess, der sich so auch in den Handwerkskünsten im mittelalterlichen Europa findet.

2001 veröffentlicht Pete McBreen sein Buch Software Craftsmanship. McBreen stellt ebenfalls klar, dass Softwareentwickler sich nicht als Ingenieure sehen sollten, sondern dass eine andere Metapher passender wäre.

Im August 2008 Agile 2008 schlägt Bob Martin einen fünften Wert für das Agile Manifesto, "Craftsmanship over Crap" (wörtlich: "Handwerkskunst anstelle von Mist"). Er änderte seinen Vorschlag später in "Craftsmanship over Execution" ("Handwerkskunst anstelle von Ausführung" ).[5]

Im Dezember 2008 trafen sich die ersten engagierten Softwerker in Libertyville, Illinois mit der Absicht, die Grundsätze des Software Craftsmanship zu formulieren.

Im März 2009 wurde das Gründungsmanifest verabschiedet. Es ist öffentlich verfügbar und kann von jedem, der mit den Ideen übereinstimmt, unterzeichnet werden: Manifesto for Software Craftsmanship.

Im April 2009 experimentierten zwei der Bewegung angeschlossene Unternehmen, 8th Light and Obtiva, mit einem 'Softwerkeraustausch', vergleichbar mit den Wanderjahren der Handwerksgesellen.[6] Dem Chicago Tribune war dieses am 15. Juni 2009 sogar einen Artikel wert: [7]

Im Januar 2010 gab es einen zweiten Softwerkertausch zwischen den Unternehmen Obtiva and Relevance.

Softwerkskammer

Die Softwerkskammer als deutschsprachiges Organ der Bewegung wurde im Jahr 2011 gegründet. Die Organisationen kümmern sich vor allem um das Unternehmens- und fachübergreifende Zusammentreffen von Softwareexperten und die Förderung des Austausches.

Derzeit gibt es 13 regionale Organisationen in Deutschland (davon allein 4 in Nordrhein-Westfalen), 2 in Österreich und eine in der Schweiz [1].

Konferenzen

  • SoCraTes: Jährliches Zusammentreffen der lokalen Softwerkskammern aus Deutschland, Österreich und der Schweiz.

Kritik

Der Software Craftmanship Ansatz, insbesondere die Positionierung in der Nähe des Handwerks wird von verschiedenen Seiten in Frage gestellt.

Dan North postuliert in seinem Artikel "Programming is not a craft" [8] dass Softwareentwicklung - oder Programmierung - keine dem Handwerk verwandte Tätigkeit sei. Die Zugangsbeschränkungen sind seiner Ansicht nach zu niedrig (jeder kann Programmierer werden), der Industriezweig ist zu jung und die erstellten Produkte tragen nicht die Schönheit von Handwerksprodukten. North vermisst im Software Craftmanship Manifesto zudem Formulierungen wie "Ergebnisse erzielen" und "Kunden erfreuen".

Literaturverweise

Bücher und Artikel

  • Dave Hoover, Adewale Oshineye: Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman, Foreword by Ward Cunningham, O'Reilly, , ISBN 0-596-51838-2.
  • Robert C. Martin: Clean Code: A Handbook of Agile Software Craftsmanship. Addison Wesley, 2008, ISBN 0-13-235088-2.
  • Pete McBreen: Software Craftsmanship: The New Imperative. Addison Wesley, 2001, ISBN 0-201-73386-2.
  • Richard Sennett: The Craftsman. Yale University Press, 2008, ISBN 0-300-11909-7.
  • Bill Pyritz: Craftsmanship versus engineering: Computer programming - An art or a science?. In: Bell Labs Technical Journal. 2003.


Externe Links (teilweise in Englisch)