Der Software Paketierer

noch einmal genauer erklärt.

Generelle Qualitätsanforderung aus Sicht der Paketierung

Software-Paketierung erfordert eine einzigartige Mischung aus Fähigkeiten, die die typischen organisatorischen Grenzen der meisten IT-Abteilungen überschreitet.

Einleitung

Die Softwarepaketierung wird oft unterschätzt oder als "Nebenbei-Tätigkeit" betrachtet. Aufgrund der Fehleinschätzung ...

  • im Management
  • zwischen IT-Mitarbeitern
  • von Anbietern über Kunden
  • von Entscheidungsträgern
... über die Bereitstellung von Anwendungen im Unternehmen treten häufig ähnlich gelagerte Schwierigkeiten auf:

  • Komplexität der Paketierung wird unterschätzt
  • Paketierung wird an verschiedenen Stellen im Unternehmen durchgeführt.
  • Wissen muss demzufolge an verschiedenen Stellen redundant aufgebaut und gepflegt werden
  • Hohe Fehlerquote auf Grund von fehlendem Know How
  • Der Gesamtprozess leidet auf Grund einer mangelhaften oder nur ausreichenden Qualität
  • Der Service "Paketierung / Anwendungsbereitstellung" entwickelt sich zum Reizwort in den Unternehmungen
Die Wahrheit ist, dass kaum einer mehr weiss, wie man einen Software Paketierer korrekt einordnet. Hardware und Netzwerk-Leute sehen sie als App-Entwickler. App-Entwickler sehen sie als Infrastruktur-Unterstützung. Infrastructure Support sieht sie als eine seltsame Untergruppe. InfoSec nimmt Software Paketierer nur wahr, wenn diese nach Firewall-Ausnahmen und Malware-Scan-Ausschlüssen fragen. Für viele ist Software Paketierung nur ein unbestimmter Begriff und keine Berufsbezeichnung. Ein paar Beispiele:

  • SCCM-Paketierer
  • Infrastructure Specialist Client Service
  • ICT Lösungsarchitekt Applikationsplattform
  • System Spezialist (Professional MS Windows Client)
  • System Engineer (Systemintegration)
  • Client System Engineer

Einordnung nach ITIL

Sollte eine Einordnung der Rolle des Softwarepaketierer nach ITIL erfolgen, so wären die Paketierungsmitarbeiter dem Anwendungsentwicklungsbereich oder einem Entwicklungsnahen Bereich untergeordnet. Nach ITIL wäre das Application Management für die Erstellung von Softwarepaketen verantwortlich. Diese Annahme beruht vor allem auf der Tatsache, dass für die Entwicklung einer Installationsroutine oftmals Anwendungsentwicklerwissen gefordert ist. Das Release Management ist für den Release-Test und die Release-Verteilung zuständig. Das Change Management wiederum übernimmt die Kontrolle und die Steuerung.

Oftmals wird auf Grund des Spezialistenprofils „Softwarepaketierer“ die Tätigkeit der Softwarepaketierung in einem eigenen Bereich angesiedelt. Dieser Bereich muss sowohl systemnah als auch anwendungsbezogen agieren. In der Praxis wird die Tätigkeit der Paketerstellung fast überwiegend im Bereich des Release Managements (RM) angesiedelt. Dieses ist begründet durch die Tatsache, dass eine Release Unit im normalen Sprachgebrauch mit einem Paket gleichgesetzt wird. Da das RM für die Erstellung und den Test der Release Units (und des Releases) zuständig ist, kann dadurch begründet werden, dass ein Paketierer ein RM-Mitarbeiter sein kann / sollte. Letztendlich gibt ITIL an dieser Stelle jedoch nur Hinweise und keine Vorgaben!

Qualitätssicherung

Der Softwarepaketierer ist ausschliesslich für die technische Funktionsfähigkeit des Pakets verantwortlich. Er hat durch geeignete Mechanismen die Qualität sicherzustellen, dass das Paket die durch den Kunden definierten Anforderungen erfüllt. Der Softwarepaketierer überprüft das Paket auf einem entsprechenden Referenzsystem so produktionsnah wie möglich und nötig auf Umsetzung der Vorgaben und technischen Lauffähigkeit hin.

Betriebsverantwortung

Der Softwarepaketierer ist ausschliesslich für das Erstellen und Testen der entsprechenden Pakete zuständig. Alle Belange, die den direkten oder indirekten Betrieb einer Applikation betreffen, obliegen weder seiner Zuständigkeit noch seiner Verantwortung. Er stellt im Unterstützungsfall eine erhöhte (2nd oder 3rd Level) Supportstufe des Applikations-Supportes dar.

Anwendungsverantwortung

