Software Design Lessons from my Diving Computer

Hi…
As I started my new hobby diving, I was told that the first gear should be an individual mask because it would contain prescriptive lenses. Well, why having a mask when you could have a new computer?? So, I invested in a Suunto Vyper dive computer.
Obviously, it is ruggedized and has touch points that can be operated with gloves and under water. But no touchscreen, no colorful display, only a few, very basic animations. Still, there is a more or less complex algorithm running inside. While playing around with it, I found some interesting aspects.
User interface is about simplicity. Suunto uses a menu working with up/down and a select buttons. When a sub-menu is selected, it shows that you are now a level deeper in the menu tree but it keeps showing the parent menu name. Idea is to ensure you where you are. If you have understood this strategy, you are fine. Besides diving, no more functions. Everything is focused. For me, this reflects a philosophy which apps should follow: Being focused on their task.
The UI needs to work in its environment. The UI of the computer is a simple LCD which can be illuminated in the dark. Because of the LCD, there cannot be two different things in the same place if the computer is in different status. You always know where to expect what. If you go deeper in water, you lose colors down to the point where only blue is left. Without an active light source, colors play no role. Therefore, a LCD black and white display is fine. Think about the environment in which your app is used. How much of what makes sense when? Colors and strengths of ambient light, think about it. Sound and vibration, think about it.
UI should mean user guidance. One thing I am missing (and here a richer display would be a great help) is user guidance. The computer expects you to be an expert. It comes with secure defaults, so normally nothing should go wrong. But whenever you change the percentage of oxygen for a Nitrox dive, it asks you about the partial pressure of oxygen you would like to go for (the secure default is 1.4 bar). I am pretty sure that most people diving in the summer then storing the gear for the rest of the year will need a short guidance to remember the details. Here, additional interface power and the opportunity to get a short lesson would be nice.
CU
0xff

Defining the Architecture of Help in the Future

Hi…

 

I am currently working on defining an architecture for uniblue on a greater scope. The idea is to build a help system for the future.

Personally, I paraphrase the mission of uniblue as follows: “Enable consumers to get the outmost of their digital environment.” As usual, every word in this sentence has a deeper meaning. Obviously, we define the target audience – the consumer. What outmost means is somewhat obvious, too.

But digital environment needs to be defined. I think in the hay-days of Microsoft, this used to be the PC. It was the only digital device (on every desktop as stated by Microsoft). Today, it is your mobile device, your tablet, and less and less the PC. With this came the reduction of perceived complexity. I would argue that a major success factor for those devices are the fact that they are somewhat closed. They are reducing the degrees of freedom to configure and being programmed. This also reduces possible failure sources. To be successful in the consumer space, usability is key.

Looking in the future, the digital environment changes yet again. I would argue, it will loose its current face. Future computers will not easily be identified as such. We are talking about wearables like Google Glass, smart phone (but not as we have it today), smart home, smart car, smart city. Some call it Internet of Things (IoT), some call it internet of everything. This provides an explosion of complexity. We have more devices, more platforms.

We are currently laying out an architecture to answer this… great stuff to work on.

CU

0xff

 

Redefinition of Operating System

Hi…

if you would ask a consumer about the tasks an operating system has, she would pretty much argue from her own point of view. Problably, it would burn down to three major things:

  • Storing and providing access to my data such as pictures, music, e-mails, documents…
  • Providing access to the internet via hosting a browser…
  • Maybe some fun activities like a game or two…

If we follow this definition – which for sure is a non-CS-ish – we see where companies like Google with Chrome or Firefox with Firefox OS are heading to. And we also understand imediately why Microsoft still fights for the Internet Explorer.

Today, the browser becomes the UI framework of your operating system. The storage is pretty much in the internet. There is no real need to store anything locally, it might even be more interesting to store in the cloud. Because the connection between you and cyberspace is no longer the PC alone. You certainly do not want to lock your life into the PC at home.

If you now introduce a layer like Google Chrome or Firefox OS which is pretty much device independent, it can become your default way of interacting with your new operating system.

And by the way, sooner or later, Apple will follow Microsoft in panic …

CU

0xff

 

We are hiring…

Hi…

Junior Product Manager

Entrepreneur in einem Startup im Bereich Software Developer und Mobile Devices in einem globalen Unternehmen… fehlt noch ein Buzzword?? Dagegen ist jedes Trainee-Programm Kindergarten. Wer das Ding im Lebenslauf hat, sticht theoretische MBA-Schönlinge mit 5 Jahren Erfahrung im Beratungsunternehmen. Wer diesen Job macht, hat Spaß, Abenteuer, den Tanz der Kulturen, lernt Menschen kennen, lebt an der Bleeding-Edge-of-Technology, versteht was B2B2X wirklich heißt, braucht keine Drogen, lernt Miss Bridgestone persönlich (!!) kennen, baut Projekte, wird berühmt, hat ein Team-Interview überlebt, ist sportlich, kann Sonnenaufgänge wieder genießen, spielt mit Chuck Norris Fernschach, kann erklären was B2B2X wirklich heißt, trägt abgewaschene T-Shirts mit Werbung für Technologie, die es noch gar nicht zu kaufen gibt…

All das ist nur einen Klick weit weg…

https://jobwelt.telekom.com/jpapps/n/ext/jv/,00011896

So, jetzt Du…

CU

0xff

Zukunft der Desktop-Metapher

Hi…

<Updated: Danke an Nadine Zoar für die Hinweise 😉 >

Sascha Lobo hat es aufgegriffen, die Zukunft der Desktop-Metapher.

In Teilen bin ich ganz der Meinung von Sascha. In anderen nicht.Aber der Reihe nach…

Desktop-Metapher – Was ist das??

Als man in den 60er Jahren sich Gedanken über grafische Oberflächen von Rechnern gemacht hat (und nein, das war nicht Apple bei denen man diese Erfindung tätigte), lag es nahe eine Metapher zu wählen, die dem Benutzer bekannt war. Der allgegenwärtige Schreibtisch (aka Desktop). Es gab Akten (aka Files), Ordner (aka directories). Eine Akte gab es nur einmal und wenn ich sie zweimal irgendwo ablegen wollte, musste ich eine Kopie anlegen (typisch für Dateisysteme bis heute). Niemand wäre auf die Idee gekommen alle Akten in einen Ordner zu hängen und dann zu suchen, wenn man was brauchte. Heute: Wer Emails in Ordner sortiert, ist so 90er…

Auch der Bildschirm funktionierte wie der Schreibtisch. Ich konnte Papiere auf einander legen. Sie haben eine Z-Ordnung und überdecken einander. Zumindest in einem Aspekt ist das auch sehr objekt-orientiert. Für den Benutzer werden Daten und Funktionen auf diesen Daten in diesen Fenstern kombiniert.

…jetzt mal heute – Desktop-Metapher??

Heute hat der PC den Aktenordner weitgehend verdrängt. Ich erinnere mich noch, als ich vor Jahren einen neuen Rollcontainer bekommen habe, der ein Hängeregister hatte. Völlig sinnfrei, oder??

Somit hat – und da hat Sascha vollkommen recht – der PC seine Metapher-Mutter obsolet gemacht. Für uns ist heute ein Schreibtisch mehr wie ein PC, wie umgekehrt, oder?? Es wird also offensichtlich durchaus mal Zeit etwas neues zu machen.

Apple hat die alte Metapher sicherlich sehr erfolgreich mit dem iPhone verlassen. Das iPhone hat keine Z-Ordnung mehr. Ein Program hat das Display, damit genug. Die Applikationen sind das Ordnungskriterium, ein sichtbares Dateisystem in diesem Sinne gibt es nicht mehr. Auch Microsoft hat den Prozess schon lange eingeleitet: Suchordner mal als Beispiel. Mit dem Metro Design in Windows Phone kommt jetzt auch der Abschied vom Fenster.

Jetzt muss man aber anerkennen, dass der PC wie wir ihn heute kennen, ist optimiert auf die Desktop-Metapher. Die Maus wurde schließlich genau dafür mal entwickelt. Daher ist es irgendwie auch verständlich, dass die neue Form des PCs – der Tablet – sich irgendwie natürlicher mit einer neuen Metapher bedienen lässt. Und der alte PC sich nicht so wirklich einfügt.

..und der Browser??

Zunächst einmal hat der Browser mit alle dem nichts zu tun. Auch der Browser könnte durchaus eine Desktop-Metapher abbilden. Dafür gibt es schon einige Beispiele. Was neu ist, ist die Tatsache, dass man mit HTML5/CSS/JavaScript eine einigermaßen standardisierte Plattform für Benutzeroberflächen hat. Wie die Oberfläche aussieht ist eine andere Frage.

Offensichtlich hat die Idee, Benutzeroberflächen per Metasprache zu definieren ihren Charme. Mir fallen da Dinge wie Desktop Postscript und XAML ein; alles nicht super neu.

Was heißt das für Betriebssysteme?? Sascha meint ja, Betriebssystem lösen sich auf in der Browserwelt. Erstmal die Frage: Was ist eigentlich ein Betriebssystem?? Die Aufgabe des Betriebssystem ist es, den Rechner für Applikationen “aufzuschließen” und die Verwaltung von Resourcen zu übernehmen. Mittlerweile sind Betriebssysteme sehr reichhaltig und bringen natürlich auch eigene Applikationen für typische Aufgaben mit. Seit geraumer Zeit bieten Betriebssysteme Applikationen verschiedene Möglichkeiten das gleiche zu erreichen. Prominentes Beispiel ist POSIX. Windows – obwohl selbst meilenweit weg von Unix – konnte trotzdem Unix-Programme wenn sie POSIX kompatibel waren bedienen. Gleiches gilt im Prinzip für die Oberflächengestaltung. Was darf es sein?? Win32, XAML, HTML5, DirectX?? Alles hat vor und Nachteile und Einsatzgebiete.

Betrachtet man die Architektur von Windows, stellt man fest: Der Internet Explorer ist bis auf ein kleines Start-Progrämchen, schon lange Teil des Betriebssystems. Daher kann ich auch nur eine Version des IE haben, weil die Bibliotheken im Betriebssystem Windows eben nur einmal vorhanden sind. Architektonisch den Browser als Anzeigemaschine zu verwenden, ist also kein Hexenwerk.

Natürlich ist der Ansatz trotzdem radikal. Projekte wie Boot2Gecko (jetzt Firefox OS) erheben den Browser zur einzigen Möglichkeit Applikationen zu betreiben.

Leider muss ich Sascha auch widersprechen, was die Wichtigkeit des Betriebssystems in einer Browser-Welt betrifft. Selbst wenn für den Benutzer der PC sich vom MAC nicht mehr unterscheidet, unter der Haube ist das ganz anders. Nehmen wir mal Video als Beispiel. Oberflächlich kennt HTML5 ein Video-Tag. Also, Video Tag in die Website eingebaut und losgeht der Multimedia-Genuß? Nein, nicht ganz so einfach. Es gibt derzeit kein Video-Format was von allen Browser-Plattformen gleichzeitig unterstützt wird. Die Tatsache, dass das so locker aussieht für den Benutzer, hat der Entwickler durch mindestens zwei Video-Versionen bezahlt. Und ja, diese Codecs bringt das Betriebssystem mit…oder halt nicht. Auch richtig, je umsonstiger das Betriebssystem, desto weniger von diesen teilweise sehr happigen Lizenzen für Codecs werden bezahlt.

<Updated: Danke an Sascha Wolter>

Das wesentliche Ziel dieses Blog-Posts war es, eine klare Trennung zwischen der jeweils verwendeten Metapher und der unterliegenden Technik zu machen. Will heißen: Desktop-Metapher kann auch auf dem Browser laufen und umgekehrt.

Ebenso, und das war Sascha dann sehr wichtig, geht es bei all den unterschiedlichen Arten von Oberflächen darum,dem Benutzer den Umgang zu erleichtern. Daher wird auch in Zukunft eine Desktop-Metapher ihren Platz haben. Da Rechner aber zunehmend neue Umgebungen und Aufgaben erobern, macht es eben auch Sinn ganz neue Konzepte zu entwickeln.

CU

0xff

Hätte ich nicht besser sagen können…

Hi…

bin gerade über diesen Artikel gestolpert:

http://www.forbes.com/sites/danwoods/2012/06/21/how-att-adopted-apis-as-an-innovation-paradigm/

Ich hätte es nicht besser sagen können. Ich kenne keinen Vortrag zum Thema Zukunft, der ohne mobiles Internet auskommt. Soweit sind wir uns einig. Woher kommt dieses Internet? Auch klar.

AT&T befindet sich in exakt dem gleichen Problem wie sich eine Deutsche Telekom befindet: Man ist groß, man bewegt sich in einem sehr regulierten Markt, man hat es mit agilen Konkurrenten zu tun, von denen die meisten vor 15 Jahren noch nicht existierten oder was ganz anderes gemacht haben und – zu guter letzt – man hat die allerbeste Startposition.

Für mich sind auch APIs ein Schlüssel zum Glück. Offensichtlich für Rene Obermann auch 😉

CU

0xff

PS: Erste Schritte sind gemacht http://www.heise.de/developer/meldung/Developer-Garden-Funktionen-mit-Visual-Studio-entwickeln-1626572.html

 

B2B2X – What the heck…??

Hi…

Genau so eine Email habe ich bekommen. Kaum hatte ich meinen neuen Titel eingetragen, bekam ich Glückwünsche und die Frage, was jetzt eigentlich B2B2X heißen solle. Gute Fragen verdienen gute Antworten.

Zugegeben der Begriff ist etwas sperrig. Aber ihr seid in besten Händen: Ich habe Physik studiert. Zunächst einmal zur Aussprache. Der Begriff muss englisch ausgesprochen werden, sonst gibt er keinen Sinn (OK, bisher habe ich noch kein „Aha“ von Euch erwartet). Dann lautet er „Be to Be to eX“. Nächste Überraschung: Be steht für Business. Jetzt wird es aber ernst.

Wir befinden uns in Software Ecosystems [1]. D.h. wir haben Endkunden im Consumer Bereich und im Business Bereich. Das X soll für Consumer oder Business stehen.

Eigentlich müsste der Begriff daher so aussehen:

Jede Zeile in diesem Vektor (das mehrzeilige Ding in geschweifter Klammer) steht für ein Ecosystem [2] [3]. Innerhalb dieser Ecosysteme gibt es die „App-Economy“ [4]. Also Entwickler von groß bis ganz allein, die Apps schreiben für Consumer oder Business. Die Telekom ist Teil dieser Ecosysteme, logischerweise als Telko; aber auch als App-Developer. Soweit ist das erst mal nix Neues.

Was könnte man aber jetzt diesen App-Developern noch Gutes tun (und das meint das erste B)?? Wir denken Dreierlei:

(1)    APIs. Die Telekom hat schon sehr lange eigene APIs veröffentlicht. Zu finden sind diese im Developer Garden. Schaut man sich das Angebot an, denkt man unweigerlich „Guter Anfang“. Ja, da gibt es viel mehr. Wahrscheinlich braucht es nur jemanden, der ein wenig kitzelt und eine entsprechende Plattform anbietet. Voila, unsere erste Aufgabe. Weiterhin sollte die Telekom aktiv an der Standardisierung von solchen APIs mitarbeiten. Ja, tun wir.

(2)    Code-Samples, Whitepapers, SDKs, fertige Klassen, kleine Beispiel-Apps – rund um das Thema, wie man diese APIs und anderes nutzt. Damit können wir es den Entwicklern so einfach wie möglich machen unsere APIs zu nutzen oder einfach generell Software zu entwickeln.

(3)    Business-Modelle. Derzeit werden viele verschiedene Modelle gehandelt: Werbe-Finanziert, Freemium, Lizenz, Marketing-App, Affiliate-Marketing… So richtig toll ist das Alles nicht. Man muss meist verschiedene kombinieren, um ein einigermaßen Auskommen zu haben. Einfach ist meist auch anders. Nun ja, da hätten wir auch ein paar Ideen.

So, macht jetzt B2B2X Sinn?? Wie die einzelnen Elemente in Realität aussehen, das erzähle ich ein andermal.

CU

0xff

Bezüge:

[1] D. Dhungana, I. Groher, and E. Schludermann, “Software ecosystems vs. natural ecosystems: learning from the ingenious mind of nature,” ECAS Conference, pp. 96-102, 2010.

[2] P. R.J. Campbell and F. Ahmed, “An Assessment of Mobile OS-Centric Ecosystems,” Journal of theoretical and applied electronic commerce research, vol. 6, no. 2, pp. 11-12, 2011.

[3] R. C. Basole and J. Karla, “Entwicklung von Mobile-Platform-Ecosystem-Strukturen und -Strategien,” Wirtschaftsinformatik, vol. 53, no. 5, pp. 301-311, Aug. 2011.

[4] D. MacMillan, P. Burrows, and S. E. Ante, “Inside the app economy,” Business Week, New York, pp. 2-7, 2010.

 

Software Ecosystems – Ein Kommentar

Hi…

Ein Artikel von Burkard, Widjaja und Buxmann „Software Ecosystems“ http://www.springerlink.com/content/90l2342413q38153/ (SlideDeck: http://wifo4.bwl.uni-mannheim.de/fileadmin/files/presentations/3EP_Burkard_ea.pdf)  hat mein Interesse geweckt.

Im Wesentlichen wird das Thema Software Ecosystems (oder kurz SECO) sowie die unterliegende Literatur reflektiert. Dabei werden drei wesentliche Rollen in solch einem SECO unterschieden:

Zunächst der „Hub“, sprich ein Marktplatz mit einem gewissen Fokus. Der Artikel verschweigt etwas, dass aus der Historie Plattform unabhängige Marktplätze wie tucows bekannt sind. Die modernen, gerade im Zuge von Mobilfunk und Cloud entstandenen und natürlich sehr erfolgreichen Marktplätze haben zumeist einen sehr klaren Plattform Fokus. iOS, Android, Windows Phone, Salesforce, Azure, SugarExchange sind ein paar Beispiele. Vielleicht ist das gerade das Erfolgskonzept. Nicht nur eine sehr enge Integration in die jeweilige Plattform, sondern die klare Positionierung in den Augen der Kunden als der „One-Stop-Shop“ (mal iTunes und iOS als Beispiel, WP macht es nicht anders).

