Was bedeutet Full-Stack Web Engineering?

Die anfängliche Ad-hoc Entwicklung Web-basierter Systemen führte oft zur Überschreitung von Kostenvorgaben und Lieferterminen, starker Technologieabhängigkeit und Qualitätsmängeln. Die vermeintlich neue Web Anwendung stellte sich im Nachhinein als unwartbare Wegwerfsoftware dar.

Es gibt viele Gründe für gescheiterte IT Projekte. Fehler können sich in allen drei Projekt-Phasen (Planung, Durchführung und Abschluss) einschleichen und werden durch alamierende Zahlen gescheiterter Web-Systeme bekräftigt [1]. Aus den damit verbundenen Risiken können schwerwiegende Folgen entstehen: Umsatzeinbrüchen, vollständige Lahmlegung des Geschäftsbetriebs oder sogar die Geschäftsaufgabe [1, 2].

Many organisations are heading toward a Web crisis in which they are unable to keep the system updated and/or grow their system at the rate that is needed. This crisis involves the proliferation of quickly ‘hacked together’ Web systems that are kept running via continual stream of patches or upgrades developed without systematic approaches – S. Dart [3]

Web EngineeringDas Web wurde ursprünglich als ein reines Dokument-basiertes Informationsmedium konzipiert. In den letzten zwei Jahrzehnten hat es sich rasant weiterentwickelt. Web-basierte Systeme bieten oft vielfältige Funktionen an und haben heterogene Nutzergruppen, die sich von Konsumenten und Empfänger der Daten zu Produzenten und Sendern verändern [4]. Das Schlagwort Web 2.0 verkörpert das Web als Plattform (Wikipedia, YouTube, Flickr) und das Internet der Dinge (Web 3.0, Smart Home) befindet sich im Aufbruch. Web Systeme werden dadurch vor großen Herausforderungen gestellt: steigende Anforderungen hinsichtlich Qualität, Verfügbarkeit und Leistungsfähigkeit – von kleinen Community Projekten bis hin zu Enterprise-Portalen. Web-Anwendungen sind heutzutage vollwertige, komplexe Softwaresysteme. Das Wissen zur ihrer strukturierten Entwicklung konnten jedoch nicht mit der wachsenden Komplexität Schritt halten. Um die Softwarekriese nicht um ein Vielfaches zu übertreffen, wurde der Begriff Web Engineering geprägt:

Web engineering is the establishment and use of sound scientific, engineering and management principles and disciplined and systematic approaches to the successful development, deployment and maintenance of high quality Web-based systems and applications – S. Murgesan [5]

Das Ziel ist nicht nur korrekte, sichere, schnelle und kostengünstige System zu bauen, sondern auch die Risiken zu minimieren, die Messbarkeit der Qualität sicherzustellen und das Releasemanagement zu stärken. Dafür werden Best Practices aus dem Bereich Software Engineering auf die Entwicklung von Web Anwendungen übertragen. Aufbauend auf ihrem Lebenszyklus werden Konzepte, Techniken, Methoden und Werkzeuge eingeführt, die eine ingenieurmäßige Basis zur systematischen Entwicklung von Web Anwendungen darstellen [6]. An diesem Punkt stellt sich die Frage, warum benötigen wir eine separate Web Engineering Disziplin, wenn Parallelen zum Software Engineering erkennbar sind?

