Suche
Marcel Bruch von Codetrails über intelligente IDEs und seine Startup-Erfolgsgeschichte

"Es gibt viele Wege, Softwareentwicklung effizienter zu machen"

Diana Kupfer
© shutterstock.com/alphaspirit

Das Darmstädter Unternehmen Codetrails erhält 500.000 Euro Risiko-Kapital vom High-Tech-Gründerfonds, wie vor einigen Tagen bekannt wurde. Marcel Bruch, Gründer und CEO von Codetrails und langjähriger Eclipse-Committer, erklärt, wie das Startup die Investoren von sich überzeugen konnte, wie Softwareentwicklung effizienter werden kann – und welche Rolle intelligente Codevervollständigung dabei spielt. Auch den einen oder anderen Tipp für Software-Startups hat er in petto. 

JAXenter: Gratulation zur Finanzierungserfolg! Was war deine erste Reaktion auf die positive Nachricht?

Marcel Bruch: Die Pressemitteilung und die Entscheidung selbst lagen zeitlich ein wenig auseinander. Wir haben die Nachricht im Spätsommer direkt nach unserer Präsentation vor einem ca. 20-köpfigen Investitionskomitee bekommen. Die zehn Minuten zwischen Vortrag und Mitteilung sind sehr angespannt. Danach folgt eine enorme Erleichterung mit einer kurzen Phase der Freude. Und dann kommt wieder eine neue, andere Anspannung: Jetzt gilt’s.

Wir sind sehr glücklich, dass wir den High-Tech Gründerfonds überzeugen konnten, und freuen uns jetzt auf die Zusammenarbeit. Wir haben uns auch keine kleinen Ziele gesteckt, so dass wir uns nicht lange ausruhen können.

marcel bruchDr. Marcel Bruch ist Projektleiter von Eclipse Code Recommenders, CEO von Codetrails, Mitglied des Eclipse Architecture Councils und Co-Lead der Java User Group Darmstadt. Er spricht regelmäßig auf einschlägigen Konferenzen über Trends und Neuerungen in der Softwareentwicklung und vor allem in der Entwicklungsumgebung. Twitter: @marcelbruch

JAXenter: Es gab sehr viele Gratulanten, und gerade jüngere Startups wie ihr fragen sich wahrscheinlich: Wie haben die das hinbekommen? Gibt es ein Erfolgsrezept?

Bruch: Leider gibt es kein allgemeingültiges Rezept. Einen Finanzinvestor überzeugen zu können hängt von vielen Faktoren ab. Natürlich muss die Idee gut sein, aber alles steht und fällt mit einem klaren Konzept, wie aus einer Idee zahlende Kunden generiert werden können. Wer da keine schlüssigen Konzepte und keinen (Vertriebs-)Plan B und C in der Tasche hat, muss noch mal zurück ans Whiteboard.

Hier hilft es ungemein, einen Diskussionspartner zu haben, der sehr kritisch hinterfragt und prüft, ob die Argumente wirklich zusammen passen. Und wer wirklich auf die Suche nach Venturekapital geht, sollte mal fünf Probeläufe bei kleinen bzw. lokalen Business-Angels machen, bevor er bei einem Investor vorspricht, denn es gilt auch hier: „You never get a second chance to make a first impression…“. Es wäre schade, wenn du deinen besten Kontakt verbrennst, weil du nicht gut vorbereitet warst.

JAXenter: Seit 2011 ist Code Recommenders ein Eclipse-Projekt, seit 2013 existiert Codetrails. Was viele nicht mehr wissen dürften: Die Forschungsarbeit an der TU Darmstadt begann schon viel früher. Kurze Rückblende: Wann und wie fing alles an?

Bruch: Angefangen hat alles mit der Diplomarbeit 2006 und der Idee zweier Assistenten, dass man „doch sicher irgendwelche interessanten Muster im Quellcode finden können müsste, wenn man nur genügend Beispielcode analysieren würde“. Leider weiß ich nicht, was genau sich die beiden letztendlich vorgestellt haben, aber gut vier Jahre später ist aus dieser Idee das Code-Recommenders-Projekt entstanden.

Das erste Paper (damals noch zur Vorgängerversion von Code Recommenders) ist übrigens online verfügbar. Wer genau wissen will, wie es angefangen hat, sollte da mal rein schauen.

Intelligente Codesuche, Stacktrace-Suchmaschinen, Fehlererkennung

