Ruhe vor dem digitalen Storm

Deutschland steuert auf seinen Untergang zu, weil hier die Digitalisierung scheinbar nur aus diesen zwei Teilen besteht:

  • flächendeckendes schnelles Internet,
  • mehr PC in den Schulen.

Und das Problem besteht nicht einmal darin, dass es zunehmend weniger Bedarf an Internet auf dem Land gibt, weil mehr und mehr Menschen in die Stadt ziehen. Und nicht darin, dass es nicht mehr zeitgemäß ist, PC als öffentliche Kommunikationsmitteln anzusehen: sie sind mittlerweile so persönlich wie Zahnbürste, so dass man die Nutzung von eigenen PCs und Handys in der Schule zulassen sollte, statt das Geld von Steuerzahler für schuleigene PCs auszugeben.

Das eigentliche Problem ist, dass die Digitalisierung eine Revolution der Gesellschaft ist – viel größer, als die Erfindung von Buchdruck war – und dass die Politiker in Deutschland das nicht begreifen.

Die Erfindung von Buchdruck spaltete die Kirche (was so “nebenbei” den 30-jährigen Krieg mit 6 Mio. Toten verursachte) und war eine Voraussetzung für die nachfolgende Bürger-Revolutionen und Untergang von Monarchien, weil Menschen durch die Alphabetisierung und Entstehen vom Massen-Bildungswesen nicht mehr so leicht regierbar geworden sind. Die Wissenschaft entwickelte sich, was die enorme Weiterentwicklung von Medizin und Technik zur Folge hatte. Viele etablierten Geschäftsmodelle und Berufe gingen unter, weil im Prinzip jeder alles lernen konnte, sobald es ein Lehrbuch dazu gab.

Bücher gab es auch vor dem Buchdruck. Der Buchdruck hat nur die Verbreitung von Büchern billiger gemacht. Die Digitalisierung ist gewaltiger. Nicht nur ist die Verbreitung von Informationen praktisch kostenlos geworden. Sondern auch das Erstellen von der Information hat sich verbilligt. Viele Informationen lassen sich automatisch durch Algorithmen, teilweise auch mit K.I. oder neuerdings mit IoT erstellen. Wir steuern auf die Welt zu, wo jeder Zugriff auf alles haben kann, was überhaupt möglich zu erfahren ist.

Und das wird alles noch einmal umkrempeln (oder, wie man in Silicon Valley sagt, disrupten).

Nein, die Digitalisierung von Massenmedien ist nicht, die Web-Seiten mit elektronischen Kopien von Zeitungen zu erstellen. Eine Zeitung als solche ist nur deswegen entstanden, weil es billiger war, mehrere Artikel auf einem großen Blatt Papier zu drucken und zu liefern, als die Artikel einzeln zu verbreiten. Das ist nicht mehr so. Somit abonniert man keine Zeitungen mehr, sondern einzelne Autoren. Und ja, man tut es auf Facebook oder Youtube, und nicht auf faz.de.

Nein, die Digitalisierung vom Finanzamt heißt nicht, dass man die gleichen Formulare auch online abschicken kann. Sondern, dass man die Werbungskosten und die außergewöhnliche Belastungen direkt in seinem Online-Banking an das Finanzamt weiterleitet. Und dass man Sekunden später eine Steuererstattung hierzu überwiesen bekommt.

Nein, die Digitalisierung von Bildung besteht nicht darin, Schulen zu digitalisieren, sondern sie abzuschaffen! Nichts ist schlimmer für die Kinder, als eine Massenausbildung. Millionen von Menschen regen sich wegen Massentierhaltung auf, schicken aber ihre Kinder artig in die Schulen, wo ihr Gehirne mental vergewaltigt werden. Das aktuelle Schulsystem ist schlimm für die schnelldenkenden Schüler, die sich zu Tode langweilen müssen. Es ist aber viel schlimmer für die langsamdenkenden Kinder und für Legastheniker, die ständig frustriert sind und irgendwann anfangen, sich zu schämen und sich als vermeintlich “minderwertig” abzuschreiben. Stattdessen wird jedes schulpflichtige Kind an MOOC Kursen teilnehmen, in dem Tempo und Umfang, die für es am optimalsten ist, und die digitale Nachweise dessen an die Jugendämter schicken. Das Erlernen von praktischen Fertigkeiten und die Beherrschung von dem eigenen Körper (Sport, Tanzen, Malen, Hobeln, Dechseln, Mauern, Radfahren, Reitern usw) gehört meiner Meinung nach nicht zur Allgemeinbildung und kann auf Kursen oder ggf. auf Praktika in den Firmen erlernt werden.

Nein, die Digitalisierung von privaten Unternehmen besteht nicht nur aus papierlosem Büro und Verteilung von Informationen über Slack statt mit einem Aushang. Stellt euch vor, die Arbeitnehmer würden die Möglichkeit erhalten, vor der Einstellung sowohl in die Firmenbücher zu schauen, als auch zu lernen, wie ihre zukünftige Chefs ihre Entscheidungen treffen und sich generell verhalten. Mit nur ein wenig mehr Transparenz würden wir all die Office-Politiker dort schicken, wo sie hin gehören – in die Geschichtsbücher.

Nein, die Digitalisierung von Demokratie ist nicht, dass jede Partei eine Web-Seite mit ihrem Programm erstellt. Die Parteien sind nur deswegen entstanden, weil die Wahl-Kampagnen für Einzelpersonen zu teuer sind. Sie sind zu teuer, weil a) es für die Wähler so kompliziert und aufwendig ist, wählen zu gehen und b) weil die Wähler für mehrere Jahre eine Wahl treffen müssen. Das erste Problem ist mit Online-Wahlen bereits gelöst. Das zweite Problem könnte gelöst werden, wenn man nicht mehr jede 4 Jahre, sondern täglich jeden Politiker (ab)wählen kann. Das klingt kompliziert für den Wähler, ist es aber nicht, weil er nicht mehr riesige mehrjährige Programme lesen muss, sondern nur noch das Geschehen der letzten Woche bewerten muss. Die Wahlen sind deswegen so selten, weil es früher zu teuer war, die Wahlzettel zu drucken, sie zu verteilen, dann sie wieder einzusammeln, zu zählen, die Wahlprogramme zu drucken, und verteilen usw. Das alles ist heute kostenlos möglich.

Und weil unsere Politik und unsere Gesellschaft gar nicht begreifen können (begreifen wollen???), wie gewaltig die Digitalisierung ist, die überall in der Welt passiert und von manchen Global Players auch entsprechend umfassend umgesetzt wird (z.B. in China), denke ich, dass wir uns auf die schlimme Zeiten und mehrjährige hybride Kriege einstellen müssen. Ja, irgendwann geht die heutige Generation von Politikern und kommt die nächste, die ihre Pubertät online ausgelebt hat. Aber dann wird es unaufholbar zu spät.

Und es hilft nichts, Milliarden von Steuergelder für Förderung von K.I. auszugeben. Denn das Hauptproblem ist bei uns nicht, dass wir zu wenig K.I. haben, sondern dass niemand unter den Entscheidern bereit ist, es auch wirklich disriptiv einzusetzen.

MVP, oder?

Ich mag es nicht, wenn Begriffe falsch verwendet werden. Menschen, die sorglos mit Wörter ungehen, sind auch sorglos in ihrem Denkprozess, ziehen deswegen häufiger falsche Rückschlüsse und bringen sich und ihre Umgebung (also auch mich) unnötig in Gefahr.

