Oktober 2007 - Einträge

Am 22. Oktober 2007 hatte ich dank der Mitgliedschaft bei Internet-Briefing die Möglichkeit bei Google Zürich einige interessante Einblicke in die "Google Engineering Culture" zur erhalten.

Nach unterzeichneter Geheimhaltung gab es im ersten Teil eine Führung durch das unauffällige, 6stöckige Gebäude an der Freigutstrasse. Im Inneren des Gebäudes sieht es etwas wie in einer Studentenunterkunft aus: Diverse Sofas, Küche, Snackecken mit einer Unmenge von Brotsorten (!) und diversen Süssigkeiten und Getränken, Billardtisch, Töggelikasten... also alles was man zu exzellenten Entwicklung von Software so braucht :-). In den Gängen (und vereinzelt gar am konzentriert arbeiten) sind Leute aus über 40 Ländern bei Google Schweiz tätig, die meisten im Alter zwischen 30 - 40 Jahren.

Die sichtbare Hardware war sehr individuell. Augenfällig die oft vorhandenen 2 grossen Flachbildschirme von Dell (je nach Bedürfnis horizontal oder vertikal angeordnet). Ebenfalls interessant die (Video-) Konferenzräume mit den immensen Flachbildschirmen - bei Google ein sehr beliebtes und nützliches Mittel zur weltweiten Gruppenkommunikation. Der eine Flachbildschirm zeigt den Sitzungstisch und Teilnehmer des eigenen Raums, der andere Flachbildschirm die Gruppe im entfernten Raum. Diese Anordnung vermittelt das Gefühl, gemeinsam im gleichen Raum zu sitzen. Wirklich erstaunlich.

Nach der Führung stellte Bernhard Seefeld (Technical Lead Developer) im Dachgeschoss verschiedene persönliche Eindrücke von Google vor. Google setzt sehr stark auf den Engineering Ansatz („Google counts in numbers"), kennt praktisch keine Manager ohne technisch guten Background. Es ist auch möglich, auf technischer Basis „Karriere zu machen" (Principal, Distinguish...), ohne direkte Führung zu übernehmen.

Weiter sind die Hierarchien sehr flach - bis zu den Gründern Larry Page und Sergey Brin sind es wenige Stufen. Ebenso überraschend (auch für Bernhard Seefeld selber) ist die Tatsache, wie einfach es ist, als Google Mitarbeiter einen persönlichen Termin mit Larry oder Sergey zu bekommen.

Der Wechsel von Personen in andere Teams und Projekte ist einfach möglich, es gibt keine zwanghafte längerfristige Bindung an bestimmte Themen - Selbstverantwortung und Autonomie sind wichtig. Es scheint fast so, als könne jeder alles etwas - nichts ist unmöglich. Qualifikationsgespräche in klassischer Form gibt es nicht, es wir auf 360° Feedbacks gesetzt.

Ebenfalls stellte Bernhard die 10 Prinzipien bei der Google Software Entwicklung vor:

1.     Es gibt nur ein zentrales Source Code Repository (Perforce)

2.     Jeder hat vollen Zugriff und kann jeden Code anpassen

3.     Get, Configure, Make - Jeder kann jedes Projekt

4.     Es gibt weltweit gültige Coding-Standards (Adaption von Lint)

5.     Vor dem Check-In gibt es zwingende Code Reviews

6.     Überall gibt es Unit-Testing (Code-Coverage bei über 90%, Tool Selenium)

7.     Automatisches Ausführen der Unit Test und Informieren bei Fehlern

8.     Viele interne, selber entwickelte, firmenweite Tools

9.      Kurze Projektphasen (Project Cycles) unterstützen die schnelle Entwicklung

10.  Peer Reviews

Ebenfalls lesenswert: Our Philosophy - Ten things Google has found to be true

Allgemein wird die Entwicklung von den Produkten sehr von den Engineers selbst vorangetrieben, die Team (mit 3-5 Engineers) entscheiden grundsätzlich selbst was Sie tun - in wenigen Fällen kommt der Produktmanager zum Einsatz. Die 20% Regel (sprich, jeder Engineer kann 20% seiner Arbeitszeit an irgendwas Arbeiten, was „in irgend einer Form mit Google in Verbindung gesetzt werden kann")  fördert scheinbar die Kreativität.

 

mit no comments
Abgelegt unter: