Web Entwicklung mit Hilfe der Extreme Programming Methode

Agile Software Entwicklung wird von immer mehr Entwicklern eingesetzt. Zur agilen Software Entwicklung gibt es verschiedene Modelle. Wir betrachten heute Extreme Programming.  Dieses System wurde von Ron Jeffries, Kent Beck und Ward Cunningham im Jahr 1995 entwickelt und eingesetzt.Extreme Programming ist eine Verknüpfung von Kommunikation, Offenheit, strukturierten Vorgehen und Teamarbeit.

Vorgehensweise bei Extreme Programming

  1. Rahmenbedingungen des Entwicklungsprojekts definieren
  2. Analysen durchführen
    1. Nutzenanalyse
    2. Risikoanalyse
    3. Ressourcenanalyse
  3. Synthese bzw. Erstellen eines Prototyps
  4. Abstimmen bis alle Beteiligten den Prototyp akzeptiert haben
  5. Sprung zum nächsten Entwicklungsschritt oder Iteration
  6. Entwicklung und Integration des Produkts
  7. Testen des Produkts
  8. Lebensdauer /Nutzungsdauer bestimmen
  9. Freigabe
  10. weiter mit Punkt 1 bis das Endprodukt vollständig fertiggestellt ist.

Allerdings gibt es gerade im Bereich von Webentwicklung und Software eine ständige Weiterentwicklung. So ist  jedes Produkt nur ein temporäres Endprodukt.

Vorteile von Extreme Programming

  • Der Kunde ist in den Entwicklungsprozess mit einbezogen
  • Durch die Risikoabschätzung am Beginn erhöht sich die Effizienz und Schwierigkeiten können teilweise vermieden werden
  • Kooperatives Lernen und kollektive Wissenslandschaften entstehen
  • Die Zufriedenheit der Mitarbeiter erhöht sich
  • Betriebswirtschaftlich findet eine Absicherung durch das verteilte Wissen statt

Rollen im Exterme Programming

  • Kunde/Auftraggeber
    • Bestimmt den Rahmen des Auftrags
    • Entscheidet, was gemacht wird
  • Projektmanager
    • Führt das Team
    • Kümmert sich um Problemlösung
    • Prüft Soll- und Ist Zustände aller Art
    • Stößt mangelnde Kommunikation an
  • Entwickler
    • Entwickelt das Produkt
    • Zeigt auftauchende Probleme oder Schwierigkeiten auf
  • Benutzer
    • Nutzt das Produkt
    • Gibt seine Änderungs und Erweiterungswünsche an den Auftraggeber weiter

Fazit:

Exterme Programming ist eine interessante Entwicklungsmothode und hat viel Potential. Es setzt auf Offenheit bei der Kommunikation. Denn nur so werden Probleme schnell bekannt und können Lösungen gefunden werden. Mut und Respekt im Umgang bei der täglichen Arbeit sind Voraussetzung für ein erfolgreiches Extreme Programming Projekt.

Alternativ gibt es die Vorgehensmodelle wie das Wasserfall ModellV-Modell, Kanban und Scrum.

Das ARIS Konzept von August-Wilhelm Scheer

ARIS bedeutet Architektur integrierter Informationssysteme und wurde von August-Wilhelm Scheer, dem ehemaligen Direktor des Instituts für Wirtschaftsinformatik der Universität des Saarlandes, entwickelt. ARIS wird im Geschäftsprozess- und Informationsmanagement eingesetzt. Durch seine 5 Sichten Architektur werden komplexe Prozesse besser verständlich und lassen sich einfacher modellieren.

Die 5 Sichten von ARIS

ARIS-Modell

ARIS-Modell

Organisationssicht

Es werden alle Organisationseinheiten und Ihre Beziehungen dokumentiert. Meist geschieht dies mit Organigrammen.

Datensicht

Alle in dem Unternehmen relevanten Dokumente, Informationsobjekte, sowie deren Beziehungen zueinander, werden in der Datensicht dargestellt.  Dazu gehören zum Beispiel Daten von ERP und Entity-Relationship Diagramme.

Steuerungssicht

In dieser Sicht wird der zeitliche und logische Zusammenhang der betrieblichen Abläufe dargestellt. Dies beinhaltet unter anderem Flussdiagramme und Aktivitätsdiagramme in UML.

 Funktionssicht

Die Funktionssicht zeigt alle betriebswirtschaftlich relevanten Beziehungen in einem Funktionsbaum. In der hierarchischen Ansicht sind untergeordnete Vorgänge den übergeordneten Vorgängen zugeordnet.