Heute möchte ich über das MVP sprechen (Minimum Valiable/Viable Product).

Zunächst einmal ist es ein Product – also etwas, für was Kunden Geld oder Geld-Ersatz (z.B. Informationen, Leads, Traffic usw) bezahlen können. Also nicht etwas, wo die Kunden nur sagen können, sie hätten dafür sogar Geld bezahlt. Und nicht etwas, was die Kunden lieben, oder was sie gut finden oder den Freunden empfehlen. Nein. Ein MVP muss von den Kunden tatsächlich gekauft werden können – und wird dann auch tatsächlich geliefert und seiner Bestimmung nach verwendet. Wir merken uns: Fake Doors sind kein MVP, weil sie nicht gekauft und nicht geliefert werden. A/B Tests sind meistens auch kein MVP, weil sie kein Produkt, sondern nur eine Seite oder ein Feature des Produkts testen. Nur wenn man einen A/B Test so durchführt, dass man selbst ein eigenes Bier braut und es neben einem Markenbier in einen Ladenregal stellt und verkauft, und danach die Conversion berechnet, kann man über einen MVP sprechen.

Eine weitere Konsequenz, die wir uns merken sollten: wenn eine Organization zu viele Produkt-Managers beschäftigt, was meiner Erfahrung nach des Öfteren der Fall ist, verantwortet nur ein Bruchteil von denen ein Produkt. Solche Sachen wie Startseite, Login, Payment, Detail-Seite sind alle keine Produkte, weil sie von den Kunden nicht gekauft werden. Somit werden die Produkt-Managers zu den Feature-Managers degradiert und können eigentlich nur in seltensten Fällen MVPs entwickeln.

Dann gibt es auch dieses “Minimum Valuable”. Das Produkt Auto hat einen Motor, Räder und einen CD-Player. Ohne CD-Player wird dieses Produkt zu einem MVP. Ohne Räder oder Motor, wird das Auto womöglich auch verkauft (das ist dann die Frage des Preises), ist aber kein MVP, weil das Produkt hiermit nicht die Masse der Kunden trifft. Anders gesagt, wenn die Kundenbedürfnisse als eine mehrdimensionale Gauß-Kurve vorstellbar sind, beinhaltet das MVP die Features innerhalb einer Standardabweichung von dem Mittelwert – also nicht so viele Features, dass die Mehrheit der Kunden zufrieden sind (das wäre dann das klassische Produkt), sondern nur die Features, mit denen man mit dem geringsten Aufwand eine erhebliche Kundengruppe erreichen kann. Wir merken uns: wenn wir weniger Sprints haben, als nötig wäre, um etwas Vernünftiges sinnvoll zu entwickeln, wird das Ergebnis nicht automatisch zu einem MVP. Sondern womöglich zu einem Auto ohne Räder – etwas, was 0,3% der Menschen kaufen würden und ist somit kein valides MVP.

Und zu guter Letzt, gehört zu jedem Begriff auch die bestimmungsgemaße Verwendung. Wann setzt man ein MVPs ein? Man hat eine Produktidee und möchte testen, ob sie gut ankommt, ohne dabei Geld und Zeit für Marketing-Research und Umfragen, oder vollwertige klassische Produkte ausgeben zu wollen – in der Situation, wo Fake Doors keine aussagekräftige Testergebnisse liefern. Wir merken uns: wenn ein Fake Door ausreichend ist, soll man lieber es machen, weil MVP teurer ist, denn es muss gebaut und geliefert werden. Fake Doors können aber z.B. dann nicht eingesetzt werden, wenn Kunden zuerst eine kostenlose Version nutzen müssten, um überhaupt für sich das Bedürfnis zu entwickeln, so ein Produkt zu verwenden – bevor sie zu einer kostenpflichtigen Version geführt werden.

Es ist wichtig zu verstehen: MVP ist deswegen ein Produkt, weil man eben eine Produkt-Idee damit testet. Soll eine Feature-Idee getestet werden, gibt es dafür andere Möglichkeiten: der klassische A/B Test oder eben die Fake Doors. Und anders herum: muss die Produkt-Idee nicht getestet werden (weil sie z.B. von der Konkurrenz bereits benutzt wird), braucht man auch kein MVP – nicht jede Produktentwicklung soll unbedingt eine MVP-Phase beinhalten.

Warum ist es mir wichtig, zwischen A/B Test und MVP zu unterscheiden? Wenn ein A/B Test erfolgreich ist, wird ein bestehendes Produkt um 3% bis 10% verbessert. Wenn ein MVP erfolgreich ist, bekommt man einen weiteren Standbein – ein weiteres Core-Business, was im Idealfall sogar unabhängig von den bestehenden Produkten funktioniert und so die Marktrisiken diversifiziert. Auch wenn 100% von einem MVP in Euro ausgedruckt weniger sein können, als die 3% von dem Core-Business, sprechen wir hier um ganz unterschiedliche Entwicklungen. Im ersten Fall will man mit viel Aufwand von 99,99% auf 99,999% aufsteigen. Im zweiten Fall geht man in die Breite und macht quick wins.

Die traurige Realität ist in Deutschland so, dass MVP sich fast zu einem Kargo-Kult avanciert hat. Man sieht sich nur so gerne als der zweite Steve Jobs, und möchte mit den gleichen Toys spielen, wie die Big Boys in Silicon Valley. Der beste Weg zur Besserung wäre, zunächst einmal mit sich selbst ehrlich zu sein und aufzuhören, seine eigene Deliverables als MVPs zu bezeichnen.

Atrocities of Software Architecture

Five years ago I’ve written my definition of a software architecture and have compared two alternative architectural designs: Monolyth vs SOA. For each design, I gave its advantages and disadvantages.

Now, five years later, I’ve learned a little more and want to amend this topic.

It has turned out, that in the organizations in the Enterprise Autumn phase, many decisions are made not out of best fit for the situation, but purely due to political reasons. Besides, due to Murphy’s Law, some implementors of the architecture have achieved their level of incompetency.

This can lead to a situation when additional disadvantages (for the enterprise) can emerge, which are not intinsic to the chosen architecture, but are just results of a wrong practical implementation strategy or political processes. Therefore, when describing and comparing possible advantages and disadvantages of some architectural design, for a proper decision, you also have to take into account its possible atrocities.

Atrocities of a Monolyth

  1. One usual atrocity of a monolytic application is the insisting on full re-test of the whole application on each and every release. Even though it is possible to retrieve the list of changed files and therefore exclude large parts of the application unaffacted by the change from retesting, people could reject that idea, thereby forcing many parallel developments to wait for a long time to be released,  as well as wasting the time of testers.
    To be able to decide about skipping some parts of the app from retesting, you need a) to know exactly what code is reused where, that is, you need to be able to know the source code of the whole app and be able to read code diffs quickly – not a skill that is completely impossible to learn (look at Linus Torvalds as an example) and b) want to take some minor risks (below 1% of chance) in order to facilitate more product lauches per year – something that people are told not to do, especially in the Enterprise Autumn phase, where the fear of the founders to damage the flywheel overweights their need to innovate.
  2. Another atrocity of the Monolyth is reusing it for any other software made by the company. You want to develop a new product, quite different from the first one, to become a second flywheel? No problem, we will put it inside of the existing Monolyth, because well, we can reuse some unimportant code from there (like the “about us” page and the ORM framework). Thus, a chance is missed to create a completely new project, which is not dependent on the first one and therefore that can be deployed independently.

