Effiziente Software Begutachtung im Überblick

Haben Sie Ärger mit ihrem Software-Lieferanten oder möchten eine Aussage bezüglich Qualität ihrer Software? Mit ein paar Tagen Aufwand und der Pareto-Regel resultiert eine aussagekräftige Begutachtung. So wird’s gemacht.

Code Review

Die 3 wichtigsten Bereiche sind:

Architektur

Die Architektur resp. Struktur der Software ist von zentraler Bedeutung. Die meisten Anwendungen haben eine Benutzeroberfläche, bilden Firmenprozesse ab und speichern Daten. Dies ist eine sog. 3-Schichten-Architektur:

  • Benutzeroberfläche: Führt den Benutzer zielgerichtet zum gewünschten Ergebnis (Webanwendung, Desktop-Anwendung und/oder mobile Anwendung)
  • Geschäftslogik: Bildet die Firmenprozesse ab. Das Firmen-Wissen steckt in dieser Schicht. Dies ist der wichtigste Teil und muss wieder verwendbar sein.
  • Datenhaltung: Die Daten werden persistent gespeichert (Filesystem, Datenbank).

Die Struktur gibt einen ersten Hinweis auf die Granularität: Ist die Anwendung unterteilt in (zu) viele Unterprojekte oder gibt es ein riesiges Projekt, das alles beinhaltet.

Schnittstellen

Braucht die Anwendung Informationen von fremden Systemen oder liefert sie Informationen an fremde Systeme? Schnittstellen sind heikel. Es ist wichtig, dass diese gekapselt sind, damit Änderungen nicht die gesamte Anwendung betreffen. Und die Software muss robust resp. fehlertolerant sein.

Time for Code Review

Fremdprodukte

Um das Rad nicht neu zu erfinden, werden Fremdprodukte eingesetzt. Die Anzahl eingesetzter Fremdprodukte gibt einen Anhaltspunkt bez. Komplexität der Anwendung. Dabei unterscheide ich 2 Arten:

  • Komplexe Produkte wie z.B. eine Bibliothek zur Erstellung der Benutzeroberfläche oder zur Erstellung von Excel-Files ohne die Installation von Office.
  • Einfache Produkte wie z.B. ein Mapper (kopiert Daten von einem Objekt ins andere, hat keine Logik).

Für beide Arten gilt: Im Lauf der Zeit wird es neuere Versionen geben. Irgendwann muss auf eine neuere Version gewechselt werden. Dabei kann es passieren, dass die neue Version nicht mehr kompatibel ist und es zu einem ungeplanten Mehraufwand kommt. Oder ein Fremdprodukt wird abgekündigt und ein Ersatz muss gesucht werden.

Zusammenfassung

Je nach Grösse und Komplexität der Anwendung ist die grobe Analyse obiger Punkte in 1-3 Tagen gemacht. Das Resultat ist eine Liste mit Punkten zur detaillierten Abklärung.

Die technischen Details sind hier.

Ärger mit ihren Software-Lieferanten?

Ein neues Projekt kommt nicht vom Fleck. Kleine Anpassungen sind zu teuer. Zum wiederholten Mal wird zu spät geliefert. Zu viele Beteiligte mit unklaren Kompetenzen. Kommt Ihnen das bekannt vor? Ein paar Tipps zur Abhilfe bei Ärger mit Software-Lieferanten.

Neue Projekte

Kommt ein neues Projekt nicht vom Fleck, gibt es verschiedene Gründe:

  1. Die Anforderungen sind nicht klar, unvollständig oder erst teilweise bekannt.
  2. Offeriert wird ein Ferrari, auch wenn ein VW Golf reicht.
  3. Zu komplizierter Prozessablauf mit zu vielen Diskussionsschlaufen.
  4. Zu hohe Kosten.
  5. Zu starker Fokus auf künftige Erweiterungen.

Beim 1. Punkt ist der Software-Lieferant in der Pflicht: Er muss nachfragen, damit er eine Anforderungsspezifikation sowie einen Mockup / Prototyp als Diskussionsgrundlage.

Jeder Software-Lieferant versucht, so effizient wie möglich zu sein. Werden verschiedene Anwendungen entwickelt, die eine gemeinsame Funktionalität haben, ist es sinnvoll, eine sog. Plattform zu entwickeln. Eine neue Anwendung ‘bekommt’ automatisch die gesamte Funktionalität der Plattform. Auf diese Weise können neue Anwendungen schneller entwickelt werden.

Die Gefahr vom Ferrari entsteht, wenn der Lieferant auf einer solchen Plattform aufbaut oder aufbauen muss. Wenn der Kunde nur einen Bruchteil der gesamten Funktionalität benötigt, bezahlt er dennoch den vollen Preis. Beim Einsatz einer proprietären Plattform ist es für den Kunden praktisch unmöglich, den Quellcode zu übernehmen und die Anwendung bei einem anderen Lieferanten weiter zu entwickeln. Ein späterer Wechsel des Lieferanten heisst, die Anwendung von Grund auf neu zu entwickeln.

Lieferanten-Stopp

Die Projektverantwortlichen des Lieferanten koordinieren die Software-Entwicklung. Sie müssen Einiges von IT resp. Software-Entwicklung verstehen. Sonst entsteht ein grosser Informationsverlust. Es ist wie beim Telefonspiel: Der Input beim ersten Glied (Projektleiter Kunde unterscheidet sich stark zum Output des letzten Glieds (Entwickler Lieferant). Jedes Glied, das weggelassen werden kann, reduziert den Informationsverlust.

Zu hohe Kosten entstehen, wenn ein Ferrari anstelle eines VW Golf geliefert wird. Oder die Entwickler etwas Falsches entwickeln, weil der Output beim letzten Glied falsch war. Hier hilft ein Hinterfragen der eingesetzten Produkte / Frameworks beim Lieferanten.

Sinnvoll ist es, künftige Erweiterungen von Anfang an in der Architektur zu berücksichtigen. Zu viel Gewicht sollte dennoch nicht beigemessen werden. Bei einem neuen Projekt ist es oft schwierig, mögliche Erweiterungen zu kennen.

Bestehende Projekte

Bei Ärger in einem bestehenden Projekt respektive einer existierenden Anwendung ist das primäre Ziel, mit dem Lieferanten einen Weg zu finden, um die Probleme zu lösen. Das ist am Einfachsten und Effizientesten. Ein Wechsel ist immer mit zusätzlichen Kosten und Zeitverlust verbunden und erst der letzte Ausweg.

Häufigste Probleme sind:

  1. Offerierte Kosten für die Weiterentwicklung sind zu hoch.
  2. Lieferverzug oder zu lange Lieferzeit.

Versteht der Kunde wenig von IT, lohnt sich der Einbezug eines Spezialisten in den Bereichen Architektur und Entwicklung. So können beim Lieferanten die richtigen Fragen gestellt werden. Es ist ein Gespräch auf Augenhöhe. Der Lieferant merkt, dass seine Aussagen und Offerten kritisch hinterfragt werden. Es ist vergleichbar mit dem Einholen einer ärztlichen Zweitmeinung.

Der Quellcode gehört dem Kunde. Ein Code-Review seitens Kunde hat folgende Vorteile:

  • Der Lieferant weiss, dass er keine überhöhten Aufwände offerieren kann.
  • Der Kunde hat einen Überblick über die Architektur und die Qualität der Software. Bei grösseren Mängeln ist ein Refactoring (Überarbeitung der Software bei gleicher Funktionalität) sinnvoll, besonders bei einem langfristigen Projekt.
  • Schwachstellen können behoben werden und künftige Lieferungen sind schneller und günstiger.

Um die Kosten für den Review so gering wie möglich zu halten, reicht meist eine grobe Übersicht.

Zusammenfassung

Sie haben folgende Möglichkeiten, Termine und Kosten ihres Software-Lieferanten in den Griff zu bekommen:

  • Klare Definition der Anforderungen, damit der Lieferant weiss, was er machen muss.
  • So wenig Ansprechpersonen wie möglich, damit die ursprüngliche Information möglichst unverändert bleibt.
  • Hinterfragen der eingesetzten Produkte / Frameworks, falls ein Lieferantenwechsel geplant ist.
  • Beizug eines Software-Spezialisten, um die richtigen Fragen zu stellen.
  • Durchführung eines Code-Reviews, um den Druck auf den Lieferanten zu erhöhen und sich einen Überblick über die Software-Qualität zu beschaffen.

Nachhaltige Verbesserung der Software

Hier erfahren Sie viel über ihre Möglichkeiten zur nachhaltigen Verbesserung der Qualität. Mit einfachen Massnahmen und der Pareto-Regel erzielen Sie einen maximalen Ertrag.

1.       Funktionalität

Die Funktionalität wird am besten aus einem Mix von Pflichtenheft, Visualisierung und Use Cases beschrieben, weil damit verschiedene Aspekte berücksichtigt werden.

Folgende Massnahmen bieten sich an:

  • Vollständigkeit, dazu gehören auch die nicht-funktionalen Anforderungen
  • Einfache Sprache, keine Fremdwörter, Erklärung der Begriffe
  • Review intern und mit Kunde: Beginn der Entwicklung erst nach Abnahme der Funktionalität!
  • Ablage der Informationen, sodass alle Projektmitarbeiter darauf Zugriff haben. Sind externe Mitarbeiter involviert, machen Cloud-Lösungen Sinn, z.B. Confluence.

2.      Performanz

Die kritischen Funktionen müssen möglichst früh umgesetzt werden, sodass diese gemäss den definierten Randbedingungen getestet werden können. Dies betrifft nicht nur die Performanz sondern das grundsätzliche Vorgehen bei einer Entwicklung.

Ist die Performanz ein kritischer Faktor und wird erst am Schluss gemessen, kann es böse Überraschungen geben. Im schlechtesten Fall muss die Architektur angepasst werden, was mit hohen Kosten und Terminverzug verbunden ist.

Software Qualität Verbesserung

3.      Benutzerfreundlichkeit

Jede Anwendung muss ein Logfile haben. Darin protokolliert die Anwendung beispielsweise, auf welche Buttons der Benutzer klickt. Damit kann ein Profil erstellt werden, wo sich der Benutzer wie lange aufgehalten hat und wo nicht.

Die Zielgruppe muss möglichst früh beim Testen involviert werden. Achtung: Die Anwendung muss stabil funktionieren, sonst ärgern sich die die Benutzer.

4.      Zuverlässigkeit

Ein zentraler Punkt für die Zuverlässigkeit ist das Testen der Anwendung. Dazu braucht es:

  • Ein Testkonzept, welches die Grundzüge und Ideen beschreibt. Software können Sie nie zu 100% testen.
  • Testfälle, um mit möglichst wenig Aufwand eine möglichst grosse Abdeckung zu erzielen.

Das Testkonzept und die Testfälle müssen vor Beginn der Umsetzung definiert werden. Sonst kann es passieren, dass Testfälle definiert werden, die nicht getestet werden können. Das kann unter Umständen verheerend sein.

5.      Wartbarkeit

In seltenen Fällen ist eine Anwendung von Anfang an wiederverwendbar und modular. Meist besteht Zeitdruck und der Fokus liegt auf der Funktionalität. Das ist normal. Aus diesem Grund muss Zeit fürs Refactoring eingeplant werden: Der Code wird später so modularisiert, dass die bestehende Funktionalität nicht ändert.

6.      Zusammenfassung

Mit diesen einfachen und kostengünstigen Massnahmen wird die Qualität erheblich gesteigert:

  • Vollständigkeit und Review der Anforderungen
  • Kritische Funktionen möglichst früh umsetzen und testen
  • Benutzer der Zielgruppe müssen möglichst früh mit der Anwendung arbeiten / testen
  • Testkonzept und Testfälle vor Beginn der Umsetzung definieren
  • Regelmässig Zeit fürs Refactoring planen

 

Qualität ja – genau so viel, wie nötig!

Qualität in der Software Entwicklung ist wichtig und kann gemessen werden. Verschiedene Faktoren beeinflussen die Qualität. Je nach Anwendung ist nicht jeder Faktor gleich wichtig. Eine Online-Banking Anwendung hat andere Qualitätsfaktoren als eine Vereinsbuchhaltung. Bei allen Anwendungen gibt es bezüglich Qualität eine Gemeinsamkeit: Nur so viel Qualität wie nötig!

Qualitätssteigerung in der Software Entwicklung

In Anlehnung an ISO 25010 gibt es 8 Merkmale:

  • Funktionalität: Sind alle Funktionen vorhanden und korrekt umgesetzt.
  • Performanz: Sind die Antwortzeiten genügend schnell und ist der Ressourcenverbrauch OK.
  • Kompatibilität: Auf welchen Betriebssystemen, Browsern muss es funktionieren.
  • Benutzerfreundlichkeit: Kann der Benutzer die nötigen Aufgaben in nützlicher Frist lösen.
  • Zuverlässigkeit: Wie fehlertolerant ist die Anwendung, gibt es Abstürze.
  • Sicherheit
  • Wartbarkeit: Wie einfach können neue Funktionen umgesetzt werden.
  • Portierbarkeit

Der Fokus liegt in diesem Blog bei kleineren Anwendungen. Da sind Funktionalität, Performanz, Benutzerfreundlichkeit, Zuverlässigkeit und Wartbarkeit am Wichtigsten. Die Merkmale müssen als Ganzes beurteilt werden, da sie sich gegenseitig beeinflussen können.

In einem ersten Schritt wird beschrieben, wie die Qualität dieser fünf Merkmale gemessen werden kann. In einem zweiten Schritt geht es darum, die Qualität als Ganzes zu verbessern.

Qualitätsmessung

Die Qualität kann nicht immer absolut gemessen werden. Darum macht es Sinn, sog. Qualitätsfaktoren zu definieren und diese zu bewerten oder zu messen.

Time-Cost-Quality

1.      Funktionalität

Damit die Funktionalität gemessen werden kann, muss diese beschrieben sein. Dazu gibt es verschiedene Möglichkeiten:

  • Pflichtenheft mit funktionalen und nicht-funktionalen Anforderungen
  • Prototyp / Mockup (Visualisierung)
  • Anwendungsfälle (Use Cases)

Je detaillierter die Beschreibung, desto einfacher ist die Messung resp. Überprüfung. Eine Kombination dieser Möglichkeiten ist sinnvoll.

2.      Performanz

Typischerweise werden die Antwortzeiten verschiedener Funktionen definiert. Wichtig sind die Randbedingungen: Wie viele Benutzer führen die Funktion gleichzeitig aus, wie gross ist die Datenmenge etc.

Beispiel: Das Lesen aller Hotel-Reservationen eines einzelnen Tages muss < 0.5 sec dauern.

Randbedingungen: 5 Benutzer gleichzeitig, die Datenmenge besteht aus 2000 Hotel-Reservationen.

Die Datenmenge kann einen erheblichen Einfluss auf die Antwortzeit haben. Sind nur 10 Hotel-Reservationen vorhanden, ist die Antwortzeit kürzer als bei 2000.

3.      Benutzerfreundlichkeit

Es gibt viele Möglichkeiten, die Benutzerfreundlichkeit (Usability) zu messen. Diese sind teilweise aufwändig und teuer.

  • Der Benutzer wird beobachtet, entweder im Labor oder in der richtigen Arbeitsumgebung. Beim Eye-Tracking wird geschaut, welchen Bereichen der Benutzeroberfläche am meisten Beachtung geschenkt wird.
  • Inspektion durch Experten, Überprüfung auf Normkonformität und allgemein anerkannte Richtlinien und Standards.
  • Fragebogen an Benutzer abgeben.
  • Mündliche Befragung (Interview).
  • Der Benutzer denkt bei der Durchführung laut und äussert so seine Gedanken und Gefühle.
  • Auswertung der Logfiles, z.B. Verweildauer, Navigationswege.

Daraus lassen sich sogenannte Metriken ableiten:

  • Effektivität: Anteil erfüllter Aufgaben x Erfüllungsgrad der Aufgaben
  • Effizienz: Effektivität / Aufgewendete Zeit
  • Benutzerzufriedenheit: Subjektive Eindrücke der Benutzer, statistisch ausgewertet
  • Anzahl Hotlineanrufe, Tickets

4.      Zuverlässigkeit

Verfügbarkeit, Fehlertoleranz und Wiederherstellbarkeit bilden als Ganzes die Zuverlässigkeit.

Die Verfügbarkeit kann einfach gemessen werden: Gesamtzeit – Ausfallzeit / Gesamtzeit.

Bei einfacheren Anwendungen entspricht die Fehlertoleranz der Robustheit der Benutzeroberfläche und/oder der Schnittstellen:

  • Ungültige / fehlende Eingaben bei Benutzeroberflächen dürfen zu keinem Fehler / Absturz führen.
  • Ungültige / fehlende Daten, welche über eine Schnittstelle bezogen werden, dürfen zu keinem Fehler / Absturz im nachfolgenden Ablauf führen.

Eine einfache Möglichkeit zur Messung der Fehlertoleranz besteht darin, die möglichen Eingabefehler / Schnittstellenfehler zu spezifizieren und zu testen.

Wiederherstellbarkeit bezeichnet die Fähigkeit, die Bereitstellung zu dem Punkt wiederherzustellen, zu dem ein Ausfall erfolgt ist. Die Fähigkeit zum schnellen Wiederherstellen nach einem Systemausfall erfordert nicht nur die Verfügbarkeit aktueller Sicherungen der Daten. Vielmehr muss auch ein Plan vorhanden sein, um diese Daten auf neuer Hardware wiederherstellen zu können.

Gemessen wird die Zeit, die es braucht, um das System auf der laufenden oder neuen Hardware wiederherstellen zu können.

Software-Quality-Management

5.      Wartbarkeit

Wiederverwendbarkeit, Modularität, Testbarkeit und Änderbarkeit bilden als Ganzes die Wartbarkeit. Letztendlich geht es darum, wie einfach eine bestehende Anwendung durch neue Funktionen erweitert werden kann. Die einzelnen Teile beeinflussen sich gegenseitig: Eine modulare Anwendung ist mit grosser Wahrscheinlichkeit besser testbar.

Bei Wiederverwendbarkeit geht es hier um Module. Ein Modul bietet eine in sich geschlossene Funktionalität an. Ein Modul kann innerhalb der gleichen Anwendung oder in verschiedenen Anwendungen wiederverwendet werden. In welchen Anwendungen ein Modul eingesetzt wird, kann meist durch Referenzen auf dieses Modul festgestellt und somit gemessen werden.

Modularität ist wie ein Baukasten. Im Idealfall werden aus dem Baukasten die einzelnen Module ausgewählt und miteinander verbunden / verlinkt. Modularität allein zu messen macht wenig Sinn. Stattdessen ist die Modularität Bestandteil der Wiederverwendbarkeit.

Die Testbarkeit wird indirekt gemessen resp. hängt vom Testaufwand ab. Je geringer die Testbarkeit, desto grösser der Testaufwand.

Die Änderbarkeit ist ein Mass dafür, wie schnell, fehlerfrei und einfach eine Änderung gemacht werden kann. Letztendlich wird die Zeit gemessen, welche dafür nötig ist. Ein absoluter Vergleich ist schwierig. Ist der Kunde bereit, die benötigte Zeit zu bezahlen, ist die Änderbarkeit gut. Nach mehreren Änderungen ist ein Trend ersichtlich.

6.      Zusammenfassung

Qualität wird wie folgt gemessen:

  • Funktionalität: Vergleich mit Pflichtenheft, Prototyp, Use Cases
  • Performanz: Messung von Antwortzeiten bestimmter Funktionen
  • Benutzerfreundlichkeit: Effizienz, Benutzerzufriedenheit, Hotline Anrufe
  • Zuverlässigkeit: Ausfallzeit, Wiederherstellungszeit, Spezifikation möglicher Fehler und Test
  • Wartbarkeit: Testaufwand, Zeit für Änderungen, Anzahl Wiederverwendungen / Modul

Im nächsten Beitrag werden die Möglichkeiten zur Verbesserung der Software Qualität beschrieben.

Weiterführende Links:

Qualitätsmerkmale von Software

Weiterbildung im digitalen Zeitalter

Weiterbildung ist wichtig und nötig. Qualifizierte Mitarbeiter sind unentbehrlich. Die Halbwertszeit des Wissens wird immer kürzer. Obwohl diese Tatsachen bekannt sind, hapert es oft bei der Umsetzung. Stete Weiterbildung im digitalen Zeitalter ist gefragt.

Wir befinden uns im digitalen Zeitalter, Industrie 4.0 ist in aller Munde. Den digitalen Wandel können wir nicht aufhalten, aber wir können ihn mitgestalten. Um längerfristig konkurrenzfähig zu bleiben, ist agieren (mitgestalten) gefragt. Unsere hohen Lohnkosten können wir z.B. durch eine schnellere Lieferung, bessere Qualität oder durch Einmaligkeit (der Erste sein) wettmachen. Damit dies möglich ist, braucht es gut qualifizierte Mitarbeiter auf allen Ebenen.

Weiterbildung im digitalen Zeitalter
Weiterbildung im digitalen Zeitalter

Weiterbildung kann auf verschiedene Arten erfolgen.

Zeitschriften, Fachartikel

Das ist am günstigsten. Ein regelmässiges Lesen von Zeitschriften hilft, künftige Trends erkennen zu können. Die Erkenntnisse werden im Team diskutiert, um eine möglichst breite Abstützung zu haben. Die Gefahr besteht, das Gelesene zu vergessen ohne es anzuwenden.

Knowhow-Transfer in der Firma

Wenn das Wissen in der Firma besser verteilt ist, erhöht sich die Flexibilität. Eine Firma hat z.B. 3 Entwickler. Der erste ist ein Datenbank Spezialist, der zweite programmiert Benutzeroberflächen und der dritte programmiert Geschäftslogik. Wenn jeder Entwickler nebst seinem Kerngebiet noch ein zweites Gebiet beherrscht, können diese Entwickler effizienter eingesetzt werden.

Das Erarbeiten des nötigen Wissen braucht Zeit und Geld. Ein erprobter Weg ist die Betreuung durch den Spezialisten. Dabei ist es wichtig, von Anfang an konkrete Aufgaben zu lösen. Ein theoretisches Einarbeiten durch das Studium vieler Dokumente ist wenig abwechslungsreich und langweilig.

Zu Beginn wird viel mehr Zeit benötigt, um eine Arbeit zu erledigen. Der Spezialist investiert Zeit in die Betreuung und der Lernende muss sich einarbeiten und sich im neuen Thema zurechtfinden. Mit der Zeit reduziert sich der Betreuungsaufwand merklich. So kann beispielsweise eine Stellvertretung in den Ferien erfolgen. Eine ungleichmässige Auslastung der Mitarbeiter kann so geglättet werden.

Mitarbeiter Skills
Mitarbeiter Skills

Lehrgänge, Studium

Es gibt verschiedene Lehrgänge und Studien an Höheren Fachschulen (HF) und Fachhochschulen (FH). Darauf wird nicht näher eingegangen, da es den Rahmen dieses Beitrages sprengen würde.

On the Job

Training on the job ist heute selbstverständlich. Ein Mitarbeiter kommt früher oder später in eine Situation, wo das eigene Wissen nicht mehr ausreicht. Er muss sich neues Wissen bei einer konkreten Aufgabe aneignen. Google sei Dank.

Wichtig ist, dass eine Kontrolle stattfindet. Die gleiche Aufgabe kann auf verschiedene Arten gelöst werden und meist gibt es (zu) viele Möglichkeiten. Die Vor- und Nachteile müssen bekannt sein. Sonst besteht die Gefahr, dass die Lösung alles andere als optimal ist und die Probleme später auftreten, z.B. bei der Wartbarkeit.

Firmenkurse

Das ist die optimale Möglichkeit, einzelne Mitarbeiter gezielt weiter zu bilden. Diese sollten immer konkrete Projekte / Probleme der Firma behandeln. Dadurch ist der Lerneffekt am grössten, weil der Mitarbeiter etwas Neues lernt und es sogleich anwenden kann. Ob sich ein Firmenkurs (finanziell) lohnt, hängt von der Anzahl Teilnehmer und der Dauer ab. Die direkten Kosten sind meist höher als bei einem externen Kurs, dafür ist der Nutzen umso höher.

Externe Kurse

Externe Kurse gibt es praktisch zu jedem Thema. Die Schwierigkeit liegt darin, den richtigen Kurs mit dem richtigen Schwierigkeitsgrad zu finden. Über- und Unterforderung bringen wenig. Die Umsetzung des Gelernten in der Firma ist meist schwieriger als bei einem Firmenkurs. Dafür gibt es einen Austausch zwischen den Teilnehmern, der nicht zu unterschätzen ist.

Fazit

Wie so oft im Leben gibt es nicht die richtige oder die einzige Art der Weiterbildung. Eine Kombination ist meist sinnvoll. Welche Arten genutzt werden, hängen primär von der Qualifikation / Selbständigkeit der Mitarbeiter und den finanziellen Möglichkeiten der Firma ab. Wichtig ist, dass eine gezielte Weiterbildung erfolgt. Nichts tun und abwarten ist die falsche Strategie.

Weiterführende Links

Weiterbildung Höhere Fachschule Uster

Firmenkurse Hyperformers