Verschiedene Anwendungs-Domänen (Echtzeit-Systeme, Informations-Systeme) bringen neue Herausforderungen und Anforderungen mit sich. Web Anwendungen unterscheiden sich im Vergleich zur klassischen Software insbesondere durch den Einsatz des Webs. Ein komplexes Zusammenspiel aus verschiedenen Technologien (Netzwerk-Architektur, Client/Server-Paradigma, HTTP bzw. TCP/IP-Protokolle, DNS, PHP, Java, C#, CSS, JavaScript, XML, SQL u.a.). Ihre Entwicklung ist kein einmaliges Ereignis und erfordert eine kontinuierliche Weiterentwicklung im Bezug auf die Anforderungen und Funktionen (instabile Anforderungen). Millionen Menschen mit verschiedenen Ansprüchen, Fähigkeiten und Einschränkungen nutzen Web Anwendungen und stellen besondere Anforderungen an die Zugänglichkeit (Accessibility) und die Bedienbarkeit der Benutzeroberfläche (Usability). Diese zentralen Charakteristiken unterscheiden Web Anwendungen von klassischer Software und bekräftigen das Web Engineering als eine eigene Disziplin [5].

Web Systeme basieren auf einer mehrschichtigen Architektur, in der jede Schicht zur Erfüllung ihrer speziellen Aufgabe, die jeweils tiefere Schicht im Stapel nutzt. Entwickler mit umfassenden Kenntnissen in allen Schichten im Bereich des Web Engineering werden als Full-Stack Web Engineers bezeichnet. Die sechs Schichten eines Full-Stacks lassen sich wie folgt einteilen:

  • User Experience & Accessibility
  • Präsentationsschicht
  • Steuerungsschicht
  • Geschäftslogikschicht
  • Datenzugriffsschicht
  • Hardware- und Netzwerkschicht

Das Web Engineering ist eine herausfordernde und lebhafte Disziplin. Web Systeme erreichen oft eine hohe Komplexität und werden von Experten-Teams umgesetzt. Die Spezialisierung der Teammitglieder nimmt deshalb zu und es wird immer schwieriger sich umfangreiches Wissen im gesamten Stack anzueignen.

Quellen

[1] M. Bloch, S. Blumberg, and J. Laartz, “Delivering large-scale IT projects on time, on budget, and on value,” McKinsey Business Technology Office, 2012.
[Bibtex]
@techreport{Bloch:2012,
Author = {Bloch, Michael and Blumberg, Sven and Laartz, J{\"u}rgen},
Date-Added = {2014-02-19 19:02:01 +0000},
Date-Modified = {2014-02-19 19:02:14 +0000},
File = {:http\://www.mckinseyquarterly.com/Delivering_large-scale_IT_projects_on_time_on_budget_and_on_value_3026:URL},
Institution = {McKinsey Business Technology Office},
Owner = {Frank},
Timestamp = {2013.04.24},
Title = {Delivering large-scale IT projects on time, on budget, and on value},
Year = {2012}}
[2] B. Flyvbjerg and A. Budzier, “Why your IT project may be riskier than you think,” Harvard Business Review, vol. 89, iss. 9, pp. 601-603, 2011.
[Bibtex]
@article{Flyvbjerg:2011,
Abstract = {Out-of-control information technology (IT) projects have ended the careers of top managers, such as EADS CEO No{\"e}l Forgeard and Levi Strauss? CIO David Bergen. Moreover, IT projects have brought down whole companies, like Kmart in the US and Auto Windscreen in the UK. Software and other IT is now such an integral part of most business processes and products that CEOs must know their IT risks, which are typically substantial ? and overlooked. The analysis of a sample of 1,471 IT projects showed that the average cost overrun was 27\% {--} but that figure masks a far more alarming ?fat tail? risk. Fully one in six of the projects in the sample was a Black Swan, with a cost overrun of 200\%, on average, and a schedule overrun of almost 70\%. This highlights the true pitfall of IT change initiatives: It?s not that they?re particularly prone to high cost overruns on average ? it is that there are a disproportionate number of Black Swans. By focusing on averages instead of the more damaging outliers, most managers and consultants have been missing the real risk in doing IT. In conclusion, the article outlines ideas as to what can be done to avoid Black Swans.},
Author = {Bent Flyvbjerg and Alexander Budzier},
Date-Added = {2014-02-19 19:05:06 +0000},
Date-Modified = {2014-02-19 19:05:15 +0000},
Journal = {Harvard Business Review},
Keywords = {Cost control, IT management, project management, risk management},
Month = {September},
Note = {Selected by HBR as featured lead article for the "Ideas Watch" section, presenting the most important new ideas in business and management.},
Number = {9},
Pages = {601--603},
Title = {Why your IT project may be riskier than you think},
Url = {http://sbs.eprints.org/898/},
Volume = {89},
Year = {2011},
Bdsk-Url-1 = {http://sbs.eprints.org/898/}}
[3] S. Dart, Configuration management: the missing link in Web engineering, Artech House, 2000.
[Bibtex]
@book{Dart:2000,
Author = {Dart, S.},
Date-Added = {2014-03-04 18:27:05 +0000},
Date-Modified = {2014-03-04 18:27:11 +0000},
Isbn = {9781580530989},
Lccn = {00059389},
Number = {Bd. 1},
Publisher = {Artech House},
Series = {Computing Library},
Title = {Configuration management: the missing link in Web engineering},
Url = {http://books.google.de/books?id=YN1FAQAAIAAJ},
Year = {2000},
Bdsk-Url-1 = {http://books.google.de/books?id=YN1FAQAAIAAJ}}
[4] G. Hamann, “Web 2.0. Die nächste Generation Internet.” Baden-Baden: Nomos Verlagsgesellschaft, 2008, pp. 213-227.
[Bibtex]
@inbook{Hamann:2008,
Address = {Baden-Baden},
Author = {Hamann, G{\"o}tz},
Chapter = {Die Medien und das Medium},
Date-Added = {2014-02-19 18:53:56 +0000},
Date-Modified = {2014-02-19 18:58:30 +0000},
Journal = {Web 2.0. Die n{\"a}chste Generation Internet},
Pages = {213-227},
Publisher = {Nomos Verlagsgesellschaft},
Title = {Web 2.0. Die n{\"a}chste Generation Internet},
Year = {2008}}
[5] S. Murugesan and A. Ginige, “Web Engineering: Introduction and Perspectives,” in Web Engineering: Principles and Techniques, 2005, pp. 1-30.
[Bibtex]
@inproceedings{Murugesan:2005,
Author = {San Murugesan and Athula Ginige},
Booktitle = {Web Engineering: Principles and Techniques},
Date-Added = {2014-02-17 21:32:13 +0000},
Date-Modified = {2014-02-17 21:39:39 +0000},
Editor = {Woojong Suh},
Month = {February},
Pages = {1-30},
Publisher = {Idea Group},
Title = {Web Engineering: Introduction and Perspectives},
Year = {2005},
Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QdS4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL1VzZXJzL21heGltYi9EZXNrdG9wL0Jsb2cgQXJ0aWtlbC9XYXMgYmVkZXV0ZXQgRnVsbC1TdGFjayBXZWIgRW5naW5lZXJpbmc/L011cnVnZXNhbi0yMDA1LnBkZtIXCxgZV05TLmRhdGFPEQIOAAAAAAIOAAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAADHA6hASCsAAANl1X4STXVydWdlc2FuLTIwMDUucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2bJRM8mmE0AAAAAAAAAAAAIAAYAAAkgAAAAAAAAAAAAAAAAAAAAH1dhcyBiZWRldXRldCBGdWxsLVN0YWNrIzM2NUQ1N0UAABAACAAAxwOMIAAAABEACAAAzyaKPQAAAAEAFANl1X4DZnIIAAWrkAAFq4UAAJGfAAIAZk1hY2ludG9zaCBIRDpVc2VyczoAbWF4aW1iOgBEZXNrdG9wOgBCbG9nIEFydGlrZWw6AFdhcyBiZWRldXRldCBGdWxsLVN0YWNrIzM2NUQ1N0U6AE11cnVnZXNhbi0yMDA1LnBkZgAOACYAEgBNAHUAcgB1AGcAZQBzAGEAbgAtADIAMAAwADUALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASAF1Vc2Vycy9tYXhpbWIvRGVza3RvcC9CbG9nIEFydGlrZWwvV2FzIGJlZGV1dGV0IEZ1bGwtU3RhY2sgV2ViIEVuZ2luZWVyaW5nPy9NdXJ1Z2VzYW4tMjAwNS5wZGYAABMAAS8AABUAAgAN//8AAIAG0hscHR5aJGNsYXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox0fIFZOU0RhdGFYTlNPYmplY3TSGxwiI1xOU0RpY3Rpb25hcnmiIiBfEA9OU0tleWVkQXJjaGl2ZXLRJidUcm9vdIABAAgAEQAaACMALQAyADcAQABGAE0AVQBgAGcAagBsAG4AcQBzAHUAdwCEAI4BBgELARMDJQMnAywDNwNAA04DUgNZA2IDZwN0A3cDiQOMA5EAAAAAAAACAQAAAAAAAAAoAAAAAAAAAAAAAAAAAAADkw==}}
[6] G. Kappel, B. Pröll, and S. Reich, Web Engineering: Systematische Entwicklung von Web-Anwendungen, W. Retschitzegger, Ed., dpunkt, 2003.
[Bibtex]
@book{Kappel:2003,
Added-At = {2011-03-29T09:17:22.000+0200},
Author = {G. Kappel and B. Pr{\"o}ll and S. Reich},
Biburl = {http://www.bibsonomy.org/bibtex/2a1fde6ddefebdef9843fbcb1b79faa06/livany},
Booktitle = {Web Engineering: Systematische Entwicklung von Web-Anwendungen},
Date-Added = {2014-03-04 18:25:18 +0000},
Date-Modified = {2014-03-04 21:02:51 +0000},
Description = {dblp},
Editor = {W. Retschitzegger},
Interhash = {613fc03f3e8c9eaa12ffe4b60af5d931},
Intrahash = {a1fde6ddefebdef9843fbcb1b79faa06},
Isbn = {3-89864-234-8},
Keywords = {engineering web},
Publisher = {dpunkt},
Timestamp = {2011-03-29T09:17:22.000+0200},
Title = {Web Engineering: Systematische Entwicklung von Web-Anwendungen},
Url = {http://dblp.uni-trier.de/db/books/collections/Kappel2003.html},
Year = 2003,
Bdsk-Url-1 = {http://dblp.uni-trier.de/db/books/collections/Kappel2003.html}}
Bildquellen

Abbildung 1: tec_estromberg | Lizenz: Creative Commons Attribution-ShareAlike 2.0 Generic