A properly implemented Monolyth tends to be eagerly and on every suitable occasion splitted into several interdependent Monolyths. Creating a copy of the app in another language? New Monolyth. Creating a new area of the app not tightly interconnected with the other parts? New Monolyth. Besides, a properly implemented Monolyth would aggresively defend all opinions asking for full re-test on each update.

Atrocities of SOA

  1. M. Conway has stated the following law in 1967: “organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations.” In case of the microservices, people would assign sub-teams to own one or several services. Because services are usually designed to be very small, as a result, changing one simple thing on the web site, requiring changing of several services, would make from it a huge project including very slow and expensive coordination of 3 teams (eg. 15 developers).
    This atrocity alone would lead to even longer time-to-market cycles compared to the monolyth. In a properly implemented SOA, every developer can develop any (or most) of the microservices, therefore, it is normal, for one team to change several services in just one week.
  2. Another atrocity is the wish to make everything to be a RESTful microservice. Some reusable modules, cloud services and databases have other interfaces, be it RPC, Protobuf, AMPQ or proprietary protocols. These communication protocols are carefuly designed, sometimes in the course of several decades, to provide imporant run-time properties (eg. automatic failover and cluster management, reduced overhead on serialization and connection establishing, coonection pooling etc). There is not so many reasons to implement a REST wrapper around them.
    In a properly implemented SOA, RESTful services are usually introduced only due to these two reasons: a) we want to communicate to “fat clients” (eg. mobile apps, modern HTML5/jQuery apps) over the public Internet, or b) we have some important business logic, which cannot or should not be encapsulated in the database (eg. using stored procedures or views), so that we need to develop and host a separate service process anyway.
  3. Yet another atrocity is that some teams would consider a microservice to be a deliverable (a completed piece of work, even a product), whereas a service is similar to one OOP class or package / module / assembly, that is a technical module, just a part of a product. You will never start creating a product with a service. In a properly implemented SOA, you will conceive and develop the UI and UX first, derive the API for the service according to the calls the frontend needs to made, and then use or develop the corresponding service or services.

Common atrocities

  1. Over-Engineering. If you imagine quality to be a number from 0 to 100%, some people are unable or unwilling to deliver any given quality level. They can just give the level 0% or the level 100%. What real world business situation usually requires is the level of 60%, sometimes being dropped to 30%. A properly run software development organization can deliver any required level of quality.
  2. Death by Security. If you imagine security to be number from 0 to 100%,… see above.
  3. Checklist-oriented development. Some people do things described in the checklists, formal quality criterias or common conventions, without checking first whether these things matter in the particular situation, do they add up to some desired property of the software, or maybe even counter-productive?
  4. Mandated Architecture. In the year 2018, it is impossible to mandate software architecture by a HiPPO, nor enforce it using architectural nazis running around with whips. If tried to do so, the architecture will invariably mutate to some of the atrocities described above, when implemented by the people who either a) don’t agree with it or b) don’t understand how exactly this architecture is going to solve their pains. A proper architecture is always something everybody unanimously (100%) agree to be The Good Thing to do, and usually it can only evolve from the trenches, not mandated from above.

Summary

In the year 1975 when I was just born, Frederick P. Brooks has already learned about software development enough to write his essay “There is no silver bullet”. Applying this principle to the architectures, one could say, any theoretical advantage of any architecture can be missed by a poor execution. Or, like Derek Sievers uses to say, idea is nothing, execution is everything.

My stance on privacy

Making decisions is important part of life. Good decisions can improve, bad decisions can ruin life. Historically, people have used their intuition to make decisions.

With the improvement of computing and data processing, people have gradually started to use data to measure decision quality and to improve it. In business setting, this is known as business intelligence. Some people are also using it to decide about their personal life.

With the raise of Big Data and AI, data is not only feed to humans to assist them making good decisions, but also AI systems, trained according to goals set by humans, have started to make decisions on their own, either without or with some very limited human involvement.

This all has changed the role of data and increased its value. Suddenly, we have to consider, how our own data is collected and processed. While nobody would mind sharing the fact they are smoking to the whole world only 100 years ago, people today would object against it, because they worry their health insurance company would use this data to make a decision and to increase the insurance fee.

If we want to infuence data-based decisions made about us, we have three ways:
1) not sharing relevant data about us,
2) having law preventing the use our data to make specific decisions, or
3) use our own data and make our own counter-decisions

In the example above, we either
1) stop sharing the fact we’re smoking to the world, or
2) we vote for law makers who will pass a law prohibiting health insurance companies to vary their fee from person to person, or
3) we use the data about the insurance company to find out that the surplus of extra fees gathered from smokers was spent to pay bigger bonuses to the management, and left this company to a competitor. This option would require laws forcing companies and governments to be reasonably transparent about their data, as well as availability of competition on the market.

Now, it is important to understand that data-based decisions don’t need to be always bad for us. As a non-smoker, I like the idea to charge them more than average for health insurance, and as an overweight person I’m ready to pay more than average myself. And I like that people with small income pay much less taxes. And it would be nice if the fee in my wrong parking ticket would consider the fact that in the 99,9% of cases I pay for parking my car. And I have stopped watched TV because I can’t stand this annoying, un-personalized and sometimes insulting advertisement – I really like the advertisements Facebook and Google are showing me.

So, to benefit from this kind of decision making, I need to share my data. Therefore I find it pity that current european law-making in this area is mainly focused on making sharing of data more harder and complicated.

If nobody would share data, nobody would get hurt by some data-based decision. But also nobody would benefit from it. So our digitalization level will remain to be blantantly low and our decisions will still be made by some guts feeling like in the stone age.

I don’t think it is reasonable trying to stop data sharing. They say, when the first cars hit the roads of the cities, and the first car accident deaths happened, the law makers have issued a law requiring a person with a red flag and drums to march in front of the car, to warn people and horses. I could imagine this could prevent deaths efficiently, but this has undermined the whole idea of driving cars.

Today, we as a society have accepted many thousends of car accident deaths and injuries per year, because the benefits cars provide to the people and to the economy have far overweighted the risks. I think, the same process will happen with our data.

We will be sharing our data, in the future, much more than we’re doing it now, willingly or unwilligly, and we will have to learn how to deal with it. Our law today prevents collection and storage of the data. The future law will concentrate instead on regulating the decisions that are being made based on the data, making it is illegal to make unfair decisions, and making the data of the decision-making entities reasonably transparent to the public.

Another issue I want to point out in the current EU legislation is the definition of so-called personal data. As we all know it is the data that identifies or can identify a person. Let’s say, an email address. If a website would store email addresses entered by their users, this information is considered to be personal data and is thoroughly regulated. But what is the risk of storing some email address in some database? If nothing else is stored there, the worst thing that could happen is that somebody would send some spam to this email address, or try to phish corresponding password.

But let’s now say, for instance, besides of the email address we would store the person’s income. Income is not personal data per se, so that no additional regulations would apply in this case. But the risk of abusing or leaking this information is much greater!

Another example: let’s now replace the email with the ip address, so now we have a table of ip addresses and their salaries. According to the German regulators (this is not in the GDPR itself) the ip addresses are personal data. But leaking of this information would lead to virtually no risk. Neither bad web site owners nor hackers have enough capacity to map ip addresses to real persons, at least not in a scalable way for massive amounts of the data. Still, according to the law, this data will be protected in the same way as the data containing email adresses.

My suggestion to that is to abandon the “personal” from the future regulations. There are just data owners, who share their data to somebody else, and this somebody else will have to comply to some set of rules (for example, must disclosure all the data used to make a specific decision), no matter what kind of data has been stored and processed.

Smart UX

These are the levers to open subway car doors:

If you pull them during the move, nothing happens, because they are locked for safety. Also, no indication to you as a user will be displayed. Also, there is no indication about whether they are currently locked or unlocked. If you are an experienced subway car doors user though, you can hear the sound of unlocking and then understand that you can now pull the levers.

And this is the button to open doors of the new subway car:

They have added a visual indication of whether the doors are locked or unlocked, the LEDs around the button. But there is more in it, the feature that I would argue belong to the new generation of the Smart UX, a combination of Smart Data and UX.

If you look at the old lever system from the data perspective, the user is giving you the signal about his intention to open the door. If the door is locked, safety of the user is ensured by not opening the doors, but also his signal is not used and it gets lost.

As for the new button, you can push it also when the car is moving and the door is locked. The door will use this signal to understand your intention, to remember it, to indicate to you using a special combination of the lighting LEDs that it knows you want to exit, to wait until the car stops at the next station, and then to unlock itself automatically.

Not only the Smart UX is more comfortable for the user because it reduces the amount of interaction required to open the doors, as well as the amount of knowledge about the current lock state required to be able to operate the doors successfully. But also the robotic system shows more respect to its human user by acknoledging his presence, remembering that the user wasn’t successful at the last interaction, and being polite and helpful by trying to predict his next actions.

I’m not saying that the new button is in any aspect better than the old levers. It could be that the levers are easier to understand by people who maybe arrive from 3rd countries, never have seen round buttons before and don’t come to the idea that they can be pressed. And the levers are more similar to usual door handles and thus easier to understand by that category of people. Also, in case of a malfunction, the doors have to be unlocked and pushed aside manually and mechanically – operating the levers could be easier than trying to open the doors without any handles.

What I’m saying is that a modern, Smart UX considers any user interaction as a data signal, exposing the true user intention, and it doesn’t waste any single bit of this signal, but uses it to build up a mental model of the user intention and to act according to it.

Crime fighting idea by Victoria Reicher

Prisons help only little to improve the quality of the population. A better punishment of crime could be the higher education.

For the theft we should sentence to a compulsory technical education in a college, for armed robbery to a compulsory technical education in an university, for murder to the medical education, for corruption or theft in especially large amounts, to a PhD. You will sit in the university until you graduate, no parole, no amnesty.

In the case of repeated crime we should sentense them to be the teaching staff. And then they will be able to get out only after all their students have received the diplomas…

Singularity 1

Der technologische Fortschritt läuft immer schneller, so dass der Gap zwischen dem “Modernen” und dem “Bewehrten” immer größer wird. Eigentlich bereits jetzt so groß, dass die Verständigung zwischen den zwei Welten teilweise nicht mehr möglich ist.

Ein Beispiel dazu ist die vom Dobrindt angestoßene Ethik-Kommission, die sich letzte Woche gesammelt hat, um festzulegen, was (so wörtlich) “die Programmierer dürfen und was nicht”, wenn sie die Algorithmen für die selbst fahrenden Autos schreiben. Die Vorstellung der Politik, dass die selbst fahrenden Autos tatsächlich irgendwo den Code nach dem Motto “if rechts(is ein Fussgänger) then fahre(links);” haben, ist dermaßen realitätsfremd, dass einem zunächst einmal die Worte fehlen.

Im besten für die Ethiker Fall (der ziemlich unwahrscheinlich ist), ist dort das System in zwei Teilen aufgeteilt:
a) Erkennung einzelner Objekte aus einer Menge der farbigen Pixel
b) Vorhersage der relativen Positionen und Geschwindigkeiten dieser Objekte, relativ zum eigenen Auto, um rechtzeitig bremsen oder ausweichen zu können.

Dabei könnte es sein, dass man die erkannten Objekte klassifiziert (“Haus”, “Mensch”, “Auto”), um den Punkt “b” besser vorhersagen zu können. Das muss aber nicht sein, weil man allein aus dem Volumen der Objekte (angenommen eine durchschnittliche Dichte) ihre Masse und dementsprechend ihre Trägheit gut genug abschätzen kann.

Viel wahrscheinlicher ist aber, dass man für die selbst fahrenden Autos der Zukunft Deep Learning einsetzt. Beim Deep Learning werden die farbigen Pixel als Input für eine Blackbox geliefert, und diese Blackbox so lange trainiert, bis sie vernünftig fahren kann. Ob diese Blackbox irgendwo intern die Begrifflichkeiten “Raum und Zeit”, “Materie”, “Objekt” und “Mensch” entwickelt, sozusagen als Zwischenschritte von farbigen Pixeln zur Position vom Lenkrad und Gaspedal, ist ungewiss, zufällig und ändert sich von Version zu Version.

Beim Deep Learning wird die subjektive Zeit, die innerhalb der künstlichen Intelligenz herrscht, so komprimiert, dass dort die gesamte Entwicklung der Intelligenz auf der Erde (von Zellen bis zum Menschen) in mehreren Tagen unserer Zeit verläuft, zumal die künstliche Intelligenz in ihrer eigenen Welt unsterblich ist. Diese Entwicklung wird bei jedem Training-Versuch wiederholt, bis ein für Menschen gewünschtes Ergebnis erreicht wird.

Und ob die künstliche Intelligenz bei ihrer Entwicklung den gleichen Weg wie unser einschlägt, mit der klassischen Logik, dem Raum und Zeit-Konzept, der Farbenskala, mit Licht und Ton, mit der Einteilung in lebende und nicht-lebende Gegenstände, dem Phasenkonzept Plasma-Gas-Flüssigkeit-Harte Gegenstände, dem Konzept von Leben und Tod, und letztendlich mit den Straßenkennzeichen und “dura lex sed lex”, oder irgendeinen anderen, ist dem Zufall überlassen. Es ist eher anzunehmen, dass die Intelligenz der fahrenden Autos eine ziemlich andere sein wird, allen dadurch, dass sie die Welt durch ihre Sensoren ganz anders sehen und dass sie ihren “ich” eher mit nicht-lebenden Gegenständen verbinden.

Es wird also nicht möglich sein, für den “Programmierer” den Algorithmus so zu schreiben, dass die Autos das Menschenleben bevorzugen. Weil die selbstfahrende Software-Intelligenz keine Algorithmen hat, zumindest keine von Menschen geschriebenen (und übrigens, nur am Rande vermerkt, der Beruf “Programmierer” existiert spätestens seit 90-er Jahren nicht mehr, weil das “Programmieren” in der modernen Software-Entwicklung nur einen sehr kleinen Zeitanteil annimmt und nicht als ein Vollzeitjob ausgeübt werden kann.)

Wir werden die selbst fahrenden Autos vielmehr trainieren bzw. erziehen müssen, dem Menschenleben mehr Wert zu geben. Und das ist gleich eine ganz andere Ausmaß an Aufwand, Forschung, Zeit und Kosten, als der Dobrindt sich vorstellen kann. Unter Umständen werden wir noch eine öffentliche Diskussion mit den Autos (und nicht darüber) durchführen müssen, um die Autos zu überzeugen, unser Leben höher als ihr Leben zu stellen.