Leistungssicht

Die Leistungssicht zeigt alle Produkte und Dienstleistungen in einem Produkt- und Dienstleistungsbaum.

Die 3 Ebenen der Beschreibung

Jede ARIS Schicht besitzt drei Beschreibungsebenen.

Fachkonzept

Das Fachkonzept beschreibt die Prozesse und Abläufe in einer verständlichen Sprache. Zudem werden weitere Datenmodelle genutzt. Dies wären zum Beispiel Organigramm, Funktionsbaum, ERM.

DV-Konzept

Im DV-Konzept wird spezifiziert, was wie in der EDV umgesetzt wird. Hier werden Schnittstellen definiert, und es werden Freiheitsgrade in der Datenverarbeitung herausgearbeitet. Genutzt werden dazu, UML, Relationen, Struktogramme und Topologien.

Implementierungsebene

Es erfolgt die Umsetzung der beschriebenen Prozesse durch Programmierung. Zur Erstellung werden Server, Datenbanken, Schnittstellen und Protokolle genutzt.

 

„ARIS-Modell“ von Marcel Light – Eigenes Werk. Lizenziert unter Creative Commons Zero

Software Entwicklung mit dem Wasserfall Modell

Bei der klassischen Software Entwicklung wird oft die Wasserfall Methode eingesetzt. Diese zeichnet sich durch eine strukturierte Vorgehensweise mit 5 oder 6 Phasen aus. Es eignet sich vor allem bei klar definierbaren Anforderungen und Prozessen.

Wasserfall Modell

 

Vorteile des Wasserfall Modells

  • Die Planung lässt sich gut durchzuführen
  • Die Phasen können eindeutig definiert werden
  • Die notwendigen Ressourcen lassen sich bei nicht veränderten Bedingungen gut abschätzen
  • Eine Kontrolle kann gut in den Prozess integriert werden

Nachteile  des Wasserfall Modells

  • Starres System – Änderungen lassen sich nicht flexibel umsetzen
  • In der Praxis gibt es meist keine klar abgegrenzten Phasen
  • Der Einsatz des Produkts erfolgt zu einem späten Zeitpunkt
  • Fehler werden unter Umständen spät erkannt und führen durch größeren Aufwand zu höheren Kosten

Alternativ gibt es die Vorgehensmodelle wie das Wasserfall ModellV-Modell, Kanban und Scrum.

Was bedeutet “Information” im Kontext der Informatik

Der Begriff Information ist in der römischen Antike zum Beispiel durch Cicero als Vorstellung der Götter “informatio dei” genutzt worden. Augustinus hat mit “informatio sensus” den Prozess der sinnlichen Wahrnehmung auch als Unterweisung und Belehrung abgeleitet. Im 15. und 16. Jahrhundert wurde “informare” für die Tätigkeit der Benachrichtigung genutzt.

Der Mathematiker Claude E. Shannon definierte 1948 in seinem Aufsatz ” A Mathematical Theory of Communication” den Begriff Information im Kontext der Nachrichtentechnik. Daraus entstanden Wissenschaftsbereiche wie Informationswissenschaft und Informatik. Aber auch die Disziplinen Soziologie, Medientheorie und Philosophie wurden dadurch beeinflusst.(1)

Betrachten wir die nun den Prozess der Entstehung von Information und Wissen

Daten sind in der Informatik Zeichen, die meist maschinell bearbeitbar sind. Stehen diese Zeichen im Kontext einer Bedeutung, dann werden aus strukturierten Daten Informationen. Aus Informationen wird Wissen, wenn Menschen durch Beobachtung oder Erfahrung auf Zusammenhänge schließen. Nach der Philosophie Kants wird dies mit durch den Verstand kontrollierte Vernunft erreicht.

Beispiel

Daten 08937432
Information (durch Kontext “Telefonnummer”) 08937432
Wissen (durch Erfahrung oder Beobachtung: München hat die Vorwahl “089”) 08937432

 

In diesem Zusammenhang gibt es eine asiatische Sichtweise, die ein berühmter asiatischer Philosoph schrieb (2)

Die Nichtwissenheit wissen
ist das Höchste.
Nicht wissen, was Wissen ist,
ist ein Leiden.
Nur wenn man unter diesem Leiden leidet,
wird man frei von Leiden.
Daß der Berufene nicht leidet,
kommt daher, daß er an diesem Leiden leidet;
darum leidet er nicht.

 