Jede eingesetzte Applikation besitzt (im Optimalfall) einen Anwendungsverantwortlichen (Person / Gruppe oder Abteilung). Ein Anwendungsverantwortlicher / Produktverantwortlicher ist der erste Ansprechpartner für alle Belangen der produktiv im Einsatz stehenden Applikation. Er entscheidet über die Konfiguration der Applikation (oftmals in Zusammenarbeit mit anderen IT-Abteilungen oder Fachbereichen). Darüber hinaus ist der Anwendungsverantwortliche oftmals in den Beschaffungsprozess eingebunden, in dem er (in Zusammenarbeit mit den Fachbereichen) die angeforderten Funktionalitäten bewertet und im Rahmen der Beschaffung Produktempfehlungen abgibt.

Der Anwendungsverantwortliche nimmt mit dem Paketierer zusammen die Applikation auf Lauffähigkeit und Umsetzung seiner Vorgaben hin ab. Durch die Abnahme (welche entsprechend archivierbar erfolgen sollte) übernimmt der Anwendungsverantwortliche die Betriebsverantwortung seiner Applikation.

Während die Anwendung in der Produktion im Verantwortungsbereich des Anwendungsverantwortlichens liegt, sollte die Installationsroutine (das Paket) trotzdem in Verantwortung der Paketierung verbleiben. An dieser Stelle sollte beachtet werden, dass das Paket, welches die Anwendung beinhaltet, an sich ebenfalls eine Anwendung darstellt.

Softwarepaketierer und Anwendungsverantwortlicher in einer Person

Obwohl es nicht ratsam ist, kann unter gewissen Umständen keine andere Möglichkeit bleiben als die Rollen des Anwendungsverantwortlichen und des Paketierers zu kombinieren. In diesem Fall übernimmt der Softwarepaketierer die Pflichten und die Verantwortung des Anwendungsverantwortlichens. Das Risiko dieser Konstellation liegt in den zwei unterschiedlichen Spezialistenprofilen (Anwendungsverantwortlicher / Software-Paketierer) begründet. Das Paketieren eines Paketes erfordert tiefgreifende Kenntnisse sowohl in Systemtechnik als auch in Automatisierungstechnologien. Sollte der Prämisse „Konzentration auf das Kerngeschäft“ gefolgt werden, ist die zusätzliche Paketierung oder (im Umkehrschluss) Anwendungsverantwortung eine Abweichung vom Kerngeschäft. Diese Abweichung hat zur Folge, dass entweder zwei Spezialistenprofile gelebt (im Sinne von beherrscht) werden müssen oder das Kerngeschäft durch die jeweils andere Tätigkeit beeinträchtigt wird.

Softwarepaketierung durch externe Dienstleister

Stehen in einem Unternehmen nicht genügend eigene Ressourcen zur Verfügung, ist es durchaus sinnvoll, die Softwarepaketierung mit Hilfe externer Unterstützung zu realisieren. Gerade durch die Spezialisierung auf den Bereich der Softwarepaketierung können Dienstleister Berater / Softwarepaketierer anbieten, die in der Lage sind ein Spezialisten Profil „Softwarepaketierer“ professionell zu erfüllen und umzusetzen. Überlegenswert ist ebenfalls, die Paketierung durch solche Spezialisten begleiten zu lassen und über diesen Weg eigene qualifizierte Ressourcen aufzubauen. Aus Sicht des Dienstleisters darf an dieser Stelle ein externer Paketierer niemals für den Applikationsbetrieb einer Applikation verantwortlich sein.

Benötigt ein Softwarepaketierer Kenntnisse des Softwareverteilungssystems?

Ein Softwarepaketierer definiert sich in erster Linie durch andere Fähigkeiten. Nachfolgend wird auf die allgemeinen Anforderungen eines Softwarepaketierers näher eingegangen. Bereits vor einigen Jahren wurde der Begriff des "SCCM-Paketierers" eingeführt, was zur Folge hatte, dass zwei Spezialistenprofile gelebt (im Sinne von beherrscht) werden müssen.

Voraussetzungen

Systemtechnik

Einen guten Softwarepaketierer macht vor allem eines aus: Der Softwarepaketierer muss seinen Client im Griff haben! Gerade bei der Paketierung mittels Delta-Analyse ist es elementar und unabdingbar, nach erfolgreicher Erstellung der Delta-Analyse das Skript von Einträgen zu säubern, die zwar Aufgezeichnet wurden, jedoch nicht in das Skript gehören. Unter Umständen können diese Einträge dazu führen, dass bei einem Rollout dieses Paketes die entsprechenden Zielsysteme irreparabel beschädigt werden. In diesem Fall müssten diese Systeme neu installiert werden.

