
Im heutigen Interview spreche ich mit dem Softwareentwickler und Unternehmer Jan Lehnardt aus Berlin.
Hallo Jan. Bitte stelle dich meinen Lesern kurz vor.
Hallo! Ich bin Jan Lehnardt, Unternehmer und Entwickler mit starker Affinität zum Web. Ich komme ursprünglich aus dem Ruhrgebiet, habe in Münster studiert und wohne und arbeite seit 2007 in Berlin. Ich bin Mit-Gründer und Geschäftsführer der Neighbourhoodie Software GmbH und programmiere hauptsächlich in JavaScript & Erlang. Ich bin Mitorganisator der jährlich in Berlin stattfindenden JSConf EU, Europas beliebtester JavaScript Konferenz. In meiner Freizeit spiele ich gerne Schlagzeug oder fahre auf meinem Mountainbike durch Berlin und Brandenburg.
Mit deinen beiden Open Source Projekten Hoodie und CouchDB bist du schwer damit beschäftigt anderen Softwareentwickler_innen unter die Arme zu greifen und das Entwicklerleben zu vereinfachen. Hast du dir die Softwareentwicklung selber beigebracht?
Ich habe sicher Eigeninitiative gezeigt, aber alleine kann man das alles sicher nicht lernen. Ich habe mich schnell in Internet-Communities wie z.B. SelfHTML oder Open Source-Projekten wie z.B. PHP eingelebt und konnte da von sehr guten Leuten lernen. Das war alles zur Schulzeit. Nach dem Abitur habe ich dann angefangen Informatik zu studieren, was irgendwann in Computerlinguistik übergegangen ist, bis ich dann 2008 endgültig das Handtuch geworfen habe, um mich auf mein damals aufstrebendes Open Source-Projekt CouchDB zu konzentrieren.
Du sprichst die Unterstützung von Softwareentwickler_innen an: Das ist, was mich, wie ich mittlerweile festgestellt habe, an Software motiviert. Die Technik selbst ist eher zweitrangig, aber ich bin gut darin und habe Spaß daran, Andere dabei zu unterstützen, nützliche Dinge für unsere Gesellschaft zu bauen. CouchDB und Hoodie passen da beide gut ins Schema.
Du bist Committer und Vice President von Apache CouchDB. CouchDB ist ein interessanter Name für ein Datenbankmanagementsystem. Wie kam es zu dem Namen und kannst du uns einen kurzen Einblick zu deiner Geschichte mit CouchDB geben?
Couch steht für Cluster of Unreliable Commodity Hardware und wie es so üblich ist, kam die Abkürzung vor der Erklärung. Der Name und die Langform wurden von CouchDB-Erfinder Damien Katz erdacht, bevor ich Teil des Projekts war. Die Philosophie hinter CouchDB ist, dass man mit vielen Rechnern, die meistens funktionieren ein besseres System bauen kann, als mit weniger Rechnern die auf jeden fall immer funktionieren, da die zweite Art von Rechnern exponentiell teurer wird, je fehlertoleranter sie sein sollen. Google hat das Konzept vorgelebt, und alle anderen großen Infrastrukturen sind inzwischen nachgezogen.
Zum Anderen hilft der Name aber auch die Kultur und Kommunikation des Projekts zu definieren. Unser Motto ist “Relax”. Wir sind entspannt und wir wollen auch, dass unsere Benutzer entspannt sind, wenn sie CouchDB benutzen. Wenn man CouchDB startet, bekommt man “CouchDB has started, it’s time to relax!” angezeigt, und von dann an soll CouchDB keinen Stress mehr verursachen. Konkret zeigt sich das an mehreren Stellen: Unsere API ist sehr einfach und intuitiv, Ergebnis von vielen Jahren Feinschliff; Im Betrieb verursacht CouchDB äußerst selten Probleme. Als Projekt sind wir auch entspannt: Wir streben keine Weltherrschaft an; wir wissen um die technischen Vorteile von CouchDB und freuen uns um jede/n Nutzer_innen der/die das auch sieht. Daraus ergibt sich eine sehr nette Atmosphäre im Projektalltag zwischen Entwickler_innen untereinander und auch bei unseren Endnutzer_innen.
Zu meinem Werdegang bei CouchDB: Ich habe CouchDB im Sommer 2006 über das Blog von Damien Katz gefunden. Zu der Zeit habe ich neben der Uni hauptsächlich an PHP/MySQL-Beratung, besonders im Bereich Skalierung, gearbeitet. Nachdem ich die Konzepte von CouchDB verstanden habe, wurde mir schnell klar, dass ich das besser lernen muss, weil ich sonst bald keinen Job mehr mit MySQL haben werde. So ganz ist es dann doch nicht gelaufen, aber ich habe dann auf CouchDB umgesattelt (obwohl ich Freunden in Not heute immer noch gerne mit ihren MySQL-Problemen helfe).
Zuerst habe ich mit allen möglichen Dingen geholfen, die nicht mit der Entwicklung zu tun hatten. Damals war CouchDB eine Mischung aus Erlang und C++, beides Sprachen, mit denen ich keine Erfahrung hatte. Meine erster großer Beitrag war ein Build-System, damit CouchDB nicht nur auf Windows, sondern auch auf Unix-System läuft. Danach habe ich Client-Libraries und Demos in PHP geschrieben, habe bei der Dokumentation geholfen und irgendwann auch angefangen Vorträge über CouchDB zu halten. 2008 wurde ich zur OSCON in Portland, Oregon eingeladen, um über CouchDB zu sprechen und von da an habe ich auch stetig Aufträge zur Beratung rund um CouchDB bekommen. Im Herbst 2008 habe ich direkt ein großes Projekt mit der BBC gemacht, die CouchDB heute noch im Einsatz hat, um kritische Daten ausfallsicher verfügbar zu halten.
Seit 2009 habe ich dann auch mit am Kern in Erlang entwickelt (den C++-Teil waren wir dann schon losgeworden). Seit dem bin ich im Projekt an allen Ecken und Enden tätig, und mit dem Ausstieg von Damien Katz 2011 habe ich dann die offizielle Projektleitung übernommen, obwohl das im Rahmen der ASF eher bedeutet, dass ich mich um die Gesundheit des Projekts und verschiedene administrative Aufgaben kümmere, als konkret die Technik voranzutreiben. Das hat inzwischen die gesamte Entwickler_innengemeinde übernommen, obwohl ich auch dazu weiterhin konkret beitrage.
Mein letztes größeres Projekt war (Überraschung!), das Build-System, welches wir für das sehr bald kommende 2.0-Release komplett modernisiert haben.
Die Apache Software Foundation (ASF) ist eine Organisation zur Förderung von Open Source-Software. Zu den Apache-Softwareprojekten gehört auch der meistbenutzte Webserver im Internet, der Apache HTTP Server. Welche Vorteile bringt es mit, Projekt-Mitarbeiter einer so großen Organisation zu sein und wie ist das Arbeiten in solch einer großen Community?
Es gibt mehrere große Punkte, die für die ASF sprechen:
– Die ASF gibt einen Rahmen zu Projektführung vor, der seit über 15 Jahren, mit hunderten von Projekten erfolgreich genutzt und stetig weiterentwickelt wird. Statt Softwareentwicklung steht hier das Community-Building im Vordergrund. Die Begründung ist einfach: Wenn sich genug fähige Leute um ein Projekt sammeln, dann kommt da von alleine gute Software bei raus. Wenn die Leute fehlen gibts auch keine Software. Desweiteren wird auf Dinge wertgelegt, die in anderen Open Source Projekten vielleicht erst später relevant, und dann Problematisch werden:
– Das Abkoppeln von Firmen die am Projekt beitragen von der Projektführung: Konkret gibt es bei CouchDB mehrere Firmen, u.a Neighbourhoodie Software, aber auch bekanntere wie IBM, die zu CouchDB beitragen. Keine dieser Firmen, und auch keine Einzelperson, die am Projekt beiträgt, kann im Alleingang entscheiden, wie die Zukunft für das Projekt aussieht. Alle haben eine gleichwertige Stimme, aber ein ASF-Projekt kann nie von einer einzelnen Firma übernommen werden. Die ASF stellt damit eine Platform bereit, die allen Teilnehmern, kommerziell oder nicht, die gleichen, fairen Bedingungen auferlegt, um sich am Projekt zu beteiligen. Daraus ergibt sich, dass selbst konkurrierende Firmen (in den Fällen von z.B. Apache Lucene, Hadoop oder Cassandra), fair miteinander umgehen müssen, und somit alle zusammen das Projekt fördern, statt es für sich ausnutzen zu können.
– Das Abkoppeln von einzelnen Personen zu bestimmten Bereichen im Projekt. „Marina ist für die Dokumentation zuständig“ ist für die ASF nicht tragbar, es darf nicht an einer einzigen Person hängen, denn im Falle des Ausscheidens dieser hat das Projekt ein Problem. Um dem vorzubeugen, gibt es ein paar Richtlinien, die immer darauf ausgelegt sind, dass sich mehrere Personen in einem Gebiet auskennen, die es dann so dokumentieren, dass jede/r andere Freiwillige schnell einspringen kann.
– Die Sicherung und Verteidigung von Trademarks: Je populärer ein Projekt wird, desto mehr Leute wollen sich damit assoziieren, und selbst wenn sie es gut meinen, kommt da manchmal bei raus, dass sie die Marke eines ASF-Projekts verletzten. Die ASF kümmert sich da von Anfang an drum, sodass späteren Streitigkeiten vorgebeugt wird. Das Projekt muss jedoch das Trademark verteidigen, wenn mal wieder jemand nicht nach den Regeln spielen will. Das nimmt manchmal mehr Zeit in Anspruch als die eigentliche Projektentwicklung. Bislang haben wir aber alles gut lösen können.
– Der Umgang mit Sicherheitslücken ist außerdem relativ strikt und an Industriestandards angelehnt. Das ermöglicht Endnutzern, besonders Firmen, sich darauf verlassen zu können, dass mit Sicherheitsproblem verantwortungsvoll umgegangen wird.
– Es gibt kein Problem, was nicht ein Apache Projekt schon mal gesehen hat. Wir können auf die Hilfe von über 4000 Personen zurückgreifen, falls wir irgendwelche Schwierigkeiten sehen. Besonders technisch ist es spannend: für CouchDB, z.B. was zentral über HTTP angesprochen wird, jemanden wie Roy Fielding, eine der Hauptpersonen zum Thema HTTP und Erfinder von REST, nur eine kurze Email entfernt sitzen zu haben.
Du bist einer der Kuratoren der JSConf EU, einer Konferenz für die JS-Gemeinschaft in Europa die jedes Jahr in Berlin stattfindet. Wie kam es zu diesem Projekt?
Ich hole mal etwas weiter aus, weil ich finde, dass die ganze Geschichte spannend ist. Es ist 2007/08 und ich bin über AIM mit Chris Williams aus Arlington, Virginia (die Nachbarstadt von Washington, DC) befreundet. Ich bin nicht mehr so 100% sicher, wie wir uns kennengelernt haben, aber es war vor Twitter, als man noch Kontakte über Instant Messenger aufrecht erhalten hat.
Chris fährt im Juli 2008 auf die Konferenz RubyFringe in Toronto, die Pete Forde ins Leben gerufen hat. Die Vortragenden lesen sich wie ein Who is Who der Technologieszene heute, aber damals war alles noch am Anfang: Chris Wanstrath (Mit-Gründer von GitHub) nennt damals nur sein Blog „ErrTheBlog“ als Referenz, Blake Mizerany (der lange und wichtig bei bei Heroku war) ist über das Ruby-Framework Sinatra bekannt. Tobias Lütke, der neulich erst mit Shopify an die Börse gegangen ist war damals noch bei Jaded Pixel, Yehuda Katz, der inzwischen für Rails, Ember.js, Bundler und noch einer ganzen Menge anderer wichtiger Software bekannt ist, hat damals schon an jQuery und Merb gearbeitet. Für Merb ist auch der (inzwischen leider schon verstorbene) EngineYard-Gründer Ezra Zygmuntowicz bekannt. Ich liste hier nur ein paar Namen auf, aber irgendwie hat es Pete Forde mit dieser Konferenz geschafft, eine beeindruckende, fast visionäre Gruppe von (leider fast ausschließlich Männern) zusammenzubekommen, die der Tech-Welt ihren Stempel noch aufdrücken würden.
Chris ist von der Konferenz auf jeden Fall hellauf begeistert, denn sie steht im starken Kontrast von größeren und auf Profit orientierten Produktionen, wie z.B. der von O’Reilly betrieben Railsconf. Im Herbst 2008, da Chris an der US-Ostküste lebt, ist es bei mir schon etwa halb drei nachts, chatten wir ein wenig und Chris fragt, wie es sich anhören würde, wenn er eine JavaScript-Konferenz organisieren würde. Zu dem Zeitpunkt hat jede noch so unbekannte Programmiersprache eine Konferenz- und Meet-up-Szene. Ich selbst bin schon seit 2001 auf Konferenzen, damals noch PHP, und beim kurz darüber Nachdenken, ob es so was für JavaScript schon gibt, fällt mir absolut nichts ein, also sage ich: „Ja, das würde sich sehr gut anhören“. Chris darauf nur ganz trocken: „Gut, ich habe nämlich angefangen, eine zu organisieren“.
Im April 2009 soll dann in Washington DC die erste JSConf stattfinden und ich bin natürlich auf jeden Fall dabei. Im Februar davor chatten Chris und ich, wieder mitten in der Nacht für mich, und er beichtet mir, dass er nur ganz wenige Tickets verkauft hat, die Hypothek für sein Haus die Anzahlung für die Location trägt, und er am nächsten Tag mit seiner Frau Laura den Vertrag wieder auflösen will, und die Konferenz absagt, weil sie ihr Haus nicht verlieren wollen. Ich will trotzdem hilfreich sein und sagen, falls es doch noch irgendwie klappt, und sich Tickets verkaufen, und die Konferenz ein Hit wird, dass ich sie dann nach Europa hole. Kurz danach schlafe ich ein und vergesse, dass ich das jemals gesagt habe.
Am nächsten Tag fahren Chris und Laura also von Arlington nach Washington um mit dem Hotel die Vorab-Vereinbarung aufzulösen. Bevor sie losfahren schreibt Chris noch schnell auf die JSConf-Webseite, dass sie ausverkauft sind, weil er nicht will, dass sich jemand an dem Tag noch ein Ticket kauft, dass er dann wieder erstatten muss. Er hat aber noch keinen Nerv gehabt, auszuformulieren, was er zur Absage der Konferenz schreiben will, deswegen macht er erst mal nur die Tickets dicht. Die beiden fahren also los und als sie am Hotel ankommen schaut Chris noch mal kurz in seine Emails (das iPhone war da grade relativ neu) und hatte von so vielen Leuten anfragen, ob man noch *irgendwie* an ein Ticket kommen könnte, die noch fehlten, damit die Konferenz stattfinden kann. Chris und Laura beschließen daraufhin dem Hotel eine Zusage zu geben und die Konferenz stattfinden zu lassen.
Im April finden wir uns also alle in Washington ein um die erste JSConf ever zu besuchen. Als Entwickler einer Datenbank hatte ich damals viel mit den verschiedenen Programmiersprachen-Communities zu tun, PHP, Ruby, Python, Java usw. Und aus allen Bereichen war jemand da. Wir saßen mit knapp 120 Leuten in einem kleinen Konferenzsaal und hörten uns Talks über JavaScript an. Und zum Nachmittag dämmert es uns gemeinsam langsam: Wir sind hier nicht Ruby-Entwickler_innen, die auch JavaScript machen, und PHP Entwickler_innen, die auch JavaScript machen, oder Python-Entwickler_innen, die auch JavaScript machen. Wir sind JavaScript Entwickler_innen die auch all diese anderen Sprachen machen. Wir sind eine Community. Zum Abend sind dann endgültig alle mit einem Fieber angesteckt, das man heute noch spüren kann.
Am Ende des zweiten Tages, Chris und Laura sind dabei die Konferenz abzuschließen, sich bei allen zu bedanken, als Chris plötzlich sagt: „Könnte Jan mal aufstehen?“, ich, verwirrt, stehe auf. „Wisst ihr“, sagt Chris, „mit dieser Konferenz wäre es fast nichts geworden. Und als es grade am schlimmsten aussah, hat Jan uns versucht Hoffnung zu geben und gesagt ,Wenn die JSConf ein Erfolg wird, dann hole ich sie nach Europa‘. Nun, ihr müsst entscheiden, ob ihr diese Konferenz einen Erfolg nennen wollt, aber wenn ihr es so sieht, dann sagt es Jan, denn dann gibt es JSConf bald auch in Europa.“, ich fange leicht an zu schwitzen, aber bevor ich es merke bricht ein tosender Applaus über mich herein, denn die Teilnehmer fanden die erste JSConf wirklich sehr gut, und es gibt heute niemanden, der sich an die beiden Tage in Washington nicht noch gerne erinnert.
Zum Glück hatte ich am Abend vorher auf der Konferenzparty Holger und Malte getroffen, die sich auch schon gedacht haben, dass man sowas mal ein Europa machen müsste, und so haben wir uns dann auf dieses wilde Abenteuer eingelassen.
Im November 2009 findet in Berlin also die erste JSConf EU mit knapp 200 Leuten statt und wird aus dem Stand ein voller Erfolg. Chris und Laura sind per Videoschalte in der Abschlußkundgebung dabei und derselbe Community-Spirit, der uns in Washington zusammengebracht hat, bringt uns auch in Berlin zusammen. Damals im Publikum war auch Tiffany Conroy, die seit 2012 bei uns im Team ist.
Und als besonderes Schmankerl, Ryan Dahl, der Erfinder von Node.js kommt in letzter Minute zu uns ins Line-Up und stellt zum ersten mal einer größeren Öffentlichkeit Node.js vor. Sein Vortrag ist heute immer noch einer der meist-gesehensten Videos unserer Serie (vor 2012 waren die Videos leider nicht bei YouTube gehostet, da gingen die meisten View-Counts verloren).
Die nächste JSConf EU findet Ende September in Berlin statt und wir erwarten etwa 600 JavaScript-Begeisterte. Tickets gibts keine mehr, außer man wird Sponsor. Schreibt mir einfach: jan@jsconf.eu, wenn ihr sponsorn wollt.
JSConf selbst wird inzwischen als Franchise betrieben und in neun Ländern aufgelegt. Desweiteren gibt es über 20 Konferenzen die zur unmittelbaren „JSConf Familie“ gehören und noch mal über 50, die die Grundlage der community-freundlichen Konferenz genommen haben und mit ihren Tehmen besetzt haben. Wir Organisatoren helfen uns untereinander sehr viel. Wenn Du auch eine JSConf betreiben möchtest, gibt es hier eine Anleitung.