Ein Plädoyer für den internen Produktmanager

Das Produktmanagement ist ein wesentlicher Schlüssel zum Erfolg eines Produktes. Der Produktmanager hat stets das Ziel, ein Produkt auf dem Markt zu positionieren und es erfolgreich an den Kunden zu bringen. Dazu stimmt er sich intern ab und klärt, welches Produkt oder welche Produktlinie des Unternehmens auf dem Markt geeignet sind. Gleichzeitig hat der Produktmanager den Markt im Auge, um auf Veränderungen zu reagieren, d.h. das richtige Produkt oder die richtige Produkteigenschaft zur richtigen Zeit zu präsentieren.

Bei dem Begriff „Markt“ denken viele hier an die große externe Gruppe, die heiß umkämpft über Marketing angesprochen wird und die mitunter extrem aufwändig beworben wird.

Viele Unternehmen vergessen dabei, an den internen Markt zu denken, nämlich den der Anwender in einem Unternehmen:

„Sowas haben wir nicht. Wir machen nur Projekte und keine Produkte“

Fängt hier nicht ein folgenschwerer Irrtum an?

Weiterlesen

Eye-Tracking as a Service

Um eine Anwendung möglichst optimal zu gestalten, ist es wichtig, Nutzer bei dem Umgang mit dieser Anwendung zu beobachten. Das gestaltet sich jedoch als schwierig, da ein Nutzer bei der Interaktion mit einer Anwendung viele Denk- und Handlungsschritte gleichzeitig ausführt. Ein automatisiertes Aufnehmen des Nutzers hilft dabei, den Integrationsprozess zu verstehen: Durch Eye-Tracking können seine Maus- und Blickbewegungen dokumentiert werden. Es sind Fixationen und Scanpaths der Nutzerblicke, die bei Softwareanwendungen als auch bei anderen Oberflächen und Umgebungen eine schnellere Benutzbarkeitsbewertung dieser ermöglichen. Dadurch ist die gezielte Steigerung der Benutzerfreundlichkeit von Anwendungen und die Optimierung der Arbeitsplatzgestaltung im Industriebereich über Blickbewegungsanalysen effizienter umsetzbar.

Weiterlesen

Random Number Generators in virtuellen Maschinen

Blockierendes /dev/random

Benötigt ein Prozess auf einem Linux Server eine Zufallsquelle, dann kann er hierfür auf die unter Linux Betriebssystemen üblichen Quellen /dev/random und /dev/urandom zurückgreifen. Hier gibt es einen wesentlichen Unterschied: random blockiert, wenn es keine hinreichend zufälligen Werte mehr liefern kann. Die Quelle urandom hingegen liefert weiter Werte, jedoch sind diese mit abfallender Entropie weniger zufällig.

Virtualisierte Server verfügen in der Regel nicht über Hardwareresourcen, welche sich eignen würden, um zufällige Startwerte für einen Zufallsgenerator zu bilden (beispielsweise ein Trusted Platform Modul, TPM). Auf Grund dessen erschöpft sich der Entropiepool hier sehr schnell und /dev/random liefert keine Werte mehr. Dies kann dann, wie in JDBC Zugriff auf Oracle-Datenbank scheitert mit I/O-Fehler: Connection reset (1) beschrieben, auch dazu führen, dass zwei Applikationen nicht verschlüsselt miteinander kommunizieren können.

Weiterlesen

JDBC Zugriff auf Oracle-Datenbank scheitert mit I/O-Fehler: Connection reset

Warum komme ich plötzlich nicht mehr an die Datenbank?

Mit einer unserer Java-Anwendungen hatten wir plötzlich ein unerklärliches Zugriffs-Problem auf die darunter liegende Oracle Datenbank. Nach der Installation der Anwendung auf einer neuen Virtuellen Maschine scheiterte jeder JDBC-Zugriff auf die Datenbank mit dem Fehler:

java.sql.SQLRecoverableException: I/O-Fehler: Connection reset

obwohl der Datenbank Server selbst nicht verändert wurde. Wir konnten den Fehler mit einer einfachen Test Klasse repoduzieren und es wurde schnell klar, es liegt weder an der Anwendung, noch am Datenbank-Server.

Weiterlesen

Von der Persönlichkeit eines (erfolgreichen) Projektleiters

Dieser Beitrag erscheint im Rahmen der Blogparade zur PM Welt 2017: „Klassisch, agil oder egal: Ist ein guter Projektleiter mit jeder Methode erfolgreich?

Selten war ich so hin und her gerissen, wie bei der Suche nach der Antwort auf diese Frage. Je mehr ich über ein Ja nachdachte, so öfter hatte ich Erinnerungen an Erlebnisse, die genau das Gegenteil bedeuteten. Auch bei einem Nein kamen mir sofort unzählige Beispiele in den Sinn, die eindeutig mit Ja zu beantworten sind. Ich wollte mich aber nicht damit abfinden, dass die Antwort lautet: „it depends“.