Quelle: (1) Alexander Roesler/Bernd Stiegler “Grundbegriffe der Medientheorie”; (2) Laotse

Die ABC Analyse in 4 Schritten durchführen

Die ABC-Analyse wird unter Anderem zur Planung, Kostenminimierung und Entscheidungsfindung eingesetzt wird. Die ABC Analyse wurde H. Ford Dickie erstmals beschrieben. Die Basis dafür bilden das Pareto Prinzip (die 80/20 Regel) und die Lorenz Kurve. Eingesetzt wird die ABC Analyse bei betriebswirtschaftlichen Analysen, Kosten, Lagerbeständen, Umsätzen, aber auch in der Personalwirtschaft und der Fertigung eingesetzt.

 

Daten der ABC-Analyse

Typ Umsatz in Mio. €
 Reifen  26,1
 Felgen  19,8
 Öl  35,6
 Zündkerzen  6,4
 Reinigungsmittel  16,9
 Lampen  2,9
 Autoradio  12,3
 KFZ-Ersatzteile  44,1
 Scheibenwischer  2,2
Gesamtsumme 166,3

 

Schritt 1 der ABC-Analyse

Ergänzen Sie die Tabelle um die Spalten Anteil in %Kumulierte % und Klasse.
Dann sortieren Sie absteigend den Umsatz in Mio. €.

Typ Umsatz in Mio. €
Anteil in % Kumulierte % Klasse
KFZ-Ersatzteile 44,1
Öl 35,6
Reifen 26,1
Felgen 19,8
Reinigungsmittel 16,9
Autoradio 12,3
Zündkerzen 6,4
Lampen 2,9
Scheibenwischer 2,2
Gesamtsumme 166,3

 

Schritt 2 der ABC Analyse

Als nächstes wird in der mittleren Spalte der prozentuale Anteil ausgerechnet.

Die Formel lautet: Anteil in % = Umsatz des Produkts/Gesamtsumme * 100

Typ Umsatz in Mio. €
Anteil in % Kumulierte % Klasse
KFZ-Ersatzteile 44,1 26,52
Öl 35,6 21,41
Reifen 26,1 15,69
Felgen 19,8 11,91
Reinigungsmittel 16,9 10,16
Autoradio 12,3 7,40
Zündkerzen 6,4 3,85
Lampen 2,9 1,74
Scheibenwischer 2,2 1,32
Gesamtsumme 166,3

 

 Schritt 3 der ABC Analyse

Im weiteren Schritt werden die Anteile in % kumuliert (summiert) und in die Spalte Kumulierte % eingetragen.

Beispiel: Öl (kumulierte %) = 26,52 + 21,41 = 47,93; Reifen (kumulierte %) = 47,93 + 15,69 = 63,62

Typ Umsatz in Mio. €
Anteil in % Kumulierte % Klasse
KFZ-Ersatzteile 44,1 26,52 26,52
Öl 35,6 21,41 47,93
Reifen 26,1 15,69 63,62
Felgen 19,8 11,91 75,53
Reinigungsmittel 16,9 10,16 85,69
Autoradio 12,3 7,40 93,08
Zündkerzen 6,4 3,85 96,93
Lampen 2,9 1,74 98,68
Scheibenwischer 2,2 1,32 100
Gesamtsumme 166,3

 

Schritt 4 der ABC Analyse

Im letzten Schritt werden die untersuchten Daten in drei Klassen eingeteilt. Die A Klasse bei meist 75% – 80%. Die B Klasse bei 15% – 20% und die C Klasse bei 5%. Die Summe der drei Klassen beträgt immer 100%.

Typ Umsatz in Mio. €
Anteil in % Kumulierte % Klasse
KFZ-Ersatzteile 44,1 26,52 26,52  A
Öl 35,6 21,41 47,93  A
Reifen 26,1 15,69 63,62  A
Felgen 19,8 11,91 75,53  B
Reinigungsmittel 16,9 10,16 85,69  B
Autoradio 12,3 7,40 93,08  B
Zündkerzen 6,4 3,85 96,93  C
Lampen 2,9 1,74 98,68  C
Scheibenwischer 2,2 1,32 100  C
Gesamtsumme 166,3

 

Fazit:

Mit Hilfe der ABC Analyse lassen sich

  • Schwerpunkte ermitteln
  • Prioritäten festlegen
  • Unwesentliches von Wesentlichen unterscheiden

Diese häufig eingesetzte Methode sollte in keinem “Werkzeugkasten” fehlen.