Ein guter Softwarepaketierer sollte in erster Instanz die Betriebssysteme beherrschen, für die er im Rahmen seiner Tätigkeiten Softwarepakete erstellt. In zweiter Instanz ist es sicherlich ratsam, sich mit anderen Betriebssystemen oder Betriebssystemversionen zu beschäftigen, da der nächste Rollout / Umstellung mit Sicherheit kommen wird. Beherrschung ist in diesem Zusammenhang wie folgt definiert:

  • Registry
    Die Windows System Registrierung darf kein Fremdwort sein. Ein guter Softwarepaketierer mussmit den Standardwerten im HKLM und HKCU vertraut sein. Für eine Delta-Analyse Analyse ist gerade diese Fähigkeit von elementarer Bedeutung.
  • Windows Dienste
    Ein Softwarepaketierer mussin der Lage sein, Windows Dienste zu verstehen und diese Dienste ggf. in seinem Skript zu behandeln / zu verändern. Ungemein hilfreich sind Kenntnisse in WMI. Mittels WMI ist es zum Beispiel möglich, nach einer Installation den Status des installierten Dienstes abzufragen und ggf. auf diese Informationen im Skript entsprechend zu reagieren.
  • NTFS Rechte und Benutzerverwaltung
    Gerade in der Fehleranalyse ist es eine Notwendigkeit, dass Fehler erkannt werden, die auf mangelnde Berechtigung (Betriebssystem) zurückzuführen sind.
  • DOS Kenntnisse
    Jeder Softwarepaketierer sollte zumindest in der Lage sein, die DOS Grundbefehle zu beherrschen. Trotz aller Mittel bleibt ab und zu nur noch die Befehlszeile als letzter Ausweg.
  • Skriptsprachen
    Skriptsprachen sind wünschenswert aber nicht Grundvoraussetzung (zumindest in der normalen Paketierung). Wenn ein Softwarepaketierer in der Lage ist, VBS, JS, KIX, AUTOIT etc. anzuwenden, eröffnen sich ihm technisch vollkommen neue Möglichkeiten. Mit diesen Möglichkeiten lassen sich dann Probleme bewältigen, die zuvor als unlösbar gegolten haben. “Geht nicht, gibt’s nicht!“ Ist eine Funktion in nicht nativ enthalten, kann diese Funktionalität über eine Skriptsprache (meistens) abgebildet werden.
  • Netzwerkprotokolle (TCP/IP)
    “Gesunde Grundkenntnisse“im Bereich „Internetworking“sollten ebenfalls vorhanden sein. Ein Softwarepaketierer sollte in der Lage sein, Fehler entweder entsprechend zu Analysieren bzw. zu Qualifizieren oder diese selber zu beheben. Zu diesen Fertigkeiten gehören ebenso Kenntnisse im Bereich des grundlegenden „IP Trouble shootings“.
  • Grundverständnis für Applikationen generell
    Alle Applikationen ähneln sich im Grundaufbau. In der Regel gibt es Menüpunkte, in denen (und über diese) sich die Anwendung konfigurieren lässt. Die meisten Anwendungen schreiben ihre Werte in die Registrierung. Mit diesen zwei Erkenntnissen ist ein Softwarepaketierer in der Lage, eine Anwendung aus Paketierungssicht zu betrachten und eine entsprechende Paketierung anzugehen (Installationstechnologien wie MSI etc. werden später behandelt!).
  • Grundverständnis für Client Server Netzwerke und Netzwerkbetriebssysteme
    Spätestens, wenn eine Applikation für einen Server (oder Terminalserver) paketiert werden soll, sollte der Softwarepaketierer mit den Grundzügen des entsprechenden Serverbetriebssystems vertraut sein.

Installationstechnologien

Grundsätzlich können folgende Arten von Installationstechnologien unterschieden werden:

  • MSI
    Die Microsoft Installer Technologie entwickelt sich zum „defacto“ Standard in der Softwareinstallation. Ein MSI Paket stellt eine transparente Installationsroutine mit starken QS-Mechanismen dar. MSI Pakete vereinfachen ein „Application Repair“ oder die Deinstallation einer Anwendung. Viele Produkte steuern sogar die Anwendungsmigration auf ein neues Release vollkommen automatisch. Ein MSI Paket sollte nicht (im Sinne von dürfen) mittels einer Delta-Analyse repaketiert werden. Die systemtechnischen Zusammenhänge einer MSI Installation sind sehr komplex und die kompletten QS-Mechanismen der Microsoft Installer Technologie können ausgehebelt werden.
  • Setup.exe (Legacy Setup / Parametrisierte Installation)
    In der Regel bedeutet eine solche Setup.exe (und damit sind nicht die Installationen gemeint, die über eine Setup.exe eine MSI Installation aufrufen!), dass für dieses Paket eine Delta-Analyse erstellt werden muss. Ggf. kann diese Setup.exe auch parametrisiert aufgerufen werden. Gerade Install Shield Setup–Routinen bieten die Funktion, eine Antwort-Datei für die Applikationskonfiguration zu erzeugen, welche wiederum im Rahmen einer Verteilung zur automatischen Konfiguration verwendet werden kann.

    ABER:
    Bevor solch ein Verfahren eingesetzt wird, sollten zuerst die Fragen beantwortet werden, wie mit dem Paket in der gesamten Prozesskette umgegangen werden soll.

