Zu Beginn des Projekts entschieden wir uns gegen die Verwendung eines out-of-the-box Alleskönner-CMS und für die Entwicklung eines eigenen, auf unsere Bedürfnisse zugeschnittenes CMS. Zum einen weil Flexibilität im Funktionsumfang und ein leichtgewichtiges Tooling für uns im Fokus standen zum anderen, weil bei uns die Weiterbildung der Mitarbeiter in den unterschiedlichen Technologien und in der agilen Softwareentwicklung ebenso eine Triebfeder für solche internen Projekte sind.
Als mir mitgeteilt wurde, dass wir in diesem Projekt SCRUM als Vorgehensmodell einsetzen, war ich zunächst skeptisch. Schließlich waren die ersten Anforderungen überschaubar und das Entwicklungsteam bestand nur aus einer Person, nämlich mir selbst. Das kam mir für ein solch kleines Projekt zunächst sehr aufgebläht vor. Im Nachhinein betrachtet, war es für ein Lernprojekt dieser Art genau das Richtige für mich. Zwei Kollegen trieben in den Rollen Scrum Master und Product Owner das Projekt voran. Das Product Backlog füllte sich, die Definition of Done wurde festgehalten, der Sprint wurde geplant (der Scrum Master wurde hier für Schätzungen auch schon mal zum Teil des Entwicklungsteams), User Stories mit Hilfe von Akzeptanzkriterien wurden abgenommen und Sprint Reviews abgehalten. Dies alles mit richten Mischung aus Lockerheit und der notwendigen Professionalität.
Was die agile Projektdurchführung angeht, musste ich feststellen, dass ich, trotz meiner anfänglichen Zweifel, auch im kleinen Stil ein gutes Verständnis für das agile Vorgehensmodel erlangen konnte. Zwar war mir die Theorie im Vorhinein bekannt, doch in der Praxis werden viele Dinge viel klarer und die Sinnhaftigkeit bewusster.
Technologisch gesehen, arbeitete ich mit alten Bekannten, wie ASP.NET MVC, Entity Framework, jQuery und Bootstrap, aber auch mit mir neuen Technologien und Services, wie Azure SQL, Azure BLOB Storage, Azure AD-Authentifizierung und Azure App Services. Zusätzlich konnte ich mich auch mit dem Thema Continuous Deployment in den Visual Studio Team Services (VSTS) auseinandersetzen. So etablierte ich für die automatisierten Deployments in unsere Test- und Live-Umgebungen einen automatisierten Build-, Release- und Genehmigungsprozess.
Insgesamt hat das Projekt sehr viel Spaß gemacht und den gewünschten Lerneffekt gebracht. Nebenbei ist auch noch ein kleines CMS entstanden, mit dem wir nun neue Seiten anlegen und Inhalte pflegen können. Und so sieht das dann aus: