Unser Unternehmen hat sich vor etwa vier Jahren der Entwicklung von Magento-Modulen zugewandt. Dabei sind bei der Entwicklung mit Magento drei neue Probleme aufgetaucht, die wir bei der Entwicklung von Thick-Client-Applikationen mit C# und dem Prozessmodell Extreme Programming im Griff hatten:

  1. Die bewährten Entwurfs-Methoden (z.B. UML) versagen oder sind wenig effektiv
  2. Automatisierte Tests sind umständlich und wenig effektiv
  3. Die strukturierte Weitergabe von Wissen im Team ist kompliziert

Nikolai Krambrock at Meet MagentoVortrag zu Carbon Development von Dr. Nikolai Krambrock – Meet Magento 2013

Das war Grund genug, ein internes Forschungsprojekt aufzusetzen. Für die Forschungsarbeit hat Fabian Schmengler themenzentrierte Interviews mit  renommierten Magento-Agenturen geführt. Typische Probleme und Lösungsansätze wurden dabei strukturiert gegenübergestellt. Ungelöste Probleme wurden mit Software-Engineering-Literatur und schließlich mit eigenen Arbeiten adressiert. Zentrale Ergebnisse sind:

  1. Probleme und Maßnahmen bei der Entwicklung vom Magento-Modulen sowie deren Zuordnung
  2. Werkzeuge für die Entwicklung von Magento-Modulen, inkl. selbst entwickelter Werkzeuge
  3. Best-Practices bei der Entwicklung von Magento-Modulen (die Web-Darstellung befindet sich noch im Aufbau)
  4. Vortrag auf der Meet Magento mit Vortragsunterlagen

Entwicklungsprozess in Magento

Beteiligt waren Fabian Schmengler, im Rahmen seiner Diplomarbeit am Lehr- und Forschungsgebiet für Software-Konstruktion an der RWTH-Aachen, und Dr. Nikolai Krambrock als Mentor und Diplomarbeitsbetreuer. Vorgegangen sind wir in vier Schritten:

  1. Mit Interviews wurden Probleme in der Entwicklung von Magento-Modulen und bereits bestehende Lösungen ermittelt
    1. Experten waren Andreas von Studnitz von integer_net, Gerrit Pechmann von aijko und Sonia Wrodarczyk von code4business
    2. Nach einer intensiven Analyse sind aus den themenzentrierten Interviews Tabellen von Problemen, deren Ursachen und gegensteuernde Maßnahmen entstanden
    3. Viele der ungelösten Probleme lagen im Design und im Test, wenige in der Spezifikation und der Entwicklung
  2. Dann wurde Literatur zum Software-Engineering durchgegangen
    1. Es wurden bestehende (aber bis jetzt von den Experten nicht eingesetzte) Methoden der Softwareentwicklung daraufhin untersucht
    2. Erfolgsversprechende Methoden wurden in einer Anwendbarkeitsmatrix eingefügt
  3. Zu den verbleibenden Problemen wurden eigene Lösungen entwickelt
    1. Beispiele hierfür sind ein Magento-UML-Profil oder der Einsatz von abstrakten automatisierten Tests auf der Basis von bestehenden Frameworks
  4. Zum Schluss wurden einige der Methoden angewendet