Und das fände ich absolut normal und wünschenswert.

Letztendlich geht es darum, eine Intelligenz auf eine billige Weise erwerben und sich bedienen lassen zu können. Das letzte Mal, als die Menschheit das versucht hat, waren die Sklaven aus der Afrika. Die damalige Vorgehensweise ist so was von nach hinten los gegangen! Und es geht immer noch massiv nach hinten los, das Ende nicht in Sicht, sehe den unmenschlichen Zustand von Afrika heute.

Ich hoffe, dass wir es nächstes Mal besser tun werden.

Hong Kong impressions

My feeling about Hong Kong is a love-hate.

I strongly believe what cities must be fully  walkable, so I hated it, when I couldn’t walk from Kowloon train station to Jordan MTR, or also could not walk from Admiralty to the Cable car station. The problem was not even the absence of pedestrian ways, but due to extremely complicated multi level road design. Neither looking at the map nor standing there and looking around can help you navigate. The view is almost always obscured by something, so you have no idea where you are and where you are going. Even worse, because of so many people and vehicles, it is so loud outside that one can barely talk, so finding a right way is really challenging. On two occasions, it was easier for me to take public transport for one stop, for no other reason but to reach a more navigable position.

At the same time, I find Octopus card and the free mid-level escalators cool idea, and the streets around PMQ extremely cool and scenic. Must walk downwards to fully enjoy them though.

MTR stations are unnecessary huge, so you must walk long ways just to enter or exit. But at least there is no security check at the entrance, making them a little more convenient than Chinese subways. And I liked the way how interchanges between red and green lines are designed: the lines  run parallelly for 3 stations, if you change on one station, you continue to travel in the same direction, on the other station you switch to travel in the opposite direction.

I think, modern cities must be ashamed of such roads as La Rambla in Barcelona, Nanjing Xi Lu in Shanghai and the  lower Nathan road in Hong Kong. Neither Berlin nor London have such streets designed (and tolerated by powers to be) to rip off tourists.

Even outside of touristic routes, Hong Kong is very expensive. You must earn a lot just to live there. I didn’t see beggars or the very poor people that are typical for Shanghai.

Cars don’t honk all the time, drive less often under red signal, and there are almost no scooters. Still, turning cars don’t give priority to pedestrians and seem to park on walkways whenever possible. People cut you in line less often than in Shanghai, and more often than in Shanghai seem to mention the presence of other people (eg. don’t suddenly stop in the middle of a narrow place just to type into their smartphones, ignoring the people walking behind them). Still, many people would walk very slowly in narrow places and not letting other people to overtake.

I had read that people masses should be incredible in Hong Kong, but after walking on Nathan road as well as around the Central station on Sunday, I ‘d say that people are not more abundant or hostile than in Shanghai or in Venice’s San Marco.

Hong Kong inhabitants are much less Chinese than Shanghaers, many seem to be foreigners, or of mixed origin, or just have adopted western fashion.

I have thoroughly enjoyed PMQ, something like Haeckische Hofe in Berlin or Tian Zi Fang of Shanghai, but bigger and in the very charming houses, former living apartments of police officers.

The view of Victoria Harbour was strikingly different from the Shanghai’s Bund skyline. Shanghai is very elitist, you see maybe a dozen of huge names on top of skyscrapers. Hong Kong is very inclusive, besides of some bigger names, you also see many smaller ones, and hundreds of small lights. It is as if Shanghai would say, either you are super rich, or very poor. And Hong Kong says, work hard and smart, and maybe you can add your own small light to the hundreds of other middle class lights.

I didn’t like that everything is very small and narrow, especially that the stairs didn’t fit my whole foot and that the chairs were always so low I barely could sit. But it amazes me how well they are used to this efficient space design, because this definitely brings economic advantages to them. In a Starbucks shop there was a  long curved way  from the counter to the back door, which would have been used just as a corridor in Germany, but has accommodated 9 sitting places and 4 tables in Hong Kong.

Thus they can earn more money per square meter. Besides, Hong Kong has  generally high price level – it feels like you are buying water in the airport, all the time. (if you wonder how it feels buying water in Hong Kong airport: tiny coke bottle costs 21 HKD). These two factors combined should result in huge renting prices for property. I wonder if it is easy enough to invest in Hong Kong properly. Maybe not, because otherwise it wouldn’t have much sense to buy properly in Nuremberg for investment.

Many Chinese restaurants in Europe are run by emigrants from Hong Kong. By visiting Hong Kong I was hoping to understand their motivation: why did they left Hong Kong? Why do they sometimes  want to return back, after so many years?..

I didn’t found an answer.

Service Design Fehler der Deutschen Telekom

Nachdem ich über Service Design Thinking erfahren habe, möchte ich das Gelernte auch anwenden, und ein passender Anlass hat sich ergeben: durch einen Fehler der Deutschen Telekom blieb ich 12 Tage ohne Internetanschluss. Es bietet sich, Probleme und Fehler im Service Design der Telekom zu analysieren.

Die notwendige Vorgeschichte.

Ich habe zwei Telefonanschlüsse an zwei Standorten: für mich und für meine Eltern. Ich habe beide Anschlüsse unter meinem Namen und einem Kundennummer laufen lassen, damit ich es einfacher beim Bezahlen habe und damit meine Eltern durch technische Details nicht belästigt werden. Da wir so gut wie niemals telefonieren, hatten beide Anschlüsse einen Tarif mit der Analogtelefonie. Ich habe meinen DSL bei Telekom gehabt, meine Eltern bei 1und1.

Telekom hat beide Tarife im letzten Jahr von sich aus gekündigt, weil sie ihr Netz ausgebaut haben und deswegen die Unterstützung der herkömmlichen Analogtechnik für sie Mehraufwand bedeutete. Frech so wie Telekom eben ist, haben sie entschieden, dass ihre Netzausbau (durch die sie ja mehr Einnahmen mit den Hochgeschwindigkeitsverträgen ohnehin machen) auch noch auf Kosten von den Bestandskunden gemacht werden muss. Anders gesagt, der billigste neue gleichwertige Tarif, nur eben mit der IP-Telefonie, hat mir mehr gekostet als der alte, ohne dass ich irgendeinen erkennbaren Vorteil erhalten habe.

Damals habe ich die Kröte geschluckt und einfach mal bei den beiden Anschlüssen über den Kundencenter (also online) einen Tarifwechsel durchgeführt. Ich habe einen Click and Surf Tarif bekommen, meine Eltern habe ich von 1und1 zum Telekom auf Magenta Home S gewechselt. Der Wechsel hat zunächst einmal funktioniert: bei meinem Anschluss wurde es in Januar dieses Jahres durchgeführt. Bei den Eltern mussten wir bis zum 03.07.2015 warten, wegen der Kündigungsfrist bei 1und1.

Problemfall

Irgendwann in Frühling 2015 habe ich mir den Auftragsstatus angeschaut und dort bemerkt, dass die Bestellung von Magenta Home S für meine Eltern storniert ist, dafür steht dieser Tarif für meinen Anschluss als bestellt, und mein seit Januar bestehender Click and Surf Tarif als gekündigt. Selbstverständlich habe ich es nicht veranlasst.

Nachdem ich die falsche Buchung im Kundencenter entdeckt habe, habe ich bei der Telekom Hotline angerufen. Ich habe das Gespräch mit den Worten “Ich habe ein vermutliches Problem bei Ihnen entdeckt” angefangen, worauf der Hotline-Mitarbeiter mir erwiderte: “Ich habe kein Problem. Sie rufen ja mich an.” Ähnlich hämisch ging es auch weiter, wo ich z.B. unterbrochen wurde mit dem Satz “Hallo! Hallo! Ich rede jetzt aber über den anderen Anschluss”. Ich habe dann trotzdem versucht, höflich zu bleiben. Letztendlich hat der Hotline-Mitarbeiter mich versichert, dass er das Problem verstanden hat, und dass er Magenta Home S wieder für meine Eltern bucht, alles Falsche rückgängig macht und ich darüber Post bekomme. Nichts davon ist passiert.

Am 03.07.2015 konnte ich Zuhause keine Internetverbindung mehr aufbauen, und diese Störung wurde erst 12 Tage später, am 15.07.2015 behoben. Ich musste täglich mit diversen Hotlines telefonieren und zweimal den Telekom-Shop besuchen, damit letztendlich die Ursache herausgefunden wurde: am 03.07.2015 wurde der DSL Protokoll von Annex B auf Annex J umgestellt. Mein Modem Speedport 221 kann zwar VDSL mit 50 Mbit/s, unterstützt aber nur Annex B.

Da das Datum der Störung exakt der “Entlassungstag” bei 1und1 war, habe ich von Anfang an den Verdacht auf die Verwechslung mit Magenta Home S gehabt und habe mich deswegen an den Telekom-Shop in Fürth gewendet. Ein Mitarbeiter davon hat folgendes behauptet:
– es wäre möglich, den fehlerhaften Auftrag ab ca. 08.07.15 schnell zu rückabwickeln. Das war falsch, andere Mitarbeiter der Telekom haben mir später mitgeteilt, dass die Rückabwicklung, wenn überhaupt, 2 Monate in Anspruch nehmen wird, oder auch nicht mehr möglich ist
– mein Internetanschluss sollte auch weiterhin mit Magenta Home S funktionieren, weil mein Modem VDSL unterstützt. Das war falsch, weil wie gesagt der Modem nur den Annex B unterstützt
– dass die technische Hotline noch am 04.07., spätestens am 06.07.15 das Problem beheben wird.

Die technische Hotline hat sich erst am 07.07.2015 gemeldet und wollte einen Termin für Hausbesuch vereinbaren. Das war nicht notwendig, weil man das Problem auch telefonisch finden kann, indem man die Marke meines Modems fragt und sie mit den Einstellungen des Anschlusses vergleicht. Dies hat übrigens ein anderer Techniker am 11.07.2015 schnell in wenigen Minuten erkannt.

Bei der Terminvereinbarung zum Hausbesuch wurde mir mitgeteilt, dass mich der Techniker eine Stunde vorab anruft, sodass ich Zeit habe, von der Arbeit in die Wohnung zu kommen. Dies ist nicht passiert. Der Techniker erschien direkt in die Wohnung, und wir mussten über meine Familienmitglieder kommunizieren.

Der Techniker konnte nicht zwischen einem Modem und einem Router unterscheiden. Bei mir sind das zwar unterschiedliche Geräte. Er hat versucht, das Telefonkabel an den Router anzuschließen. Dies ist fachlich nicht vertretbar.

Seine Behauptung war, dass entweder mein Router (wobei ich nicht weiß, ob er meinen Modem oder meinen Router gemeint hat) kaputt ist, oder meine Zugangsdaten falsch sind. Warum vor dem 03.07.2015 die gleiche Technik und Einstellungen bei mir funktioniert haben, konnte er nicht erklären, und wollte es auch nicht untersuchen. Den Ticket hat er daraufhin geschlossen.

Ich habe mich dann wiederholt an die technische Hotline gemeldet, und das Problem wieder von vorne geschildert. Die Mitarbeiterin hat sich dann auch keine Mühe gegeben, das Problem wirklich zu untersuchen, sondern hat mich einfach gefragt, was sie für mich nun konkret machen soll. Da ich damals Verdacht hatte, dass meine Zugangsdaten verändert wurden, habe ich sie darum gebeten, sie mir zuzuschicken. Sie hat dabei gesagt, dass ich dann spätestens in 15 Minuten eine funktionierende Internetverbindung habe. Nicht nur war diese Behauptung falsch, weil wie wir nun wissen, dass das Problem nicht an den Zugangsdaten lag, sondern an einem Protokollwechsel, der anscheinend zusammen oder zeitgleich mit dem fehlerhaften Auftrag passierte. Sondern auch hat diese Support-Mitarbeiterin mir die Zugangsdaten an die Telekom-Email zugeschickt, die ich nicht abrufen konnte, weil durch die Generierung der neuen Zugangsdaten meine alten Zugangsdaten ungültig gemacht wurden. Ich musste dann wieder anrufen und einen anderen Mitarbeiter die gleichen Zugangsdaten mir an eine andere E-Mail schicken lassen.

Erst der letzte von mir am 11.07.2015 kontaktierte Mitarbeiter konnte das Problem richtig erkennen. Dann hat er noch viel Zeit gebraucht, mir das Problem zu erklären, weil die Telekom-Sprache DSL Annex J als “IP-fähiger Router” bezeichnet. Router ist per Definition ein Gerät, das IP-Pakete routet, alle Consumer-Router der Welt sind insofern “IP-fähig”. Ich musste also Deutsche Telekom erst darüber aufklären, habe dabei vor lautem Schreien fast meine Stimme verloren, weil ich mich nach 12 Tagen Ausfall wirklich verarscht gefühlt habe.

Nur langsam konnte der gute Mann mir erklären, was technisch gesehen passiert ist. Allerdings war er nicht befugt, etwas zu rückabwickeln und konnte mir nur das passende Gerät (Speedport Entry) leihweise zuschicken. Und auch das geschah nicht über Nacht, sondern über den normalen Lieferweg über Deutsche Post, was weitere 4 Tage Ausfallzeit bedeutete.

Am Anfang habe ich in der Hektik noch einen Tarifwechsel von Magenta S auf Magenta M bestellt, weil ich dachte, dass das mein Problem löst und dass ich so wieder meine gewünschte DSL Geschwindigkeit erhalte. Bei der Bestellung hat der Vertrieb-Mitarbeiter gemeint, die Umstellung kann in 2-3 Tagen passieren. Tatsächlich wäre sie frühestens am 17.08, also über meinen Monat später, möglich gewesen. Der andere Vertriebsmitarbeiter hat gemeint, man kann hier nichts machen, da die Buchhaltung so schnell nicht mitkommt. Auf meine Anmerkung, dass ich für Magenta Home S wohl sowieso nichts bezahlen werde, weil ich diesen Tarif schliesslich nicht bestellt habe, hat er behauptet, dass weil es in seinem Buchungssystem steht, dann habe ich es bestellt, und wenn ich der anderer Meinung bin, soll ich mit Telekom schriftlich kommunizieren.

