Dienstag, 18. Oktober 2011

Jochen Ludewig über Software Engineering in Praxis und Ausbildung

Jochen Ludewig ist seit 1988 Lehrstuhlinhaber für das Fach „Software Engineering“ an der Universität Stuttgart. Vorher war er drei Jahre lang Assistenzprofessor an der ETH Zürich. Ludewig verfügt über ausgedehnte industrielle Erfahrungen, und zwar von 1975 bis1980 bei der (damaligen) Gesellschaft für Kernforschung in Karlsruhe, anschließend bis1985 im BBC-Forschungszentrum Baden/Schweiz als Leiter der Arbeitsgruppe „Software Engineering“. Er wurde 1981 an der TU München in Informatik promoviert. Ludewig ist seit 2009 GI Fellow.


 
Bertal Dresen (BD): Wie kaum ein anderer Kollege an den Hochschulen haben Sie sich im deutschen Sprachraum, zuerst in der Schweiz und dann in Deutschland, für das Thema Software Engineering (SWE) engagiert. Seit der berühmten Garmischer Konferenz von 1968 erfährt die ingenieurmäßige Vorgehensweise in der Software-Entwicklung ernsthaftes akademisches Interesse. Hat sich dieses Interesse für die Praxis eigentlich ausgewirkt, wenn man von der verbesserten Ausbildung einmal absieht, auf die ich gleich noch eingehen werde? Oder war es, wir mir ein Kollege 1968 klarzumachen versuchte, für uns Praktiker eine Illusion, von den Akademikern zu erwarten, dass sie Probleme lösen würden, die nur Praktiker selbst lösen können? Was also hat sich nach Ihrer Ansicht in der Praxis seit 1968 verändert?

Jochen Ludewig (JL): Die Praxis von 1968 kenne ich nur aus Berichten; ich habe 1969 meine ersten Programme geschrieben und die Praxis erst in den Siebzigern gesehen. Damals herrschte eine Stimmung vor, die man durch das Bild des Cowboy-Programmierers beschreiben kann. Die Programmierer hatten keine einschlägige Ausbildung und fühlten sich berufen, die geforderten Programme zum Laufen zu bringen, wie auch immer. Damals entstand der Begriff der „strukturierten Programmierung“, und Dave Parnas beschrieb das revolutionäre Konzept des „information hiding“, aber davon wusste die Praxis nichts. Die Probleme der Software-Entwicklung wurden von den Praktikern erlebt, aber nicht reflektiert. Das hat sich zweifellos geändert. Es gibt immer noch viel unsystematisches Vorgehen, aber nur noch wenige Praktiker, die sich der Defizite nicht bewusst sind. 

BD: Der Altmeister Dijkstra, dessen scharfe Worte meistens einen Kern Wahrheit enthielten, soll gesagt haben: ‚Software Engineering ist der Versuch Leuten, die dafür nicht geeignet sind, das Programmieren beizubringen.‘ Was also ist realistisch zu erwarten? Ist es nicht eine Utopie, zu hoffen, dass man eines Tages Software fehlerfrei und effizient zugleich entwickeln kann? Dann noch unter Zeitdruck? 

JL: Software ist komplex, mindestens so komplex, wie die Probleme, die sie lösen soll. Daran wird sich nichts ändern. Wir können aber die Prioritäten anders festlegen, beispielsweise durch Verwendung fertiger Komponenten. Damit tauschen wir die Flexibilität der Individualsoftware gegen die Kosten- und Zeitvorteile der Massen­software. Ob das sinnvoll ist, hängt von der konkreten Situation ab.

Noch ein Wort zu Dijkstra: Ich denke, dass eine reife Ingenieurdisziplin für die gängigen Probleme Lösungswege anbietet, die keine wissenschaftliche Qualifikation erfordern. Wenn ein Hohepriester des Fachs den Laien erklärt, sie hätten eben keinen Zugang zur Erkenntnis, dann ist das wenig hilfreich. Ich setze darum Dijstras Diktum entgegen: Software Engineering als Lehr- und Forschungsgebiet zielt darauf ab, die Bearbeitung der Software so zu modellieren und zu organisieren, dass sie keine außergewöhnlichen Fähigkeiten voraussetzt. (Sehr frei nach Brecht: Glücklich die Firma, die keine Software-Helden braucht!)

BD: Jetzt zur Ausbildung. Sie haben sich sehr mit der Weiterbildung von Mitarbeitern in der Industrie befasst. Was fehlt (oder fehlte) denen am meisten? Was können (oder konnten) Sie als Hochschullehrer ihnen bieten? Hat sich der Schulungsbedarf verringert oder verändert, seit immer mehr akademisch ausgebildete Informatikerinnen und Informatiker in der Praxis Einzug halten?