Auch die Strategien der „Hubs“ (basierend auf Bosch (http://janbosch.com/Jan_Bosch/Publications_files/SPLC09-SoftwareEcosystems-Accepted.pdf) – Keystone, Physical und Value Dominator genannt) würde ich etwas anders fassen. Zunächst würde ich den Zustand „uncontrolled“ und „guarded“ unterscheiden. Im PC Markt hatten wir jahrzehntelang einen unkontrollierten Zustand (man konnte lustig installieren was unter die Maus kam, jeder konnte Software überall in jedem Zustand und mit jeder Absicht veröffenlichen). Android gleicht auch sehr stark diesem Konzept. Der große Vorteil sind geradezu kambrische Zustände, die zu einem der kambrischen Explosion vergleichbaren Effekt führen können (damals waren die Zustände auf Erden so paradisisch, dass sie eine nie wieder da gewesene „Explosion“ an neuen biologische Arten hervorbrachten). Also, uncontrolled heißt innovativ, schnell, aber auch unsicher, eine enorme Menge qualitativ schlechter Software und ein paar Diamanten dazwischen. Konsequenz: Die Verteidigung der Sicherheit muss auf dem Client stattfinden und es werden Mechanismen notwendig, die Diamanten zu finden. Also, es muss ein Nachtwächter her, ein Guard. Apple und Microsoft haben von Anfang an die Rolle des Wächters gespielt und Qualitätskriterien definiert und durchgesetzt. Android folgt ein wenig, mal sehen was noch machbar ist. Prinzipiell wird es weniger Innovation auf einer bewachten Plattform geben und sie wird auch langsamer sein, dafür sicherer und mit höherer Qualität. Natürlich kann die Rolle des Wächters auch mißbraucht werden. Man kann sich unliebsame Konkurrenz vom Halse halten. Dann wird der Wächter zum Tyrann. Aber immer nur in bestimmten Bereichen und immer nur auf Zeit. Der Tyrann riskiert, dass sein Ecosystem rebelliert und sich Alternativen schafft – einen Weg um den Wächter herum oder ganz übel, in ein neues Ecosystem abwandert.

Update: Siehe hierzu auch http://www.scielo.cl/pdf/jtaer/v6n2/art06.pdf

Weiterhin benennt der Artikel den Nischenanbieter, der spezialisierte Produkte rund um die Plattform anbietet und über den Marktplatz vertreibt. Leider verwischt die Definition mehr, wie dass sie erklärt. Ich würde nähmlich drei Arten von Nischenanbieter sehen. Zunächst den, den wir uns alle darunter vorstellen: Einen Software-Hersteller (Independent Software Vendor oder ISV), der eine App baut und über den Marktplatz vertreibt. Im Artikel wird ein wenig auf die Erlösmodelle eingegangen, aber im Wesentlichen nur auf die Form Lizenz. Darf man MixPanel vertrauen, wandelt sich das gerade extrem (http://www.surfmobee.com/?p=3023 ) . Das Problem ist, dass auf einem uncontrolled Ecosystem namens Android der Pogo abgeht und leider Lizenz hier nicht funktioniert. Ich habe mal die Zahl 95% Piracy gehört, da funktioniert Lizenzen verkaufen nicht wirklich. Themen wie In-App-Purchase, Werbung, Pay-Per-Use werden plötzlich interessant.

Neben dem Software-Hersteller würde ich noch Content- und Service-Anbieter sehen. Als Beispiele für Content-Anbieter sehe ich Verlage, Social-Networks, Wetter-Dienste, Suchmaschinen… Sie bieten per API Zugriff auf ihre Inhalte für entweder eigene Apps (damit treten gleichzeitig als ISV auf) oder Apps anderer Hersteller. Als Service-Anbieter würde ich alle sehen, die Transaktionen durchführen. Typischerweise also E-Commerce aber auch Telcos, die SMS verschicken, oder E-Government. Der wesentliche Unterschied wird im Geschäftsmodell liegen. Als Service-Anbieter habe ich es einfach, weil die Transaktion mit Geld zu tun hat und ich daran partizipieren kann. Als Content-Anbieter muss ich die Umsonst-Mentalität des Internets überwinden; direkte Verwertung ist noch sehr schwer, indirekte über Werbung nicht immer profitabel.

Durch die Existenz dieser zweiten Klasse der Nischenanbieter, den Content- und Service-Anbietern, existiert plötzlich noch ein weiterer Marktplatz. Es geht um APIs und fertige Software-Schnippsel (für OO Developer: Components), die diese Content- und Service-Anbieter ihren Kunden, den ISVs, offerieren müssen. Ein Ecosystem verdient seinen Namen meines Erachtens erst dann, wenn auch Content- und Service-Anbieter sich für diesen Bereich interessieren. Sie stellen dann für die Plattform spezifische Komponenten zur Verfügung und machen es den ISVs einfach diese zu nutzen.

Nachfolgende Grafik soll den Flow mal visualisieren. Blau sind dabei App-, gelb Komponentenströme.

Bliebe noch die Frage nach dem Kunden als solchen, aber das ist ein ganz eigener Post.

CU

0xff