JAXenter: „Intelligente IDE“ ist ja ein ziemlich weit gefasster Begriff. Das Projekt Testroots, auch in einem akademischen Umfeld entstanden, z. B. wendet ihn auf den Bereich Testing an. An welchen weiteren Stellschrauben kann und sollte man aus deiner Sicht drehen, um IDEs insgesamt intelligenter zu machen?

Bruch: Wie du richtig sagst, kann so ziemlich alles in einer IDE intelligent(er) gemacht werden. Wenn ich von intelligenten IDEs rede, dann steht für mich immer die Kombination aus Tools und maschinellem Lernen bzw. Statistik im Vordergrund.

Grundsätzlich finde ich, dass unsere Entwicklungsumgebungen nicht ausreichend gut mit den Anforderungen heutiger Softwareprojekte umgehen. Zum einen sehen wir Firmenprojekte in der Größe vergleichbar mit dem jährlichen Eclipse Release Train (mehr als 50 Millionen Zeilen Quellcode). Die Codebasis ist so groß, dass Entwickler niemals alles gleichzeitig im gleichen Workspace halten können. Traue dich als Entwickler jetzt mal, eine öffentliche Methode umzubenennen. Das ist ein wenig wie Russisches Roulette zu spielen, und über kurz oder lang leider darunter auch die Codequalität.

Zum anderen verfügt jedes Projekt heute über etliche Abhängigkeiten. Wer z. B. in Eclipse einen (voll ausgereiften) Editor mit Syntax-Highlighting, Code Completion, Reconciling, etc. pp. entwickeln möchte, muss sich schnell mal einem Dutzend Micro-Frameworks auseinander setzen. Und bei Java-EE-Applikationen ist das kaum anders. Neben dem Lesen von Dokumentation und Beispielcode bleibt dann oft nur noch Trial and Error und produziert während der Entwicklung oft Unmengen von Laufzeitfehlern (eine NullPointerException hier, eine IllegalArgumentException da).

In beiden Fällen könnte man Entwickler deutlich besser unterstützen: zum Beispiel mit intelligenteren Codesuchmaschinen, die die bekannte Funktionalität aus dem Workspace auf beliebig große Workspaces überträgt. Oder mit einer Stacktrace-Suchmaschine, die einfach häufige Fehlermeldungen, die bei der Entwicklung einer Software auftreten, erfasst und Benutzern, aber auch Framework-Anbietern, die Möglichkeit gibt, bei Auftreten einer Fehlermeldung zu sagen, wie sie das Problem lösen können.

Das klingt alles noch ein wenig vage, aber wir arbeiten derzeit an einem automatischem Error Reporting in Eclipse Mars, mit dem wir eine solche Wissensdatenbank vielleicht schon bald aufstellen können.

Darüber hinaus gibt es noch eine Menge Möglichkeiten, wie wir Softwareentwicklung effizienter machen könnten. Finnland hat eigens hierfür das „Need 4 Speed“-Forschungsprogramm für finnische Softwarefirmen ins Leben gerufen, an dem Codetrails mitwirkt, und das DARPA investiert 11 Mio US-Dollar in die Forschung für intelligente Codevervollständigungsysteme. Es wird spannend sein zu sehen, was sich in den kommenden Jahren hieraus entwickeln wird.

Aufmacherbild: „Concept of hackering with a boy with laptop and binary code“ von shutterstock.com / Urheberrecht: alphaspirit

[ header = Roadmap und Tipps für Software-Startups ]

Roadmap

JAXenter: Welche Bereiche möchtet ihr als nächstes in Angriff nehmen?

Bruch: Neben der konsequenten Weiterentwicklung unserer bisherigen Tools stehen für uns im Moment drei Bereiche im Mittelpunkt: Intelligente Codesuche, Stacktrace-Suchmaschinen und Fehlererkennung – alles gestützt auf die Analyse von bestehenden Anwendungen, wie wir sie aus Eclipse Code Recommenders kennen, aber auch durch die Miteinbeziehung von Benutzerinteraktionen (Klick- und Navigationsverhalten) oder explizitem Feedback wie zum Beispiel Benutzerbewertungen oder dem „klassischen“ Crowdsourcing.

Ein weiteres Gebiet, auf dem wir uns bewegen, sind Möglichkeiten, den Zustand von Softwareprojekten anschaulich über Code Cities zu präsentieren. Sie stellen ein einfaches, aber mächtiges Werkzeug da, um die Entwicklung verschiedener Eigenschaften von Projekten über die Zeit zu verfolgen: zum Beispiel Komplexität, Fehleranfälligkeit oder Kopplungen im Code. 

Im Moment konkretisieren sich auch einige Ideen, diese ganzen Informationen in einem neuen Portal für Softwareentwickler zusammen zu bringen. Entschieden ist das allerdings noch nicht.

Auf Twitter rede ich immer wieder mal über die eine oder andere Idee, an der wir zur Zeit arbeiten. Wer sich für diese Themen interessiert, sollte häufiger mal vorbeischauen und auch mal den einen oder anderen Kommentar beisteuern. Wir freuen uns über jede neue Idee. 2015 wird für uns auf jeden Fall ein tolles Jahr.

JAXenter: Wie wollt ihr das Kapital dabei einsetzen?

Bruch: Wir haben ziemlich konkrete Anforderungen und stocken unser Team weiter auf. Wir sind immer auf der Suche nach Startup-affinen Entwicklern, die Spaß haben, sich mit Themen wie Suchmaschinen und Codeanalysen auseinander zu setzen und ab und an auch mal maschinelle Lernverfahren zum Einsatz bringen können. Wir suchen auch noch eine Verstärkung für den Vertriebsaufbau und generell die betriebswirtschaftlichen Aufgaben. Bei Interesse schaut bei uns vorbei. Wir freuen uns, euch kennen zu lernen.

JAXenter: Inwiefern wird auch das Open-Source-Projekt Code Recommenders von der Finanzspritze profitieren?

Bruch: Die Entwicklung und Einführung der Automatischen Error Reports für die Eclipse Mars Milestones ist zum Beispiel unsere neuste Contribution zu Eclipse Code Recommenders. Damit helfen wir Eclipse als Plattform, besser und stabiler zu werden und bekommen auf der anderen Seite Einblicke in die Schwierigkeiten, die bei der Entwicklung komplexer Systeme entstehen. Als Startup hat man selten die Gelegenheit, Systeme mit mehr als 50 Millionen Zeilen Quellcode studieren zu können, an denen mehr als 1000 Entwickler im Jahr arbeiten und das gleichzeitig von Millionen von Entwicklern benutzt wird. 

Kurz und knapp: Wir gewinnen unschätzbare Einblicke in die Softwareentwicklung und sammeln Erfahrungen, die wir in unsere kommerziellen Produkte oder Individuallösungen für unsere Kunden einfließen lassen. Es entwickelt sich also eine Wechselwirkung zwischen unserem Open-Source-Engagement und unseren kommerziellen Arbeiten. Mit dem Investment des High-Tech-Gründerfonds haben wir hier einen weiteren Katalysator, der uns erlaubt, schneller in die interessanten Ecken vorzustoßen und beide Seiten voran zu bringen.

Tipps für Software-Startups

JAXenter: Irgendwelche Tipps, die du jungen Gründern von Software-Startups mit auf den Weg geben möchtest?

Vielleicht drei Dinge.

Das erste ist: Ein Startup braucht ein Team. Als Ein-Mann-Team habt ihr keine Chance, gleichzeitig ein großes Produkt zu entwickeln und den Vertrieb bzw. das Marketing aufzubauen. Als Techniker neigt man dazu, den Nicht-Coding-Aufwand klein zu rechnen. Tatsache ist, dass sich die Entwicklungsaufgaben und „die anderen Dinge“ ungefähr die Waage halten. Wer das unterschätzt, verliert seinen Kunden aus dem Blick.

Das zweite ist: Niemand arbeitet umsonst, aber nicht jeder arbeitet gut oder passt ins Team. Gerade hier geht am Anfang sicherlich einiges schief, gerade, wenn es um Anteile an der Firma geht. Da hilft es, sich so oft wie möglich mit anderen Gründern zu unterhalten und Erfahrungen auszutauschen.

Und das dritte: keine Angst vorm Scheitern. Wie viele – wirklich gute – Ideen für ein Startup werdet ihr wohl in eurem Leben haben? Eben. Macht was draus!

 

Geschrieben von
Diana Kupfer
Diana Kupfer
Diana Kupfer war Redakteurin bei S&S Media für die Zeitschriften Java Magazin, Eclipse Magazin und das Portal JAXenter. 
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.