Stell dir vor du hättest unendlich viel Urlaub…

Stell dir vor du fragst dein Urlaubskonto ab und siehst folgendes:

unlimited vacation

 

Klingt gut, oder? Denkst du jetzt so was wie: Ja aber dann würde doch gar keiner mehr arbeiten? Habe ich auch im ersten Moment. Aber das ist eine veraltete Denke, dass man die Menschen mit Zuckerbrot und Peitsche zur Arbeit zwingen muss und sie ansonsten nur faul rum sitzen. Diese Menschen gibt es natürlich aber es gibt auch die Menschen, die etwas bewegen wollen. Die aus freien Stücken und mit Leidenschaft zur Arbeit gehen. Ich verweise hier noch einmal auf die X-Y-Theorie von McGregor. Wer also Menschen anstellt, die ihre Arbeit gerne tun, dürfen – nein müssen! – auch wie Erwachsene behandelt werden! Keine Vorschriften, wo sie nicht unbedingt notwendig sind.

Dass diese Aussage auch auf die Urlaubsregel zutrifft und sogar die Produktivität steigert, zeigt folgender Artikel: Why unlimited vacation ensures productivity

Cachedrive

On my GitHub Account I uploaded a project of me. The idea was, to have a something like a Ramdisk but with more comfort. A ramdisk is something like a virtual hard drive, which all of the stored files are only stored in memory. But – as you probably know –  every time you reboot your PC all the data in the memory are lost. So always after a new boot, you have to copy the files to the ramdisk.

With the cachedrive I want to solve this issue and took another approach. I wrap a real physical harddrive with a caching layer. So every first read to a file is as slow as your harddrive is. But the data is cached, so every other access to that file is very fast, because the data is read from memory.

Technically I work on the user mode filesystem layer, like for example Antivirus applications do. Because this layer has direct connections to the Windows Kernel, it is written in unmanaged code. To get access from C# I used the Dokan.NET Library from Hiroki Asakawa.

Actually the project is not finished. I proved that it could work, than I lost the motivation… Mostly there are some bugs waiting for fixing, functional “it should work”. A new version of the Dokan.NET Library is released and should be used.

Please, please, please give me feedback and I would be very glad if you fork the project and make some improvement.
Maybe I get rich very soon, quit my job and have the time to resume development.

Cachedrive on GitHub by Sebastian Müller

Hadoop, Cassandra, MongoDB – Ein Zwischenbericht

Ich habe mich die letzte Zeit viel mit Datenbanken beschäftigt, die mit richtig viel Daten (BigData DBs) umgehen können. Ich möchte mal kurz zusammen schreiben, was ich bisher herausgefunden habe:

scaleArbeitet man mit großen Datenmengen, sind die klassischen, relationalen RDBMS gänzlich ungeeignet. Das ist wohl die wichtigste Erkenntnis, die ich aus meinen Experimenten gezogen habe. Die Ursache ist ganz einfach: Relationale Datenbanken skalieren sehr schlecht. Irgendwann kann man nicht mehr noch bessere Hardware in den Server stecken (ScaleUp), sondern muss die Last auf mehrere Server verteilen (ScaleOut). RDBMS bieten hier nur die Möglichkeit der Replikationen (1-Master, n-Slave Systeme), wobei Schreibzugriffe zumeist auf dem Master ausgeführt werden und dieser somit zum Flaschenhals wird.

Distributed Databases

Was man braucht sind also echte verteilte Datenbankserver. Entweder managed oder unmanaged. Managed heißt, es gibt eine Software, die die Verwaltungsaufgaben übernimmt. Verwaltungsaufgaben ist z.B. neue Server zu registrieren, sicherstellen, dass alle Daten redundant vorhanden sind, Jobs verteilen. Hadoop wäre z.B. so ein managed System. Die Verwaltungsaufgaben übernimmt der Zookeeper aus dem Hadoop Ecosystem.
eventualCassandra und Mongo sind zwar beide unmanaged, aber trotzdem unterschiedlich. Während Cassandra das Gossip Protokoll nutzt um sich selbst zu managen, verlässt sich Mongo ganz auf den System Administrator. Über das Gossip Protokoll unterhalten sich die Server untereinander. Kommt z.B. ein neuer Server hinzu, muss nur ein weiterer Server davon wissen, der sagt es dann wieder einem anderen Server und der wiederrum sagt es auch wieder allen Servern die er kennt. So kommt es allerdings bei jeder Änderung zu kleinen Verzögerungen, die aber berechenbare Dauer haben und es ist sichergestellt, dass die Infos aber irgendwann bei allen Servern ankommen. Das nennt man dann Eventual Consistency.
MongoDB macht es sich da einfacher. Mongo verlässt sich nur auf das was in den Config-Dateien steht, Writes finden alle gleichzeitig auf allen Servern statt und Loadbalancing muss über spezielle Hardware geregelt werden.