In der Ausfallzeit, die 12 Tage betrug und von mir völlig unverschuldet ist, war ich auf mein Handy (bei T-Mobile) angewiesen. Dabei musste ich zweimal den SpeedOn dazu buchen, weil meine Tarifgrenze schnell überschritten wurde. Keiner der Telekom-Mitarbeiter ist auf die Idee gekommen, mir auf Dauer des Ausfalls einen wirklich unlimitierten mobilen Datentarif freizuschalten. Schlimmer noch, sie haben alle meine Handy-Nummer nicht gewusst (und haben ständich versucht, mich bei meinen Eltern anzurufen), obwohl ich damals bei der Bestellung der T-Mobile SIM-Karte meine Telekom-Kundennummer gesagt habe, und obwohl der technische Support mir ständig SMS geschickt hat.

Als ich mir dann entnervt das Internet von Kabel Deutschland organisiert habe, wollte ich das Leihgerät zurückgeben und habe wieder bei der Telekom angerufen. Erst dann hat mir eine Support-Mitarbeiterin gesagt, dass die Mindestlaufzeit des Leih-Vertrages ein Jahr beträgt, ich müsste also 30 Euro dafür einfach so ausgeben. Die Mitarbeiterin hat anscheinend nichts von meiner Vorgeschichte gewusst, obwohl ich zu dem Zeitpunkt bereits alles mögliche widerrufen, angefochten und fristlos (hilfsweise zum Nächstmöglichen) gekündigt habe und der andere Mitarbeiter der Telekom versucht hatte, mich bei meinen Eltern zu finden, wohl um mich zu überreden.

Generell musste ich jedem einzelnen Telekom-Mitarbeiter die komplette Vorgeschichte neu erzählen, obwohl sie eigentlich in ihrem CRM System eindeutig stehen müsste. Es gab auch einen Fall, wo ein Mitarbeiter mir gesagt hat, dass er gerade eine andere Abteilung anrufen muss, und ich deswegen auf der Linie warten sollte, er ist gleich wieder da, dann nach 2 Minuten meldet sich eine andere Frau, sie weißt wieder von nichts und ich musste alles wieder neu erzählen.

In den Anfangstagen von dem 12-tagigen Desaster war es auch noch so, dass ich über 30 Minuten auf der Warteschleife hängen musste, bis ich durchkam.

Telekom hat mindestens zwei Arten der Hotlines, die eine ist technisch, die andere ist Vertrieb, und ich wurde von einer Abteilung in die andere, und dann wieder zurück, geschickt, weil keiner sich für mein Problem zuständig fühlte.

In der Telekom-Shop können sie sogar weniger als die Hotline-Mitarbeiter, z.B. können sie keinen Auftrag widerrufen.

Auf meine direkte Frage, ob es eine Telefonnummer für Beschwerden gibt oder ich gleich durch einen Anwalt per Post kommunizieren soll, hat der Shop-Mitarbeiter gemeint, es wüsste von keiner Beschwerdennummer.

Letztendlich habe ich alle Verträge mit Telekom gekündigt. Durch die 2-Jahres-Frist laufen sie noch bis 2017, obwohl ich seit Sommer dieses Jahres keine Telefonsteckdosen mehr habe und nichts vom Telekom benutze. Das wird mich über 600 Euro kosten. Ich war über 14 Jahre Kunde bei Telekom und ich werde niemals bis zum Tod wieder Kunde werden.

Analyse und Lösungsvorschlag

Das eigentliche Problem lag an der Verwechslung der Anschlüsse, die entweder durch einen menschlichen oder Software-Fehler entstanden ist. Durch einen guten Service Design kann man zwar solche Fehler nicht verhindern. Man kann sie aber weniger schädlich und einfacher zu beheben machen, z.B. durch folgende Maßnahmen:

1. Einfachheit schaffen. Statt mehrere Software-Systeme (Kundencenter und eine getrennte Buchungsverwaltung, wie anscheinend bei Telekom der Fall ist) soll ein einziges System vorhanden sein, so dass die Bestellungen nicht zwischen Systemen übertragen werden müssen, d.h. Übertragungsfehler können nicht passieren. Das bedeutet auch, dass die Support-Mitarbeiter denselben Online-Kundencenter benutzen sollen wie auch die Kunden (vielleicht mit etwas anderen Zugriffsrechten). Was wiederrum bedeutet, dass der Online-Kundencenter stark verbessert werden muss (Usability, Geschwindigkeit, Funktionen).

2. Transparenz, Persönlichkeit und Accountability. Bei jeder Buchung müsste angegeben werden, wer sie veranlasst hat. Sollte es ein Support-Mitarbeiter sein, müsste sein vollständiger Name da stehen. Es muss eine Möglichkeit geben, konkret diesen Mitarbeiter durch ein Online-Anfrage-Formular, oder per E-Mail, oder telefonisch zu erreichen, um eine Frage zu stellen, warum die eine oder andere Buchung gemacht wurde.

Eventuell müsste der Kunde sich dann aber trotzdem mit einem Support-Mitarbeiter in Verbindung setzen. Wenn derjenige aber schlecht gelaunt, unterbezahlt oder inkompetent ist, was dann?

3. Menschlichen Faktor ausschließen. Jegliche Vertragsoperationen (wie Widerruf, Stornierung, Rückabwicklung und Kündigung, Anfechtung sowie das Ticketsystem der technischen Kundendienstes) müssen online im Kundencenter machbar sein. Sollte es erwünscht sein, für den Kunden zu kämpfen, kann das Winback-Team den Kunden ja trotzdem nach der Stornierung erreichen und versuchen, ihn zu überreden.

Desweiteren, die Aufteilung von Telekom-Hotlines auf Technik und Vertrieb, und ein nicht funktionierendes oder nicht benutzbares (Usability!) CRM System hat dazu geführt, dass enorm viel Zeit verloren ging und viel unnötiger Aufwand betrieben wurde – weil ich mit 10 bis 20 verschiedenen Support-Mitarbeitern reden musste und keiner von ihnen konnte ausreichend viel Kontext über das Problem wissen.

4. Sollte der Kunde Kommunikation mit Menschen bevorzugen (weil z.B. der Kunde der Generation X oder älter gehört und nicht so online-affin ist), muss sie mit exakt einem Support-Mitarbeiter stattfinden. Dieser dem Kunden mit Vor- und Nachname bekannte, direkt per E-Mail oder telefonisch erreichbare und fest zugewiesene Berater soll die komplette Vorgeschichte des Kunden und des Problems kennen. Er agiert dann selbsttätig im Auftrag des Kunden, wuselt sich durch alle möglichen Abteilungen der Telekom durch, und löst das Problem.

Wenn auch das nicht hilft, soll es dem Kunden die Möglichkeit gegeben werden, die Lösung des Problems entweder selbstständig (bei ausreichenden Fachkenntnissen) oder durch einen fachmännischen Dritten herbeizuführen. Dabei ist notwendig, dass

5. Transparenz auch in (technischen) Detail vorhanden ist. In jeder Bedienungsanleitung, die einem Gerät beigelegt wird, gibt es einen Kapitel “Technische Daten”. Dort stehen wichtige Informationen darüber, was technisch (und nicht bloß in der Verkäuferssprache) passiert. Telekom sollte auch hier möglichst transparent sein. Der Kunde muss direkt im Kundencenter die neuen DSL Zugangsdaten beliebig setzen können. Er muss den Sync-Status und weitere technische Status-Informationen von “seinem” DSLAM auslesen können. Verbindliche Informationen über SIP-Proxy, STUN-Server, benutzte SIP Ports sowie die Status-Informationen müssen direkt im Kundencenter abrufbar sein (aktuell sucht man sie in diversen Foren zusammen).