Scrum – Agile Web- und Software Entwicklung

Scrum wurde in einem Projekt im Zuge der Zusammenarbeit von Ikurjio Nonaka und Jeff Sutherland entwickelt. Mit Scrum versucht man Anpassung, Transparenz und Kontrolle in der Software Entwicklung weitestgehend zu vereinfachen. Dadurch wird eine kostengünstige, schnelle  und hochwertige Entwicklung von Software Produkten und -Dienstleistungen ermöglicht. Scrum basiert auf Erfahrung und wird iterativ wie ein Schneckenhaus Schicht für Schicht erweitert.

Scrum funktioniert ähnlich wie der Aufbau eines Schneckenhauses

Scrum benutzt Rollen mit unterschiedlichen Aufgaben und Verantwortungen.

Rollen bei Scrum

Das Entwickler Team liefert die vom Product Owner gewünschten Produktteile oder Dienstleistungen in der gewünschten Reihenfolge. Zudem sind die Entwickler für die Qualität des Produkts verantwortlich. Dazu werden Qualitätsstandards vereinbart.

Der Scrum Master kümmert sich als Führungskraft um das Entwickler Team, gehört dem Team aber nicht an. Er kümmert sich um die Organisation und hilft Störungen, Konflikte und Hindernisse zu beseitigen.

In der Rolle als Product Owner ist man für die Konzeption, Festlegung der Produkteigenschaften und die Priorisierung verantwortlich. Er steuert damit den wirtschaftlichen Nutzen für das Unternehmen, ist aber kein Vertreter des Kunden.

Der Kunde oder Auftraggeber wird als Customer dem Product Owner aufzeigen, was das Produkt für Eigenschaften haben soll. Zudem wird der Customer ab einer frühen Phase periodisch das zu entwickelnde Produkt prüfen und Feedback an den Product Owner geben.

Das Management hat bei der Bereitstellung der Ressourcen und dem Ausräumen von Hemmnissen zu unterstützen. Dadurch werden die Rahmenbedingungen stabilisiert.

Die User sind die zukünftigen Nutzer des Produkts oder der Dienstleistung. Daher sind Sie in der Lage die Funktionalität des Produkts zu beurteilen. Zudem können Sie das Produkt ab einer frühen Phase regelmäßig, zum Beispiel nach einem Entwicklungszyklus, ausprobieren und Ihre Ergebnisse und Veränderungsvorschläge mitteilen. diese kann der Product Owner aufgreifen und zur weiteren Entwicklung einfließen lassen.

Dazu wurde im Jahre 2001 das Agile Manifest für Scrum entwickelt, das ich hier angepasst habe.

Agiles Manifest

  • Eine beständige Zusammenarbeit mit dem Kunden als Partner steht über den Verträgen
  • Kommunikation, Mut und die Offenheit für Änderungen gilt mehr als das genaue Befolgen eines festgelegten Plans
  • Menschen und Zusammenarbeit gelten mehr als Werkzeuge und Prozesse, ersetzen diese aber nicht
  • Funktionierende Programme sind höher einzustufen als ausführliche Dokumentation.

Fazit:

Lean Production in japanischen Unternehmen verfolgt ähnliche Ansätze wie Scrum und nutzt für eine bessere Wertschöpfung unter anderem starkes Teamworking und erfolgreiches Wissensmanagement. Hier sehe ich auch den wichtigen Unterschied. Es wird auch bei Scrum Dokumentation gebraucht, wenn diese nicht “Just in Time” zur Verfügung steht, dann verliert der Scrum Prozess an Effektivität!

Alternativ gibt es die Vorgehensmodelle wie das Wasserfall ModellV-Modell, Kanban und Scrum.

Alternativen, um Sicherheitslücken wie Meltdown … zu vermeiden

Deutschland hat Alternativen nötig. Denn Merkel Aussage „Das ist Alternativlos“ treibt Deutschland und Europa in die Hände von transatlantischen Gruppen, die Deutschland und Europa als Konkurrenten sehen. Trotz allem sind Merkel und weitere Abgeordnete Mitglieder mit transatlantischen Verbindungen wie  z. B. bei der Atlantikbrücke und haben die Interessen der deutschen Bevölkerung verkauft.

Die USA entwickeln mit Intel und AMD Hard und Software, die nach US-Geheimgesetzen von den westlichen Diensten ausgespäht werden können.

 