BigData –> NoSQL (Not only SQL)

nosqlInteressant finde ich, dass wenn man über BigData Datenbanken auch automatisch von NoSQL Datenbanken spricht. Es ist also nicht nur die Topologie anders als bei Klassischen Datenbanken, sondern auch die Daten werden anders gespeichert und abgefragt. Die Daten sind zumeist in Key/Value Tabellen abgelegt, die zumindest bei Hadoop und Cassandra von Googles BigTable inspiriert sind. Das hat viele ganz grundlegende Auswirkungen:

  • Daten werden denormalisiert abgelegt (Ja, liebe Leser, stellt ruhig in Frage ob alles richtig ist, was ihr im Studium/Ausbildung gelernt habt!)
  • Daten werden intern Spaltenorientierten und nicht Zeilenbasiert abgelegt
  • MapReduce um Abfragen zu machen

Näher gehe ich auf die Punkte nicht ein, da es sonst den Rahmen sprengen würde.

Echtzeit

Sobald man von verteilten System redet, wird das Echtzeit oder nicht interessant. Zum einen beim Schreiben, was ich oben schon mit Eventual Consistency u.ä. behandelt habe, aber zum anderen auch mit Lesenden Zugriffen.
mapreduce-714818Bei MapReduce werden auch die Lese-Jobs auf mehrere Systeme verteilt. So steigt zwar die Response Time nicht mehr mit signifikant mit der Datenmenge, aber es gibt mehrere Delays zwischen den Servern. Das führt dazu, dass Queries unter 1 Sekunde nur schwerlich zu erreichen sind. Hadoop ist dazu nicht gemacht. Hadoop wurde ursprünglich von Facebook verwendet um eine Datenbank für das neue E-Mail System zu haben. Als Facebook eine Suche für die E-Mails bauen wollte, haben sie gemerkt, dass die Reaktionszeit von Hadoop einfach nicht schnell genug ist. Also haben sie Cassandra ins Leben gerufen um MapReduce, BigData und Echtzeitabfragen zu ermöglichen. Dazu mussten einige Kompromisse eingegangen werden –> Siehe Eventual Consistency!

solrCassandra bedeutet übrigens nicht, dass man damit sofort die perfekte Datenbank mit Volltextsuche hat. Cassandra ist nur das perfekte Backend für einen Suchserver, wie z.B. Apache Solr. Zusammen mit Cassandra, schimpft sich das Packet dann Solandra.

Stolpern ist das neue Surfen

Zusammen mit dem Internet hat sich der Begriff surfen etabliert. Ursprünglich hatte es die Bedeutung, Internetseiten des World Wide Web zu erkunden. Wer ehrlich zu sich selbst ist, surft doch heut zu Tage immer wieder die selben Seiten an. Von Erkunden kann da keine Rede mehr sein. Dabei gibt es doch im Internet so viele unterschiedliche, erstaunliche, verrückte, inspirierende Dinge zu entdecken.

Mich hat es geärgert, dass die Mauern um meinen (Internet-)Horizont immer höher wurden und bin auf eine echt tolle Seite gestoßen: http://www.stumbleupon.com/

Per Mausklick, kommt man auf eine zufällige Seite, über die andere StumpleUpon-Nutzer bereits “gestolpert” sind. Das funktioniert erstaunlich gut! Ich bleibe immer wieder auf neuen Seiten hängen und wenn es mich nicht interessiert – KLICK – nächste Seite. StumbleUpon funktioniert auch deswegen so gut, weil man seine Interessengebiete eingrenzen kann.

Wer wissen will was mich so interessiert, schaut doch einfach mal auf mein Profil: http://www.stumbleupon.com/stumbler/balomueller

Basisdemokratisch bis ins Manangement

Ich wurde auf einen tollen Artikel hingewiesen: Die Befreiung der Arbeit – Das 7 Tage Wochenende Den sollte wirklich jeder mal lesen!