Dann kam ich zu dem Punkt, an dem ich mich selber fragte: Sind die Soft-Skills (ein Teil der Persönlichkeit) eines Projektleiters nicht auch ein Bestandteil seines individuellen Methodenkoffers?

Ich denke ja. Wer Persönlichkeit hat, geht mit sozialer Kompetenz und methodisch vor!

Weiterlesen

Von der Lösung zum Problem – Impact Mapping mal anders herum

Als Projektmanager bin ich täglich mit den Anforderungen unserer Auftraggeber konfrontiert. Diese werden interessanterweise sehr oft in Form von Lösungen formuliert. Der Bezug zum eigentlichen Problem ist nicht (mehr) transparent.

Der Auftraggeber könnte sehr davon profitieren, wenn der Dienstleister in seinem Sinne mitdenkt und damit zum Projekterfolg beiträgt. Dazu gehört auch die Beurteilung und der Vergleich von zwei Lösungen miteinander. Dies ist die Basis für eine richtige – effektive und effiziente – Wahl.

Vor Kurzem bin ich auf die Methode namens Impact Mapping gestoßen. Das Impact Mapping ist ein mächtiges Werkzeug, welches eigentlich nur eine Richtung kennt. Als ich sie verstanden hatte, versuchte ich diese einfach mal anders herum anzuwenden. Mit ungeahnten Folgen…

Weiterlesen

Geräteübergreifende User Experience bei Industrie 4.0

Wir begleiten den Service-Techniker Björn S. auf dem Weg zu einem Industriekunden mit einer defekten Produktionsanlage. Die Kontaktdaten wie Ansprechpartner und Anschrift erhält er telefonisch von seiner Zentrale. Händisch gibt er die Adresse in sein Navigationsgerät ein und fährt zum Kunden.

Vor Ort angekommen verkabelt er sein Smartphone mit der Sensor-Einheit der defekten Maschine und liest die benötigten Messwerte aus. Den Fehler kann er nicht direkt beheben und beginnt, auf dem kleinen Bildschirm des Telefons einen Fehlerbericht zu verfassen. Der Bericht wird umfangreicher und so will Björn S. auf das Laptop mit der großen Tastatur wechseln. Weil er den Auftrag nicht in unvollständigem Zustand absenden möchte, versendet er den angefangenen Text per E-Mail an sich selbst. Am Laptop übertragt er den Text aus der E-Mail in das Meldungsprogramm und schreibt den Bericht fertig. Er bemerkt: „Ein Foto von dem Schaden wäre für die Zentrale hilfreich“. Björn S. greift sein Smartphone und nimmt ein Foto auf. Wie sendet er dieses in den fast fertigen Bericht am Laptop? Per Bluetooth, als E-Mail-Anlage, per Online-Speicher? Björn S. kennt viele Alternativen, entscheidet sich aber erneut für eine E-Mail an sich selbst. Am Laptop fügt er das Foto ein und sendet den Auftrag ab. Diese Schadensmeldung ist behoben. Mal sehen, welchen Auftrag die Zentrale jetzt für ihn bereitstellt. Er tippt die Adresse für sein nächstes Ziel in das Navigationsgerät …

Service-Techniker Björn S. benutzt die verschiedenen Endgeräte so, wie sie seine Arbeit aktuell unterstützen. Er merkt, dass er beim Wechsel irgendwie ausgebremst wird. So kann er nur bedingt effizient arbeiten, aber kennt für fast alles einen Workaround.

Doch könnte er auch nahtloser und intuitiver arbeiten?

Weiterlesen

Camunda BPM: Testen von Prozessen mit Java Delegates

Motivation

Das Testen von Prozessdefinitionen ist wichtig und fixiert die Erwartungshaltung an die zu entwickelnde Anwendung. Eine sehr schöne Einführung in das Thema  Testautomatisierung für Camunda BPM basierte Anwendungen gibt das Camunda Webinar: https://network.camunda.org/webinars/24

Ein gängiger Ansatz zum Testen von Prozessdefinitionen ist, dass die Implementierungen von Service Aktivitäten gemockt oder komplett gegen eine eigene für Testzwecke angepasste Implementierung ausgetauscht werden und somit oft ein Prozessdurchlauf im Testkontext erst möglich wird. Für CDI basierte Java Delegates ist dies mit Hilfe von Camunda sehr einfach zu bewerkstelligen.

Wenn jedoch das Projektumfeld es nicht erlaubt auf z.B. die präferierte CDI oder Spring basierte Laufzeitumgebung zurückzugreifen, bleibt oft nur der Weg das Binding zwischen Service Aktivität in der Prozessdefintion und der eigentlichen Implementierung mit Hilfe des konkrete Java Class Namen zu vollziehen. Leider gibt es für diesen Ansatz keine Out-Of-The-Box Unterstützung für Tests.

In diesem Artikel zeigen wir, wie man mit einfachen Mitteln die Camunda Engine erweitern kann, um auch klassische Java Delegates so einfach deren CDI Verwandte testbar zu machen.

Weiterlesen