Daher hat China 2004 mit der Entwicklung eigener Prozessoren begonnen um die Interessen des chinesischen Volkes zu sichern. Die enthalten keine Backdoor für westliche Geheimdienste.  Auf deren Begehren wird bereits in einem Artikel aus den Jahr 2013 hingewiesen:

NSA May Have Backdoors Built Into Intel And AMD Processors

Der weiterführende Artikel des „Australian Financial Review“ wurde vor einiger Zeit gelöscht und bei Nachfrage wird dies von US Behörden wie seit Jahrzehnten als „Verschwörungstheorie“ abgetan.

Alternativen von Zhaoxin

Einer der chinesischen Hersteller heißt Zhaoxin. Diese bringen eine neue CPU Generation KX-5000 (Wudaokou) auf den Markt . Nach einer Meldung von Weiwenku hat ein KX-5000 ca. 2,1 Milliarden Transistoren. Das Topmodell KX-U5680 mit 2 GHz, erreicht im Cinebench R11.5 4,01 Punkte. Das ist etwas langsamer als ein Intel Core i3-6100 mit zwei Kernen plus Hyperthreading. Die neue Prozessorgeneration ist nicht für Meltdown anfällig, aber für eine nicht genannte Variante von Spectre.

Zhaoxin gehört überwiegend dem chinesischen Staat und wird nach wikichip.org folgendermaßen  beschrieben:

… In case you’ve never heard about Zhaoxin, they are a Chinese microprocessor designer that has been working on developing a domestic x86 CPU microarchitecture. Being partially owned by VIA Technologies most likely means they are covered by VIA’s x86 cross-license agreement, although VIA refused to confirm this when we asked. The 2010 FTC settlement required Intel to modify agreements with AMD, Nvidia, and Via to allow them to undergo mergers and joint ventures with other companies without the threat of being sued for patent infringement. Zhaoxin is majority owned (80.1%) by the Shanghai Municipal Government and the push for domestic x86 chips comes as part of their national security initiative which calls for the reduction in reliance on foreign products and greater control over their own intellectual property (i.e., the hardware in this case). …

Kommentar zu Spectre und Meltdown: Zeigen wir Monopolisten den Mittelfinger

Hardware Lösung für Spectre und Meltdown

Intel gab bekannt, dass im 2. Halbjahr 2018 Hardware Lösungen in Form von neuen CPUs auf den Markt kommen. Durch einen weiteren Stack und Änderungen im Microarchitektur werden die Prozessoren von Intel besser gehärtet sein als die auf dem Markt befindlichen.

Mebibyte oder Megabyte – Was ist der Unterschied?

Die Angaben der Speichergröße ist manchmal verwirrend. Denn früher war ein ein Kilobyte mit 1024Byte spezifiziert. Das ist nach der heute gültigen Benennung ein Kibibyte.

Binärpräfixe nach IEC

Der Binärpräfixe sind Vielfache von Zweierpotenzen mit einer Schrittweite von 10 beim Exponenten. Sie werden für die Größenangaben von Datenmengen in der Informatik verwendet. Dazu gehören die Bezeichnungen Kibibyte, Mebibyte, Gibibyte. Die Umstellung auf Binärpräfixe wurde 1996 vom IEC vorgeschlagen und die die Hersteller folgten der Empfehlung in den nachfolgenden 10 Jahren.

Dezimalpräfixe nach SI

Parallel dazu gibt es  die Dezimalpräfixe nach den Normen der SI. Hier ist die Basis 10 und der Exponent wird mit der Schrittweite 3 verändert.

Potenzwert = BasisExponent

Dezimalpräfixe gemäß SI Unter-schied
gerundet
Binärpräfixe gemäß IEC
Name Sym Anzahl Bytes Name Sym Anzahl Bytes
Kilobyte kB 1 000 = 103 2,4 % Kibibyte KiB 1 024 = 210 
Megabyte MB 1 000 000 = 106 4,9 % Mebibyte MiB 1 048 576 = 220 
Gigabyte GB 1 000 000 000 109 7,4 % Gibibyte GiB 1 073 741 824= 230 

Durch die unterschiedlichen Zahlensysteme ergeben sich verschiedene Speichergrößen. Je größer das Speichervolumen eines Datenträgers, um so größer ist der Unterschied der wirklichen Datenmenge. Dieser Unterschied der Datenmenge wird von den Herstellern beim Verkauf von Datenträgern genutzt. So finden Sie inzwischen auf den verkauften Datenträger meist die Angabe nach dem Dezimalpräfix. Die Anbieter können so Kosten sparen.