Kurzzusammenfassung: Die brasilianische Firma Semco hat ihre inneren Strukturen im Grunde komplett basisdemokratisch ausgelegt. Selbst das Gehalt aller Mitarbeiter ist vollkommen transparent und es wird demokratisch entschieden ob jemand eine Gehaltserhöhung bekommt oder nicht. Außerdem entscheidet jeder selbst wann er wie viel arbeitet.

So chaotisch es klingt: Es funktioniert! Was mich ehrlich gesagt sehr verwundert! Solche System funktionieren doch eigentlich nur dann wenn eine gute Balance zwischen Chaos (bzw. Freiraum) und Ordnung (bzw. Eingeschränktheit) existiert. Beispiel: Mitarbeiter einer großen Firma, die an PC Arbeitsplätzen arbeiteten, wollten flexibler werden und sich je nach Projekt im Team zusammen setzen. Also hat die Firma allen Notebook besorgt und zu jedem Projekt haben sich die Leute immer wieder neu zusammen gewürfelt und neue Büros bezogen. Das Problem war, dass Mitarbeiter die einen Kollegen gesucht haben, der  in einem anderen Projekt arbeitet, diesen nicht gefunden haben! Es herrschte also zu viel Chaos. Die Lösung war der Mittelweg: Die Mitarbeiter wurden in Bereiche eingeteilt, die alle in einem Stockwerk sitzen und innerhalb der Stockwerke konnten sie sich frei ihre Arbeitsplätze aussuchen.

Wieso funktioniert diese offensichtlich sehr chaotische Struktur bei Semco? Ich glaube der Schlüssel liegt in der Firmenkultur sich immer wieder selbst zu reflektieren und zu verbessern! Existiert zu viel Chaos, müssen die Mitarbeiter sich selbst Beschränkungen auferlegen, dass das schlechte Chaos zu gutem Freiraum wird. Hat man eine solche Kultur etabliert, kann (und sollte!) man den Schritt zu mehr Selbstmanagement wagen!

Die Klage über die Schärfe des Wettbewerbs ist in Wirklichkeit meist nur eine Klage über den Mangel an Einfällen

„Die Klage über die Schärfe des Wettbewerbs ist in Wirklichkeit meist nur eine Klage über den Mangel an Einfällen.“ von Walter Rathenau (1867 bis 1922).

Über dieses Zitat bin ich in einem meiner Studienhefte über Innovationsmanagement gestolpert. Der Satz ist eindringlich und einfach, jedoch verstehen ihn leider nur erschreckend wenige Unternehmen heutzutage!

Mehr Ideen erzeugt neue Produkte und Features. Neue Produkte und Features bedeutet mehr Marktanteile. Mehr Marktanteile bedeutet mehr Umsatz. Warum schreiben dann viele Unternehmen sich zwar Innovativität auf die Fahnen, aber leben es nicht im Alltag? Vor 5 Jahren hätte noch jeder geantwortet “Weil Forschung zu teuer ist”. Aber auch dieses Argument ist (für mich gefühlt) verstummt. Mitarbeiter liefern im Alltag Ideen for free (vorausgesetzt man hat engagierte Leute nach der Theorie Y), das schnelle Computerzeitalter und Rapid Prototyping Techniken lassen schnelle und kostengünstige Proof of Conecpts erstellen, und soziale Netzwerke macht das Marketing für die neuen Features schnell und günstig.

Ich glaube das wahre Problem ist Angst. Vor allem Angst vor Veränderungen und Angst vor Misserfolgen. Veränderungen erzeugen immer Widerstand und Ängste.
In diesem Fall könnten Ängste entstehen weil die Corporate Identity, durch geringe Qualität des neuen Produkts leiden könnte. Die Angst ließe sich durch Transparenz sicherlich zerstreuen, in dem man den Nutzer darauf hin weißt, dass es sich bei dem Produkt um eine Testversion handelt. Der Nutzer wünscht sich immer bessere, neue Lösungen auf sein Problem, als immer die gleiche (schlechte, alte) Lösung die aber keine Fehler enthält. Hey ihr Unternehmen da draußen: Done is better den perfect!

Die Angst vor Misserfolgen ist absolut real und Misserfolg ist sogar häufiger als Erfolg:

Aus 2000 Ideen entstehen ca. 400 Projekte, aus diesen werden wiederum rund 200 Produktideen konzipiert, 150 davon werden dann aus unterschiedlichsten Gründen nicht weiter verfolgt und nur 50 erleben eine Markteinführung. Beim Kunden fallen 40 durch. Nur 10 Produkte können dann wirklich zu den erfolgreichen Innovationen gezählt werden. (aus Jaworski, Jürgen: Innovationskultur: Vom Leidensdruck zur Leidenschaft. 2007).

Davon darf man sich aber nicht entmutigen lassen. Würde man einem Fußballspieler raten nur auf das Tor zu schießen wenn er sich absolut sicher ist, dass er trifft, hat man das Spiel schon verloren!

Innovationen brauchen Mut und sie müssen vom Top Management bis zur Reinigungskraft gelebt werden! Sie nur in eine Liste voller Firmenwerte zu schreiben hilft da noch nicht viel.

PS: Dieser Blogeintrag ist der Erste zu Innovationsmanagement dem noch weitere folgen werden.

Weg hier!

Coworking-31Was ich selber schon öfter verspürt habe, ich schon hier und hier gelesen habe, wurde nun auch durch eine Studie untermauert: Link! Und zwar geht es darum, nicht im Firmen-Büro zur arbeiten, sondern irgendwo anders. Das kann zu Hause sein, im Kaffee, in extra Büros, im Park oder wo man sich sonst gerne aufhält.

Ich finde das eine tolle Entwicklung, weil ich auch hin und wieder den Drang verspüre, mir ein Notebook zu schnappen und irgendwo anders meine Arbeit zu verrichten. Ich würde vermutlich auch ehr ein Kaffee, im Sommer einen Biergarten oder ein “Coworker” Büro wählen. So was gibt es übrigens auch in München: Link

Aber am spannendsten finde ich eigentlich das Warum! Die Unternehmen stecken unglaublich viel Mühe in Büros in denen produktiv gearbeitet werden kann und dann haben die Mitarbeiter aber viel mehr Lust wo anders ihre Arbeit zu machen. Mein Freund Andi würde jetzt richtig feststellen Da läft doch a Rädle im Dreck (für Nicht-Franken: Da läuft irgendwas verkehrt)!

Ich bin auf viele sehr unterschiedliche Gründe gekommen. Grund Nummer Eins ist vermutlich der verwunderlichste: Ablenkung! Selbst wenn ich in den Park gehe und hunderte Menschen um mich sind, werde ich weniger abgelenkt als wenn nur Einer mit mir im Büro ist, der sich mit mir unterhält. Da greift einfach das Paradoxon: Umso mehr Menschen da sind, desto “alleiner”/anonymer ist man.
ThridPlaceWorkingBenefitsEin anderer Grund ist für mich die Tristesse jeden Tag das Selbe zu sehen. Ich glaube jeder Mensch ist grundsätzlich kreativ und diese Kreativität leidet wenn man jeden Tag die gleichen grauen schallschluckende Wände mit den schwarzen Punkten sieht.
Der dritte Hauptgrund ist, dass die Architekten und Inneneinrichter beim Designen der Firmenbüros oft vergessen wie viel Zeit die Mitarbeiter an ihren Arbeitsplätzen verbringen! Ich behaupte ich lebe an zwei Plätzen: Bei mir zu Hause und in meiner Firma! Zu Hause fühle ich mich pudelwohl, auf der Arbeit nicht! Wenn man sich die brettharte Bank in der (Designer) Wohnküche anschaue, ist auch klar, dass die Inneneinrichter daran keinen Gedanken verschwendet haben. Aber auch in meiner ehemaligen Firma war es nicht besser: Dort habe ich mir privat eine Couch ins Büro gestellt. Was das für einen Terror am Schluss erzeugt hat, wäre ein eigener Blogeintrag wert.

Aber ich glaube auch wenn die Firmen mehr alles dagegen tun würden, ließe sich der Trend nicht mehr aufhalten. Die Mitarbeiter wollen mehr Flexibilität und Freiheit. Das sollte man als Unternehmen aber als Chance betrachten, kreativere, ausgeglichenere und motiviertere Mitarbeiter zu haben. Natürlich muss zunächst das Problem der Kollaboration gelöst werden. Die Zusammenarbeit darf nicht zu stark darunter leiden! Aber wenn man die örtliche Ungebundenheit der Mitarbeiter in die Firmenkultur aufnimmt ist das auch kein Problem. Jeder bekommt ein Notebook mit Webcam, Skype und jeder darf jeden anschreiben, dann kann das funktionieren.

