Archive | February, 2012

Auf Git & Mercurial wechseln – ohne Furcht

26 Feb

Am 20.3.2012 halte ich in Frankfurt auf dem Atlassian Unite einen Talk: “DVCS in the Enterprise: How Atlassian made the switch”. Der Vortrag handelt von unseren Migrationserfahrungen von Subversion zu Mercurial und Git.

Jeder der noch Subversion zur Versionskontrolle einsetzt wird heutzutage schief angeschaut und gefragt:  ”Hast du denn noch nicht von Git oder Mercurial gehört. Das benutzt man doch heutzutage”. Ich persönlich kenne auch kein Team, dass bei einem neuen Projekt noch SVN oder sogar CVS einsetzt (Wenn es nicht schon eine SVN Server gibt, den man benutzen muss). Die Argumente der Verteidiger von zentralisierten Versionssystemen sind meist:

  • wir entwickeln doch keinen Linuxkernel, bei uns sind alle Codeänderungen wichtig und müssen im Master übernommen werden
  • wir arbeiten eh alle mit Netzwerkanschluss am Code. Wir brauchen kein offlinefähiges Repository
  • bei uns arbeiten alle auf dem Trunk; wir brauchen die ganzen Merging-Vorteile gar nicht

DVCS – viele Vorteile

Verteilte Versionskontrollsysteme bieten die gleichen Features wie ihre zentralisierten Kollegen und darüber hinaus noch mehr:

  • vollständige lokale Historie des Quellcodes (viel schneller)
  • wirklich jeder Commit und Comitter wird in der Historie festgehalten – nicht nur derjenige der den Merge durchgeführt hat
  • einfaches und sehr mächtiges Mergen (keine Angst vor langen Branches)
  • neue Möglichkeiten für Continuous Integration / Delivery mit Code-Staging
  • Die Toolunterstützung ist teilweise besser
  • es geht viel schneller den Code zu mergen oder einen Branch/Fork zu erstellen

Angst vor dem Wechsel?

Die Vorteile liegen auf der Hand. Es liegt meiner Meinung nach eher an der Furcht vor einem Wechsel aus zwei Gründen:

  1. Angst, dass das Team das Konzept hinter DVCS nicht versteht  und somit viel Zeit beim Lernprozess verliert.
  2. Angst vor der Migration. Der Wechsel auf ein neues System an einer so zentralen Stelle kann den Entwicklungsbetrieb für mehrere Tage lahmlegen, oder es kann gar nicht alles vollständig migriert werden.

Unsere Erfahrungen

Natürlich hatten wir bei Atlassian auch bedenken vor einem Wechsel auf ein konzeptionell neues Versionskontrollsystem. Wir haben es allerdings geschafft ohne Downtime für unsere Entwicklung den Wechsel durchzuführen. Auch haben wir vorher im Team den Wechsel im einzelnen besprochen und auf unseren Wiki-Seiten dokumentiert, so dass jeder am Ende keine Bedenken mehr vor dem Wechsel gehabt hat.

Wir haben auch erst einmal nichts an unserer Art, wie wir Code einchecken, Branches erstellen und mergen, geändert. Es hat sich allerdings schnell herausgestellt, das die Möglichkeiten, die einem Git und Mercurial bieten, die tägliche Arbeit beschleunigen und vereinfachen können… Aber: Die ersten Wochen haben wir genauso wie vorher gearbeitet (bis auf die Tatsache, dass wir nicht mehr subclipse oder ähnliches benutzen haben).

Die Migration wurde bei uns sorgfältig geplant. Wir haben zeitweise den in Subversion eingecheckten Code automatisiert in Mercurial importiert und Builds davon erstellt. Das ganze hat uns die Sicherheit gegeben, dass der Code in einem DVCS genauso gut – wenn nicht sogar besser – aufgehoben ist als in SVN.

Mein Kollege Stefan Saasen hat einen sehr detaillierten Blogeintrag für Praktiker darüber geschrieben, wie das Confluence Team zu Git gewechselt hat.

Noch mehr Erfahrungen?

Ich halte einen Vortag über genau dieses Thema auf der in Frankfurt stattfindenden Atlassian Konferenz (Atlassian Unite). Dort werde ich noch einmal genau erklären was uns der Wechsel gebracht hat, wie wir unsere Workflows ausgewählt haben und wie verschiedene Teams zu DVCS migriert sind. Außerdem finden auf dem Atlassian Unite noch weitere Talks zu JIRA, Confluence, agiler Softwareentwicklung und vieles mehr statt. Das ganze Programm gibt es hier.

Blitzstart in den neuen IT Job

22 Feb

Für neue Mitarbeiter hat Atlassian seit zwei Jahren ein eigenes Programm entwickelt. Wir finden es extrem wichtig, dass neue Atlassianer so schnell wie möglich unsere Kultur, Werte und Grundlagen aus jedem Arbeitsbereich kennenlernen. Bei Google sind es Noodles und bei uns heißt es Bootcamp.

Bootcamp

Das Bootcamp geht über 2-3 Wochen mit ca. 4 Präsentationen am Tag. Man lernt beispielsweise wie ein Technischer Redakteur zu denken, erfährt alles über UI-Design bei Atlassian und lernt Scott & Mike kennen, die Gründer von Atlassian. Die Vorträge werden von einem Entwickler, QA-Mitarbeiter, Team Lead oder einem anderen “normalen” Atlassian Mitarbeiter gehalten. Normalerweise beginnt man mit dem Bootcamp am ersten Arbeitstag, ich durfte nach 6 Monaten Atlassian auch zum Bootcamp nach Sydney. Nach einem Tag voller Informationen ist man am Abend ziemlich erschlagen, nach so vielen interessanten Themen, vorgetragen von noch mehr interessanteren Persönlichkeiten. Der JIRA Plugin-Tages-Workshop war mein ganz persönliches Highlight.