Flexibilität

Gerade in der Softwarepaketierung ist Flexibilität ein unbedingtes muss! Fast nirgends wird man schneller regelmässig mit neuen Herausforderungen konfrontiert, wie in der Softwarepaketierung. Routine und Softwarepaketierung passt nur bedingt zusammen. Im Grunde genommen kann jede Paketierungsanforderung bzw. sollte jede Paketierungsanforderung als eigenes Projekt behandelt werden. Jedes Projekt birgt Risiken und Stolpersteine. Weiterhin verlangt jedes Projekt Flexibilität, um sich schnell auf neue Situationen und Veränderungen einzustellen.

Kompetenzen

In diesem Abschnitt werden Kompetenzbereiche und Fertigkeiten / Kenntnisse aufgeführt, die ein Softwarepaketierer besitzen sollte. Unstrittig ist, dass diese Angaben kein muss für jeden Mitarbeiter darstellen, sondern nur eine Empfehlung ist, welche Bereiche in der Softwarepaketierung adressiert werden. Aufgeführt sind an dieser Stelle nur die Bereiche, nicht die Tiefe, die in den einzelnen Bereichen erforderlich ist. Eine solche Tiefenbetrachtung sollte separat auf die Bedürfnisse des jeweiligen Unternehmens hin angefertigt werden. Auf der Basis der daraus gewonnenen Informationen können für Mitarbeiter gezielt Fördermöglichkeiten / Fördermassnahmen ausgearbeitet werden, die sich im Wissensbereich eines Softwarepaketierers bewegen.

(Re-)Paketierung

  • Handhabung Windows Installer Technologie (MSI, MST, MSP, MSM)
  • Handhabung der Snapshot Technologie
  • Handhabung Analyse-Tools (SysInternals)
  • Handhabung Virtualisierung (VMware, Hyper-V)
  • Handhabung Paketierungstools (AdminStudio, Ivanti, ZenWorks, etc.)
  • Andere Script- und Programmiersprachen:
    • Dos Batch
    • Visual Basic Script
    • Power-Shell
    • AutoIT

Betriebssysteme Client

Windows XP, Vista, 7, 8, 10 Administration, Installation und Konfiguration

Betriebssysteme Server

  • Windows Server, Installation und Konfiguration
  • Windows Domänen Benutzerverwaltung
  • Windows Terminal Services
  • Active Directory Administration (Ressourcen)

Applikationen Client

  • MS Office
  • MS Outlook
  • IBM Notes
  • Internet Explorer (mit IEAK), MS Edge, Firefox, Google Chrome
  • Adobe Acrobat (Reader und Vollprodukt)
  • Java Runtime Environment (+JDK)
  • .NET (Runtimes), VC++ Runtimes
  • Plug-Ins
  • MS Hot fixes und Service packs

Applikationen Server

  • MS SQL Server
  • MS Internet Information Server
  • Windows Update Services (WSUS)
  • MS Hot fixes und Service packs
  • Citrix Presentation Server Administration
  • Citrix Presentation Server Applikationshandling
  • Citrix Presentation Server SDK

Microsoft Technologie

  • Windows Registry, Filesystem, ACL, UAC
  • MSI Technologie
  • WMI/WSH/ASDI
  • Treiber Installation, Konfiguration (WDK) (auch Zertifizierung)
  • Ressource Kit(s)
  • Dienste und Prozesse

TCP/IP

  • TCP/IP Konfiguration am Client
  • TCP/IP Troubleshooting
  • Grundwissen DHCP
  • Grundwissen DNS
  • Erkennen und beheben von IP-Adresskonflikten am Client

Präsentation

  • Aufbau und Gestaltung einer Präsentation
  • Vorbereitung einer Präsentation
  • Durchführung einer Präsentation

Projektvorgehensmodelle

  • Projektsetup
  • Meetingkultur
  • Protokoll-Erstellung
  • Eskalation
  • Zeitmanagement
  • Priorisiertes Arbeiten
  • Berichtswesen
  • Erstellung von Dokumentationen

Prozessverständnis

  • Rollenverständnis
  • ITIL Grundwissen (ggf.)
  • Kontinuierlicher Verbesserungsprozess

Sozialkompetenz

  • Kommunikation
  • Teamfähigkeit
  • Kritikfähigkeit
  • Eigeninitiative
  • Kreativität
  • Englisch
  • Dienstleistungsverständnis
  • Problemlösungsorientiertes Handeln
  • Eigenständiges Aneignen von Wissen
  • Kenntnisse der Fachterminologie