Wie so etwas funktionieren kann hat mal wieder Scott Hanselman genial erklärt: Read and be impressed!

Scott HanselmanHomeOffice

Top Athleten und Sänger haben Coaches! Warum ich nicht?

Ich habe bei “The New Yorker” einen tollen Artikel gelesen, der mich sehr inspiriert hat: Link

In dem Artikel erzählt ein Arzt von seinem Problem, dass er irgendwann unfreiwillig aufgehört hat besser zu werden. Am Beginn seiner Kariere hat er noch große Fortschritte gemacht. Die Zahl an Komplikationen nach OPs sank sehr rapide. Dann langsamer, bis er schließlich stagnierte. Die Zahl der Komplikationen, waren verglichen mit denen seiner Kollegen mittelmäßig. Er wusste also, dass noch Verbesserungspotential da ist, nur nicht wie er sich verbessern könnte. Es existierten eine Art “Blinde Stellen”, in der man seine eigenen Fehler einfach nicht erkennt.


Der Autor schreibt, dass sich der Arzt viele Gedanken gemacht hat, wie er diese blinde Stellen ausmerzen kann um endlich wieder Fortschritte zu machen. Wenn man auf Probleme stößt, die man einfach nicht lösen kann, hilft es meist über den Tellerrand hinaus zu sehen. Haben andere Menschen diese Probleme auch? Welche Problemlösungsansätze funktionieren wo anders und lassen sich auch hier anwenden? Der Arzt hat erkannt, dass es bei Sportlern ganz natürlich ist einen Coach zu haben. Wenn diese Sportler an ihre Leistungsgrenze kommen, erstellt ein Coach ein anderes Trainingsprogramm, dass die Leistungsgrenze wieder ein Stück nach oben schiebt. Das gleiche ist bei Sängern. Wenn man selber singt, hört man etwas ganz anderes, als die Person die vor einem steht. Hier entstehen sehr oft diese blinden Flecken, in denen der Akteur seine eigenen Fehler nicht erkennt bzw. gar nicht erkennen kann. Hier hilft der Coach als Außenstehender eine andere Sichtweiße zu representieren.

Klingt also vielversprechend! Wenn man sich das Thema genauer ansieht, findet man Versuche von Lehrern, die andere Lehrer angestellt haben um sich coachen zu lassen. Die Ergebnisse sind beeindruckend! Ein Lehrer erzählt, dass er mit bestimmten Schülern einfach nicht zurecht gekommen ist. Ein anderer Lehrer hat sich für ein paar Stunden mit in die Klasse gesetzt und die Situation beobachtet. Er konnte ein paar gute Denkanstöße geben mit dem Ergebnis, dass der Klassenlehrer gelernt hat mit den Schülern umzugehen.

Ein Coach ist aber im Normalfall kein Lehrer! Ein Lehrer hat das Ziel den Lernenden etwas beizubringen, so dass diese das Gelernte am Schluss selbstständig anwenden können. Der Prozess hat also ein genau spezifiziertes Ende. Ein Coach ist dazu da etwas zu verbessern. Das kann ein immer fortwährender Prozess sein, der niemals endet. So unterscheidet sich auch die Art wie ein Lehrer und wie ein Coach interagieren. Ein Lehrer macht etwas vor, erklärt und lässt dies reproduzieren. Ein Coach analysiert, kritisiert und überprüft.


Zurück zu dem Artikel mit dem Arzt. Der Arzt hat einen im Ruhestand befindlichen Kollegen gebeten, bei ein paar OPs mit zu zu sehen und danach Tips zu geben. Der Coach hat überraschenderweiße kaum fachliche Dinge kritisiert, ehr “Stell dich mal anders hin, damit dir dein Assistent besser helfen kann” und “Achte darauf, dass das Licht immer optimal ist”. Das Ergebnis war, dass seine Komplikationsrate wieder begann zu fallen und sie sich der Arzt jetzt 2-3 Tage im Monat coachen lässt.
Ich denke das Beispiel zeigt eindrucksvoll wie gut sich Coaching auch auf andere Bereiche einsetzen lässt. Vor allem in der IT Branche in der es wie nirgends anders auf den Menschen ankommt, der den Computer bedient, ist das Konzept sehr gut anwendbar.