Will man, dass sich neue Mitarbeiter schnell einarbeiten, sollte man ein solch intensives Training zum Jobstart einführen. Es dauert manchmal Jahre, bis man bei einem neuen Arbeitgeber verstanden hat, wie das Unternehmen tickt oder wie andere Abteilungen arbeiten. Man verliert am Anfang zu viel Zeit damit, zu verstehen, wer wichtig ist, welche Abteilung wofür zuständig ist oder einfach nur warum es überhaupt keinen Vertrieb gibt (-> wir haben kein einzigen Vertriebsmitarbeiter bei Atlassian).

Hack House

Für unsere Studienabgänger haben wir uns dieses Jahr etwas ganz besonderes ausgedacht. Wir haben ein Haus direkt am Strand gemietet. Aus 430 Bewerbern haben wir die besten 10 Abgänger für unser Geek-Abenteuer ausgewählt. Dabei haben wir darauf geachtet, dass das Team aus verschiedenen hoch motivierten Spezialisten besteht, die sich gegenseitig bei den Aufgaben unterstützen können. So hatten wir Studenten für Web-Design, Java Script-Entwickler, Datenbankarchitekten, etc. Unsere 10 “Gradlassians” wurden gebeten Badesachen, Surfboards und Sonnencreme einzupacken, denn ein bisschen Spaß ohne Tastatur sollte man ja auch noch haben. Es gab allerdings 5 Regeln im Hack House:

  • seinen eigenen Kram aufräumen
  • 23:00 Uhr Nachtruhe
  • keine unangemeldeten Besucher
  • Lebe Atlassian’s Werte
  • Arbeite hart und hab’ Spaß

Dazu hat Atlassian einen eigens fürs’ Hack House entworfenen Stundenplan zusammengestellt:

Man konnte die Hack House Bewohner über unsere Webcam beobachten. Das ganze hatte ein bisschen was von BigBrother für Geeks.

Nach einem Mini-Bootcamp haben unsere ehemaligen Studenten einen ganzen FedEx Day absolviert. Die Ergebnisse wurden allen Atlassian Mitarbeitern am Freitag Nachmittag präsentiert. Es ist unglaublich was so eine konzentrierte Lern- und Arbeitswoche an Produktivität und Motivation in unseren Gradlassians hervorgerufen hat.

Wir sind immer auf der Suche nach neuen motivierten Talenten. Hier gehts’ zu unseren Stellenangeboten

Blitz Test – Die QA beim Softwaretest unterstützen

6 Feb

Für das ganze Unternehmen ist die Qualität der Software wichtig. Warum also nicht das ganze Unternehmen in die Verantwortung nehmen, dass die Qualität stimmt? Und das mit der Unterstützung einer leichtgewichtigen Methode wie Blitz Tests?

QA bei Atlassian

Die QA bei Atlassian ist nicht allein für die Qualität der Software verantwortlich. Vielmehr ist für die Fehlerfreiheit von JIRA, Confluence, Fisheye, Bamboo und Co. bei uns jeder verantwortlich! Bei uns testen auch Softwareentwickler, deshalb nennt sich unsere QA auch nicht Quality Assurence sondern Quality Assistance. Damit kann sich unsere QA viel besser auf Testautomatisierung und Testinfrastruktur konzentrieren.

Blitz Test

Atlassian experimentiert gerne mit neuen Methoden und so sind wir auf Blitz Tests gekommen: Es ist so was wie ein Flashmob bei dem man die Software testet… allerdings nicht ganz so spontan. Mitarbeiter aus verschiedenen Teilen des Unternehmens, wie Entwicklung, QA, Produktmanagement, Marketing, Support und jeder der Lust und Zeit hat  nehmen sich eine Stunde Zeit, eine neue Version auf Herz und Nieren zu testen! Ziel ist es nicht nur einzelne Teile der Software zu überprüfen, sondern das gesamt Produkt. Dieser Blick geht ja meistens beim alltäglichen Testen und Entwickeln ein wenig verloren. Dabei gibt es kaum Regeln:

  • eine fest definierte Timebox, damit Anfang und Ende der Blitz Test Session klar ist!
  • Aufteilung der Teams auf verschiedene größere Teile der Software
  • die QA sammelt Fehler und wertet diese am Ende aus

Das ist es schon! Eine Stunde konzentriertes Testen!

Besseres Produkt, besseres Gefühl

Auch wenn man die einzelnen Teile des Programms schon getestet und die Tests automatisiert hat, sind bei uns doch noch immer Fehler vorgekommen, die nur im Blitz Test aufgefallen sind. Eine Stunde Konzentration auf das Testen der neusten Software, bringt auch Abwechslung in die tägliche Arbeit, stört aber eigentlich nicht sehr die aktuelle Entwicklungsiteration. Natürlich bedeutet es aber Vor- und Nachbereitungszeit für die QA, bringt aber anderseits unheimlich viel Unterstützung. Das ganze wirkt sich auch noch positiv auf die Teambildung aus: Man ist als Team und Unternehmen gemeinsam dafür verantwortlich, ein gutes Produkt auszuliefern. Einfach mal ausprobieren und die Fehler am Besten mit Bonfire in JIRA eintragen :-)

Follow

Get every new post delivered to your Inbox.

Join 26 other followers