JL: Vielen Praktikern fehlt das Vertrauen in Verfahren und Vorgehensweisen, die nach allem, was wir wissen, höchst sinnvoll sind. Ihnen fehlen die positiven Erfahrungen. Und es ist nur zu verständlich, dass sie, zumal unter dem leider normalen Zeitdruck, nicht auf ein Verfahren wechseln, dem sie nicht trauen. Wer in Eile ist, wird nicht die alten Schuhe gegen neue tauschen, die ihm vielleicht gar nicht passen. Wir müssen also – beginnend in der Ausbildung – dafür sorgen, dass die Software-Ingenieure mit den guten Techniken und Mitteln gute Erfahrungen haben. Das gilt natürlich nicht nur für die Software-Entwickler, sondern auch und besonders für deren Manager. Die müssen nicht alles wissen und können, aber sie sollten verstehen, was geht und was nicht.

Der Schulungsbedarf hat sich nicht vermindert, aber in der Tat verändert. Ein traditionelles Biotop im Stil der Siebziger findet man heute kaum noch. Man hat in aller Regel eine höchst heterogene Mischung von Altersklassen, Qualifikationen und natürlich auch Interessen vor sich, so dass man oft weniger Wissensvermittlung als Mediation bietet. Wenn sich am Ende eines Seminars die Teilnehmer gegenseitig besser kennen und verstehen und also wissen, was sie voneinander erwarten können, ist das schon sehr nützlich. 

BD: Sie vertreten die Meinung (wie viele andere Kollegen auf der Welt auch), dass die SWE-Ausbildung an Hochschulen nur dann die ihr gebührende Aufmerksamkeit bekommt, wenn sie als eigener Studiengang angeboten wird. Was sind die wesentlichen Argumente dafür? Hat sich daran in den letzten Jahrzehnten etwas geändert, etwa durch Umorientierung der Informatik-Ausbildung im Allgemeinen?

JL: Ich bin fest davon überzeugt, dass wir sowohl eine Informatik als auch eine Softwaretechnik brauchen. Vorbild dafür sind Physik und Elektrotechnik. Die Physiker haben im Mittel mehr Mathematik und Theoretische Physik gelernt als die Elektroingenieure, die dafür mehr von den praktischen Problemen, den Normen und der betrieblichen Realität wissen. Aber der wesentliche Unterschied liegt in der Geisteshaltung, der Zielrichtung, die im Studium vermittelt wird; beim Ingenieur steht nicht die Erkenntnis im Vordergrund, sondern die Problemlösung. Fred Brooks hat das 1977 so formuliert: “... the scientist builds in order to study; the engineer studies in order to build.” In einem Softwaretechnik-Studiengang kann und sollte man diese Denkweise vermitteln. In Stuttgart funktioniert das nach meinem Eindruck sehr gut.

Die in der Frage erwähnte Umorientierung der Informatik-Ausbildung hat nach mei­nem Eindruck nicht stattgefunden, jedenfalls nicht in Richtung Software Engineering. Beispielsweise gibt es nur an wenigen Orten anspruchsvolle, große und langlaufende Softwareprojekte; in der Softwaretechnik sind sie obligatorisch.

BD: An der Universität Stuttgart gibt es – dank Ihrer Initiative – seit Jahren den Studiengang Softwaretechnik. Wie wurde er rein zahlenmäßig akzeptiert? Wie bewerten Sie den Erfolg? Was sind Ihre Erfahrungen bezüglich der Absolventen? Erhielten sie Stellenangebote, für die andere Informatik-Absolventen nicht in Frage kamen? Gibt es Firmengründungen, die es sonst nicht gegeben hätte?

JL: Das Zahlenverhältnis der Studienanfänger in Informatik und Softwaretechnik hat sich in der Gegend von 60:40 eingependelt. Befragungen der Studierenden erlauben den Schluss, dass die Softwaretechniker mindestens so zufrieden sind wie die Informatiker. Da alle den formalen Abschluss „Dipl. Inf.“ erhalten (zukünftig „B. Sc.“), ist nicht klar, wie weit die Firmen den Unterschied wahrnehmen. Aber im Großraum Stuttgart haben die Softwaretechniker einen sehr guten Ruf, und einige Firmen bemühen sich speziell um unsere Absolventen. 

Firmengründungen hat es gegeben, aber natürlich ist kaum zu sagen, ob es sie ohne den Studiengang Softwaretechnik nicht auch gegeben hätte. 

BD: In einem früheren Beitrag dieses Blogs habe ich die Meinung vertreten und zu begründen versucht, dass wir in Deutschland eigentlich keine Programmierer mehr bräuchten, sondern nur noch Systemarchitekten. Würden Sie dieser Meinung beipflichten? Wenn ja, welche Konsequenzen hätte dies für das Fachgebiet Software Engineering, sowohl was die Forschung als auch die Lehre betrifft? Muss nicht das Augenmerk viel stärker auf Innovationen, also auf der Erfindung von etwas Neuem, gelegt werden, statt auf Produktivität und Qualität im Nachbau bekannter Systeme?

JL: Der Begriff „Programmierer“ ist höchst unklar. Ich stelle mir darunter die Leute vor, die in den Sechzigern auf Coding Sheets Programme bauten. Dieser Typ des Programmierers ist heute ohne Bedeutung. Was wir auszubilden versuchen und was auch noch lange gebraucht wird, sind Software-Entwickler, die den gesamten Prozess überblicken und im Wesentlichen auch kennen und beherrschen. Dazu gehört natürlich auch die Codierung. Ich weiß mich mit vielen prominenten Kollegen einig, dass handwerklich sauberes, elegantes Codieren zu den wichtigen Fähigkeiten unserer Absolventen gehört. Gute Entwickler machen Karriere und werden nicht mehr codieren, aber sie brauchen diese Qualifikation weiterhin, um führen und bewerten zu können.  

Natürlich sollen sie offen sein für Innovationen. Aber es kennzeichnet wirkliche Innovationen, dass sie nicht vorauszusehen waren. Wir können unsere Studenten dafür also nur rüsten, indem wir sie mit soliden Grundlagen und einem sicheren Gespür für das Machbare und für hohe Qualität ausstatten. Denn nicht jede Sau, die durch das Dorf läuft, verdient es, bejubelt zu werden.

BD: In vielen Diskussionen über die von Hochschulen zu vermittelnde Qualifizierung wird gefordert, dass neben der fachlichen auch eine nicht-fachliche Ausbildung vermittelt werden sollte. Gemeint sind meistens soziale Kompetenzen (engl. soft skills), aber auch die Beachtung ethischer Grundsätze. Für wie wichtig halten Sie es, dass dies seinen Niederschlag in Lehrplänen findet? Wieweit können Hochschulen hier überhaupt Wirkung erzielen?

JL: Ich habe mich in den gut 25 Jahren meiner Lehrtätigkeit immer wieder mit diesen Fragen befasst, bin allerdings mit dem Erfolg nicht zufrieden. Ich habe regelmäßig eine Lehrveranstaltung angeboten, in der das Verfassen wissenschaftlicher Arbeiten und das Vortragen gelehrt und auch geübt wurden. Nach der Umstellung auf die Bachelor-Ausbildung ist daraus eine anrechenbare Studienleistung geworden. Ich beobachte aber, dass man den Charme eines syntaktisch sauberen deutschen Satzes oder einer klaren, verständlichen Struktur für einen Vortrag nur solchen Leuten vermitteln kann, die daran interessiert sind. Das Interesse an drei Leistungs­punkten ist nicht das gleiche!

BD: Die Umstellung vom Diplomstudiengang auf Bachelor und Master schafft immer noch Unruhe an den Hochschulen. Was bedeutet diese Umstellung für den Studiengang Softwaretechnik? Gehen Sie davon aus, dass die Industrie den Bachelor-Abschluss als ausreichende Berufsbefähigung ansehen wird? Unter welchen Umständen raten Sie einem Studierenden, den Master-Abschluss anzustreben?

JL: Für die Softwaretechnik waren mit der Umstellung einige herbe Verluste verbunden, vor allem das früher obligatorische Industriepraktikum und das zweite Studienprojekt, das im Anwendungsfach, also außerhalb der Informatik, durchgeführt wurde. Zudem ist der Rahmen von sechs Semestern so eng, dass wir Veranstaltun­gen, die aufeinander aufbauen, oft parallel anbieten müssen, etwa eine Vorlesung über objektorientierte Programmierung und ein Praktikum, in dem diese Kenntnisse erforderlich sind. Ich rechne damit, dass man bald den Fehler erkennt und das Bachelor-Studium auf acht Semester verlängert. Das wäre dann natürlich ein vollwertiges Studium. 

So, wie die Dinge heute liegen, rate ich jedem, der nicht mit allzu großen Schwierig­keiten in Prüfungen und anderen Leistungen zu kämpfen hat, einen Master-Titel zu erwerben. Die Industrie ist nach meinem Eindruck nicht so selektiv, wie sie behaup­tet; wenn die Wirtschaft brummt, werden die Bachelors gut genug sein, und sollte es je eine schwere Krise auf dem Arbeitsmarkt geben, werden auch die Träger eines Master-Titels Mühe haben, eine Stelle zu finden. (Sie werden trotzdem besser gestellt sein als Absolventen anderer Fachrichtungen.) Zweifellos wird der Master-Titel beim Aufstieg in der Firmenhierarchie einigen Auftrieb liefern.

BD: Herr Ludewig, vielen Dank für das Interview. Ich finde Ihre Aussagen sehr ausgewogen und ausgesprochen hilfreich, und werde sie daher meinen Enkelkindern zum Lesen empfehlen.

Keine Kommentare:

Kommentar veröffentlichen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.