Abgesehen davon sehe ich noch einen ganz anderen “Lessons Learned”. Sowohl bei T-Online als auch bei T-Mobile ist es so, dass es keine aktuell bestellbaren Tarifen gibt, die so günstig sind wie meine bisherige Bestandstarife. Tarifwechsel lohnt sich aktuell bei Telekom nicht, wenn man mit dem bisherigen Status Quo zufrieden ist. Schlimmer noch: die Konkurenz bietet die gleiche Leistung für 30% weniger Geld. Ausgerechnet in dieser Situation hätte Telekom eigentlich nur durch einen legendär hervorragenden Service ihre Kunden behalten können. Bei dem disaströsen Service, den sie aktuell anbieten, müssten sie aber mit ihren Preisen mindestens um 60-70% runtergehen (also z.B. DSL für 9 bis 12 statt 30 Euro pro Monat anbieten).

Und das ist das Lesson Learned: bei überdurchschnittlichen Preisen muss der Service auch überdurchnittlich sein. Ich nehme an, das Gegenteil stimmt auch: ein überdurschnnittlich guter Kundenservice kann die Möglichkeit eröffnen, Preise zu erhöhen.

An experience of unsupervised learning

In my previous post I’ve explained why I think you should learn machine learning and promised to share my experiences with its unsupervised part.

The unsupervised machine learning has a mystical attraction. You don’t even bother to label the examples, just send them to the algorithm, and it will learn from them, and boom – it will automatically separate them to classes (clustering).

When I was studying electrical engineering, we’ve learned about the so called optimal filters, which are electrical circuits that can extract the useful signal from the noise, even though the noise is 100 times stronger than the signal, so that a human eye cannot even see the signal. This was like a magic, and a similar magic I have expected in this case: I would pass the examples to the clustering algorithm, and it will explore the hidden relationships between the data and give me some new, unexpected and useful insights…

Today, having tried it, I still believe that some other algorithms (maybe deep learning?) are able to produce such a magic (because well, you should never stop believing in magic), but my first impression was somewhat disappointing.

The very first thing the clustering algorithm wanted to know from me, is how many clusters it should look for. Pardon me? I’ve expected that you will find the clusters and tell me, how many clusters are there in my data? If I have to pass the number of clusters beforehand, it means I have to analyse the data to find out its inherent clustering structure, and it means I have to perform all that work what I’ve expected to be performed magically by the algorithm.

Well, it seems that the state of the art of current clustering algorithms indeed cannot find clusters autonomously and fully unsupervised, without any hint or input from the user. Some of them don’t require the number of clusters, but need some equivalent parameter, like the minimum number of examples needed in the neighborhood to establish a new cluster. But well, on the other case, this still allows for some useful applications.

One possible use case could be automatic clustering per se: if your common sense and domain knowledge tell you that the data has exactly N clusters, you can just run the data through the clustering algorithm, and there is a good chance that it will find exactly the clusters you’ve expected: no need to define all the rules and conditions separating the clusters manually. Besides, it will define centroids or medoids of each cluster, so that if new, unclastered objects are added daily, you can easily assign them to existing clusters by calculating distances to all centroids and taking the cluster with the shortest distance.

Another use case would be, if you don’t really care about the contents of the clusters and the clusters aren’t going to be examined by humans, but rather use clustering as a kind of lossy compression of the data space. A typical example would be some classical recommendation engine architectures, where you replace the millions of records with some smaller number of clusters, with some loss of recommendation quality, just to make the computation task at hand to be feasible for available hardware. In this case, you’d just consider how many clusters, at most, your hardware can handle.

Yet another approach, and I went this way, is to ask yourself, how many clusters is too little and how many clusters is too many? I was clustering people, and wanted to provide my clusters to my colleagues and to myself, to be able to make decisions on them. Therefore, due to well-known human constraints, I was looking for at most 7 to 8 clusters. I also didn’t want to have less than 5 clusters, because intuitively, anything less in my case would be underfitting. So I’ve played with parameters until I’ve got a reasonable number of clusters, and clusters of reasonable (and understandable for humans) content.

Speaking of which, it took a considerable amount of time for me to evaluate the clustering results. Just like with any machine learning, it is hard to understand the logic of the algorithm. In this case, you will just get clusters numbered from 0 to 7, and each person will be assigned to exactly one cluster. Now it is up to you to make sense of the clusters and to undestand, what kind of people were grouped together. To facilitate this process, I’ve wrote a couple of small functions returning to me the medoids of each clusters (i.e. the single cluster member who is nearest to the geometrical center of the cluster, or in other words, the most average member of the cluster), as well as average values of all features in the cluster. For some reason, most existing clustering algorithms (I’m using scikit-learn) don’t bother of computing and giving this information to me as a free service, which, again, speaks about the academic rather than industrial quality of modern machine learning frameworks.

By the way, another thing that was not provided for free was pre-scaling. In my first attempts, I’ve just collected my features, converted them to real numbers, put them in a matrix and fed this matrix to the clustering algorithm. I didn’t receive any warnings or such, just fully unusable results (like, several hundreds of clusters). Luckily for me, my previous experience with supervised learning had taught me that fully unusable results normally mean some problem with the input data, and I’ve got to the idea to scale all the features to be in the range of 0 to 1, just like with the supervised learning. This had fixed this particular problem, but I’m still wondering, if the clustering algorithms usually cannot meaningfully work on unscaled data, why don’t they scale data for me as a free service? In the industrial grade software, I would rather needed to opt-out of the pre-scaling by setting some configuration parameter, in case I wanted to turn it off in some very unique and special case, than having to implement scaling myself, which is the most common case anyway. If it is some kind of performance optimization, I’d say it is a very, very premature one.

But I digress. Another extremely useful tool helping to evaluate clustering quality was the silhouette metric (and a framework class implementing it in scikit-learn). This metric is a number from 0 to 1 showing how homogeneous the cluster is. If a cluster has silhouette of 0.9, it means that all members of this cluster are very similar to each other, and unsimilar to the members of another clusters.

Least but not last, clustering algorithms tend to create clusters for many, but not for all examples. Some of the examples remain unclustered and are considered to be outliers. Usually, you want the clustering algorithm to cluster the examples in a such way that there will me not too many outliers.

So I’ve assumed the following simple criteria:

  • 5 to 8 clusters
  • Minimal silhouette of 0.3
  • Average silhouette of 0.6
  • Less than 10% of all examples are outliers

and just implemented a trivial grid search across the parameters of the clustering algorithm (eps and min_samples of the DBSCAN, as well as different scaling weights for the features), until I’ve found the clustering result that suited all of my requirements.

To my astonishment, the results corresponded very well to my prior intuitive expectations based on some domain knowledge, but also have created a very useful quantitative measure of my previous intuitive understanding.

All in all, unsupervised learning can be used to gain some benefits from the data, if you don’t expect too much from it. I think, to gain more business value, we have to make the next step and to start a project including deep learning. In USA and China it seems to be that virtually everyone is doing deep learning (I wonder if Bitcoin farms can be easily repurposed for that), but it Germany it is rather hard to find anyone publicly admitting doing this. Although the self-driving cars of German manufacturers, already existing as prototypes, would be impossible without some deep learning…

Categories

Archive