Are you nerd enough to code with us?

Ich habe lange überlegt, ob ich durch diesen Artikel mein Blog oder mich selbst korrumpieren würde. Ich meine, ich habe ganz klare Vorstellungen davon, ob man Webseiten kopieren darf, oder dass man Werbung, die man als Artikel tarnt, niemals versuchen darf, der Community zu verkaufen. Diese Prinzipien sind für mich nicht verhandelbar.
Ich habe mich entschieden, dass dieses “Stellenangebot” hier diese Prinzipien nicht verlezt: cleverbridge, die Firma für die ich arbeite und für die meine Kollegen und ich seit Monaten nach ein paar guten Codern suchen, entscheidet nicht, wen wir einstellen. WIR eintscheiden das – also auch ich. Das ist ein wahnsinns Gefühl, die Freiheit zu haben, es zu entscheiden mit wem man arbeitet und mit wem nicht. Wir machen uns ganz große Mühe, jemanden zu finden, der zu unseren Anforderungen und zu unseren Firmenkultur passt, also jemanden wie wir. Und wenn ich das will, dann muss ich es erzählen, wie es ist, bei cleverbridge zu arbeiten.  Betrachtet also diesen Artikel als “Bedienungsanleitung” zu uns cleverbridge-ler.
Unsere Kunden sind Softwarehersteller, Leute wie wir. Unsere Teams haben den Auftrag, ihre Anforderungen mit zu gestallten und sie zu erfüllen, ohne dass wir unsere Enduser, die durch unser E-Commerce-Portal das Produkt kaufen, als Betatester nutzen.
Das bedeutet, wir haben nicht nur die Aufgabe sondern auch die volle Unterstützung des Unternehmens, uns und unseren Code ständig zu verbessern. Wir – Entwickler UND Unternehmen – sind aktiv in der Community, veranstalten öffentliche Events wie UserGroup-Treffen und Scrumtisch, sponsern Konferenzen, wie die dotnet Cologne, reisen zu Open Spaces und andere Konferenzen, organisieren Dojos und Community of Practice-Sessions.
Warum? Dieses Unternehmen hat es verstanden, was für eine Verantwortung auf jedem einzelnen liegt. Wir sind schon mal eine der Top E-Commerce-Firmen der Welt. Das bedeutet arbeiten mit Geld ⇒ Verantwortung. Das bedeutet, wir sind rund um die Uhr, 7 Tage die Woche von allen Kontinenten  vergleichsweise gleich schnell erreichbar. Konkret heißt das um die 99%/Jahr, mit einer ca. doppelt so großen Geschwindigkeit, als unsere Konkurrenten ⇒ Verantwortung. Eine Verantwortung, die wir allerdings alle Teilen: beim Eintritt eines Problems wird niemals der Schuldige sondern immer eine Lösung gesucht.
Wir suchen Leute, die mit dieser Verantwortung umgehen können, sie sogar brauchen, und die die damit verbundene Freiheit schätzen.
  • Wir suchen Leute wie ihr und ich, die weiter als euren Tellerrand schaut, Nerds mit umfangreichem c#-Wissen und mit der einen und anderen Erfahrung schon auf dem Buckel.
  • Wir suchen keine Zertifikats-Besitzer, sondern Macher und Könner.
  • Wir suchen keine Stars sondern Peers, die lernen und lehren wollen.
  • Wir suchen Teamplayer, die wissen, wann und wobei man Kompromisse machen kann und wobei nicht.
  • Wir suchen Leute die Fehler machen können und daraus lernen.
  • Wir suchen Leute, die dies hier wollen: Clean Code, SOLID, TDD, Pair Programming, Teamkollegen Leiten und Begleiten.
Das ist sicherlich sehr viel, aber sonst wäre es doch einfach, oder? Und eins ist klar: bei uns wird die Arbeit niemals einfach, niemals langweilig, niemals monoton und immer geschätzt. Und wenn man mal eine Pause braucht: eine Runde Mario Kart oder Tischtennis-Spiel ist auch immer eine Option.

You never code alone!

Meine letzte Woche in der Arbeit würde ich gerne the cleverbridge-University-Woche nennen, so großartig war sie. Wir haben 3 von 5 Tagen damit verbracht, unseren Code, unsere Prozesse, unseres Miteinander zu analysieren, zu sezieren, zu verbessern:

  • Dienstag hatten wir fast einen ganz Tag Architektur-Workshop um die Vision und die Strukturen für unseren Code zu definieren.
  • Den Freitag haben wir gemeinsam bei der dotnet-cologne 2014 verbracht.

Das wichtigste hat allerdings am Donnerstag stattgefunden: wir haben uns einen ganz Tag Zeit genommen, um von Ilker, meinem TDD-Mentor, so viel wie möglich über Specs, Tests, Teams und Kommunikation zu verstehen.

Es geht nichts über Verstehen!

from requirement to specifications
Wie schafft es ein Team, das und nur das zu bauen, was der Kunde braucht?

  1. Findet alle zusammen – product owner, Entwickler, Tester – das richtige Wording, die “ubiquitous language” heraus, die die Anforderung beschreiben
  2. Versteht alle zusammen, worum es geht.
  3. Definiert zusammen das Feature
  4. Schreibt zusammen die Akzeptanzkriterien

Wie werden eigentlich eine paar Menschen zu einem Team?

Dies ist wahrscheinlich das Problem aller Firmen weltweit, die sich weiterentwickeln möchten. Und das zu Recht: stell dir vor, du bist ein C#-Entwickler mit zum Beispiel Schwerpunkt Web, hast JavaScript warscheinlich noch nie als Programmiersprache betrachtet und von der Arbeit der anderen C#-Entwickler weißt nichts, außer dass sie existiert und sie irgendwann später erfolgen wird, nachdem du deine Aufgaben schon längst erledigt hast. Einen Abteilungsleiter hast natürlich auch und deine Entscheidungsgewalt beschränkt sich auf “soll ich foreach oder lieber LINQ verwenden?”

Das ist allerdings nicht alles: deine Aufgaben überschreiten niemals die Grenzen deiner Abteilung, genauso wenig wie dein Verständnis über die Anforderungen. Und das stört dich seit langem und nicht nur dich sondern auch den JavaScript-Typen und die Frontend-Entwicklerin und wenn du Glück hast, dann auch deinen Abteilungsleiter. Wenn das der Fall ist, dann hat deine Firma Glück: ihr seid offen für ein Crossfunktionales Team. Ihr musst nur diese Frage bejahen:

Bin ich bereit, jede Rolle in diesem Team zu erfüllen?
Auch mit der Gefahr, dass ich das nicht kann? Wenigstens noch nicht, oder noch nicht gut genug…

Jedes Team braucht noch ein paar Zutaten:

  1. Ein Ziel
  2. Eine Partizipation – eine gemeinsame “Teilhaberschaft”
  3. Den Respekt der Individualität
  4. Die gemeinsame Verantwortung

oder wie Ilker sagt “oder mindestens 3 davon plus jemanden, der die anderen die ganze Zeit daran erinnert”.

 

Ich will nicht behaupten, dass wir bereits alles darauf haben – aber wir sind auf dem besten Wege dahin. Und was das Wichtigste ist: wir werden diesen Weg sicherlich nicht verlassen.