Die moderne Softwareentwicklung mit Microservice Architecture
Damit Webapplikationen (und selbstverständlich auch herkömmliche) eine gute Performance haben
hat man früher immer den 3-tier-architecture als Basis für jede große Webapplikation implementiert.
Die 3-tier-architecture besteht im Groben aus 3 verschiedenen Layer:
- WEB = User Frontend (UI)
- BIZ = Business Layer
- DAC = Data Access
da man so die Performance Auslastung der Hardware besser verteilen kann.
Eher nachteilig wirkt sich das auf die Skalierbarkeit der Software aus,
da jeder Layer angepasst werden muss, wenn man neue Prozesse implementiert.
Daher geht der Trend in der Softwarentwicklung:
- > weg von der 3-tier-architeture
- > hin zu Microservices-Architecture Paas (Platform as a Service)
Agiles Web-Application-Development im Projektmanagement
sinnvollerweise kombiniert man agile Softwareentwicklung
auch mit der SCRUM Projektmanagement Methode
Es geht ja in erster Line darum, agil zu sein
und da kommt man als IT-Projektleiter mit der klassischen Projektmanagement Methode einfach nicht weiter.
Die Entwicklung neuer Software Module ist heutzutage so komplex geworden,
dass Sie sich einfach nicht in der IT-Spezifikation
und Lasten- und Pflichtenheft eindeutig deffinieren oder spezifizieren lassen.
oder während der Entwicklung sich Techniken und Anforderungen ändern.
Das liegt auch daran, dass dem Kunden meist das technische "know-how" fehlt
und der Programmierer keine Ahnung vom Geschäftsprozess hat...
Zusammenarbeit (Collaboration)
ist ein Grunprizip der agilen-Softwareentwicklung und der SCRUM-Projektmanagement Methode!
Um die komplexen Anforderungen und Business Prozesse mit der Software abzubilden
würde man mehr Zeit an der Spezifikation und der Software Prozessmodellierung verbringen
als mit der Entwicklung der Applikation selbst.
Sicherlich muss bei jedem IT-Projekt zu Beginn ein umfangreiches Konzept und eine Spezifikation ausgearbeitet werden.
Auch um eine grobe Kosten- und Zeitschätzung zu ermöglichen und ein Projektziel fest zu legen.
Aber in der agile Sofwareentwicklung und der SCRUM Projektmanagement Methode
ist man bereit die einzelnen Entwicklungsphasen den Kundenwünschen anzupassen (flexibel sein!)
und vermeidet so auch unnötige Programmierarbeiten,
wo man am Ende, beim User-Acceptance-Test vom Kunden gesagt bekommt:
"...nein,...das habe ich mir aber ganz anders vorgestellt..."