Integration Test Coverage with Sonar

I love to develop test driven, but even more I love code analysis tools that show me what to improve. Sonar is quite “popular” and common for Java developers and I’m using it already for years in different projects.

If you want to see integration test coverage, you have to set the jacoco maven plugin together with the fail safe plugin in your maven config (pom.xml):

    <build>
       <plugins>
            <!-- integration tests -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- for integration test coverage in sonar -->
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>jacoco-initialize</id>
                        <goals>
                            <goal>prepare-agent-integration</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <properties>
      <!-- needs to be set for jacoco's forked process -->
        <argLine>${env.MAVEN_OPTS}</argLine>
    </properties>

argLine is used as additional param in the javaagent command line section jacoco uses (needs to be set, otherwise the maven opts are not set for the forked process – OutOfMemoryException and so on…). See jacoco’s documentation for details.

The result in Sonar is pretty amazing:

sonar-jacoco

Veröffentlicht unter howtos | Verschlagwortet mit , , , , , , , | Hinterlasse einen Kommentar

Aus der Serie “Ich bin Ingenieur, ich kann das”: Wie man sein Nexus 4 repariert

keep-calm-and-trust-me-i-m-an-engineer-74[1]Als Ingenieur hab ich keine Scheu davor, Geräte und Maschinen auseinander zu nehmen. Die  Eingeweide von Computern und Notebooks sind mir bestens bekannt, meine Vespa kenne ich auch nackt, letztens musste der Geschirrspüler dran glauben und alles, was zu schrauben war, habe ich in meiner Wohnung selbst erledigt. Allerdings ist es ein wenig spannender, ein Smartphone auseinander zu nehmen, weil alles super filigran ist und auf kleinstem Raum angeordnet.

Nach dem ich wiedermal das Display meines Handies durch Ungeschick zerbrochen habe, dieses mal aber leider nicht nur das Glas, sondern das gesamte Display, habe ich auf Ebay nach einem Ersatzteil gesucht und bekam es “prompt” nach einem Monat aus China geliefert. Natürlich ist man da skeptisch, wenn man ein Nicht-Originalersatzteil aus dem Land der aufgehenden Sonne geliefert bekommt, aber das macht es um so spannender. Nachdem ich mir bereits das Nexus 5 als Nachfolger gekauft hatte und das Ersatzteil gerade mal 35€ kostete, hatte ich nichts zu verlieren, denn ein zerstörtes Nexus 4 ist nichts mehr wert und eine Versicherung hatte ich nicht (jetzt schon!).

Also, Ersatzteil angekommen, alle winzigen Schrauendreher bereitgelegt und es kann schon los gehen!

Auf YouTube findet man diese Anleitung von Fixez.com, an die ich mich weitgehend gehalten habe:

Man braucht einen Föhn zum Erweitern des Metalrahmens. Weiters einen Kreuzschraubendreher und einen Torx T5 in Barbie-Größe, letzteren hatte ich bereits von einer anderen Reparatur, ich glaube an meiner Digitalkompaktkamera, bereits in meinem Tool-Sortiment. Außerdem ist es sinnvoll, das Gerät mit einem Plektron oder ähnlichem aus Plastik zu öffnen und nicht wie ich mit einem Buttermesser, dann hinterläßt man weniger sichtbare Spuren auf dem Gerät.

IMG_20140619_191557

IMG_20140619_123549IMG_20140619_125539

 

IMG_20140619_191648

IMG_20140619_135814

 

Die Reparatur hat etwa eine Stunde gedauert und ich denke, wenn ich das regelmäßig machen würde, könnte man das Gerät wohl in 10 Minuten reparieren. Ein Spaß war es allemal und der Patient hat überlebt und strahlt wieder in gewohntem Glanz.

mechanical_engineer

Veröffentlicht unter howtos, technik | Verschlagwortet mit , | Hinterlasse einen Kommentar

Frauen in der IT – die helle Seite der Macht

prinzess-leia-gun

Auf der hellen Seite der Macht

Frauen in der IT. Na, und?

Es vergeht ja kaum eine Woche, wo nicht wieder in irgendeinem Magazin, Radio oder Zeitung skandiert wird: “Oh mein Gott! Es gibt so wenig Frauen in der IT”. Meine Antwort darauf: Na, und?

Ebenso dieses ermüdende Gerede über Vereinbarkeit von Kind und Karriere oder die Frauenquote im Management… Ich arbeite seit 13 Jahren erfolgreich in der Branche und leite gerade mein drittes agiles Software-Entwicklerteam und ich mache das mit Leidenschaft. Keiner fragt mich, ob ich wegen einer Quote eingestellt bin, sondern ich mache das, weil ich gut bin. Vom Team werde ich unterstützt (und geliebt) und die Geschäftsführer schätzen mich. Was will man mehr?

Wenn ich jemanden neu kennenlerne und dann erzähle, dass ich Software-Entwicklerin bin, kommt zu 90% immer eine dieser beiden verblüfften Reaktionen:

  • “Was? Wirklich? Ich kann mit Computern ja gar nicht umgehen…”
  • “Was? Wirklich? Da gibt’s aber nicht so viele Frauen, oder?”

Auf die erste Phrase antworte ich gerne mit dem naheliegenden Witz: “Ich auch nicht! Aber verraten Sie es nicht meinem Chef!” und auf die zweite würde ich am liebsten gar nicht antworten. Natürlich ist Small Talk dazu da, um über das Offensichliche zu plaudern, aber wenn ich nur jedes Mal einen Cent für jedes verwundertes Gesicht über meinen Beruf bekommen würde… Naja, ich würde vermutlich eh weiter das gleiche machen, das ich auch jetzt tue!

Wieso müssen wir immer so einen riesen Wind drum machen, was sich von ganz von alleine auflösen wird? Ich denke, das ist alles nur ein aufgebauschter Sturm im Wasserglas.

Aber, wo sind die Frauen?

Wo sind die Frauen?

Heute bin ich am BarCamp Graz und war bei den Session vom App Dev Camp, wobei ich (wiedermal) die einzige Frau war. Bei den letzten ViennaJS Meetups war ich eine der wenigen weiblichen, wobei man schon sagen muss, dass einige Langhaarige (und einige mit Brüsten ;) ) dabei waren.

Es gibt löbliche Veranstaltungen wie Rails Girls, die Frauen/Mädchen das Programmieren näher bringen sollen, oder Digitalista, ein Netzwerk nur für Frauen. Aber meine Frage ist: Brauchen wir Frauen denn das alles wirklich? Unterstreicht diese Aussondierung nicht noch zusätzlich, dass wir es nicht von allein schaffen und extra Hilfe brauchen? Ich hab noch nie einen Programmierclub gesehen, der dazu da war, nur Buben zu fördern – und glaubt mir, Frauen sind unter Burschen IMMER mehr als willkommen. Man kann z.B. in den Hackerclub Metalab in Wien reingehen und sich aufgrund der reinen Anwesenheit bewundern lassen.

Wie wärs, wenn wir einfach einmal so tun, als wär es ganz normal, dass es Frauen in der IT gibt? Reden wir lieber über dieses komische Völkchen der Geeks und Nerds. Das ist viel lustiger!

Frauen haben Vorteile in der IT

Selbstverständlich gibt es Leute, die Vorurteile haben. Der gewöhnliche Alltagssexismus gehört ja irgendwie zum Leben genauso dazu wie das Koffein zum Morgen, und ich denke nicht, dass sich das jemals stark ändern wird. Zwischen Männern und Frauen gibt es nun mal signifikante (körperliche) Unterschiede, die kann man nicht wegdiskutieren, also bekämpfen wir diese bitte nicht, sondern leben wir zusammen damit.

Während meiner drei Studien an der TU Wien bin ich benachteiligt wie auch bevorzugt worden. Es gibt da eine lustige Geschichte mit einem Statistik-Professor, die ich jedem gern mal bei einem Bier erzähle, wo mein (weibliches) Auftreten Eindruck gemacht hat. Klar gibt es Unterschiede, wie man behandelt und behandelt wird, aber vieles hängt eher meiner Meinung nach mehr von Sympathie als mit dem Geschlecht ab. Und das kann jeder als Vorteil nutzen.

Frauen haben ihre Reize, das ist klar. Objektiv gesehen sind sie einfach hübscher anzusehen und mit einem kleinen Anstoß kann man (als Frau) das auch Nutzen. Ich plädiere für eine breite Charmoffensive von uns Frauen statt dem Gefühl, sich durchsetzen zu müssen und extra auf “männlich” zu tun und imaginären Spielregeln nachzujagen.

Nachdem ich bei knallgrau gearbeitet hab, hat mir einer meiner Ex-Chefs auch gesagt, dass sie extra wieder eine Entwicklerin anstellen wollten, da es das Team sehr gut auflockert. Das kann ich nur bestätigen. Ich hab das Gefühl, dass es bei “Würstchenparties” einfach etwas gröber zugeht (Stichwort: Machogehabe, Alphatierverhalten… sorry für die Verallgemeinerung) und Teams generell besser funktionieren, wenn sie ausgewogen sind.

Würstchenparty

Würstchenparty

Interessant ist, dass in vielen Branchen Leute berichten, dass sich die Atmosphäre ab der Inklusion der ersten Frau ändert, viel stärker als bei jeder weiteren. Mit anderen Worten: Der Unterschied liegt darin, ob mindestens eine Frau im Team ist, nicht darin, wie viele es sind.

Man kann und soll Frauen in IT-Teams stecken, genauso wie qualifizierte Leute mit unterschiedlichen Hintergründen etc. Diversität ist immer eine Bereicherung!

Gendern heißt (nicht) Ändern

Und noch ein Wort zum Gendern: Ich glaube, dass das gerade nur ein pseudo-altruistischer Trend ist, der auf lange Sicht sich nicht bestand hat. Wieso Unterschiede suchen, sie betonen, und dann versuchen sie wieder umständlich aufzulösen?

Ich hatte auch Diskussionen, ob ich nun das Binnen-I bei meiner Dissertation verwenden soll, oder die doppelte Schreibweise (etwa “der Benutzer und die Benutzerin”) und habe schließlich komplett drauf verzichtet zugunsten der Lesbarkeit des Textes (wobei die dopplelte Schreibung mir locker drei Seiten mehr Text gebracht hätte). Also hab ich eine kurze Erklärung im Vorwort geschrieben. Das reicht für mich, denn ist es nicht Feministisch genug, überhaupt eine Diss in technischen Wissenschaften auf der TU Wien zu schreiben?

Vergesst die Unterschiede

Es geht nicht darum, dass Frauen bevorzugt werden oder nicht. Ich finde, das ist sowieso die falsche Frage. Der “Kampf der Geschlechter” soll einfach ruhen gelassen und am besten gleich vergessen werden.

Wie wär’s, wenn wir nicht unsere Zeit damit verschwenden, Unterschiede zu suchen, sondern uns um ein konstuktives Miteinander bemühen! Chauvinismus gibt’s und ich denk, den werden wir auch nicht los, aber es hilft nicht, darüber zu jammern, sondern als gutes Beispiel eigene Zeichen zu setzen. Wer Unterschiede erwartet, wird auch welche finden, ich finde allerdings die Gemeinsamkeiten interessanter. Und das “Problem” (das keines ist), dass zu wenig Frauen in der IT sind, wird sich ganz von allein lösen.

Zur Person:

Dr. Barbara Ondrisek hat drei Studien an der TU Wien abgeschlossen und arbeitet seit 2001 erfolgreich in der IT als Senior-Software-Entwickler, Java/Android-Entwickler und Scrum Master. Ohne “in” ;)

Veröffentlicht unter news | Ein Kommentar

Ein Plädoyer gegen Outsourcing

cats-phone[1]

Nachdem ich immer und immer wieder mit Argumenten für Outsourcing – oder auch “Near/Offshore Development” oder wie man es auch immer nennen schönreden möchte – überschwemmt werde, möchte ich nun ein für alle mal klarstellen: Outsourcing ist eine schlechte Idee.

In meiner Heimat, der Software-Entwicklung, bedeutet Outsourcing, dass die Entwicklung (oder ein Teil davon) an einen meist geografisch deutlich entfernten und preislich (zumindest auf den ersten Blick) äußerst begünstigten Ort ausgelagert wird. Nicht zu selten kann es sich dabei um eine (Tochter-)Firma in einer indischen (in Bangalore haben IBM, HP, Accenture etc. Niederlassungen), kanadischen, irischen oder einer auch (nah-)östlichen Stadt handeln. So kann man sich Software in auf den ersten Blick lukrativen, weil deutlich kostengünstigeren, (Sub-)Unternehmen erstellen lassen.

Warum überhaupt?

Nicht selten wird outgesourced, da das Know-How im eigenen Unternehmen fehlt und ebenso die Zeit, dieses aufzubauen. So werden als Quick’n’Dirty-Alternativen Dienstleister engagiert, die das Gewünschte anbieten und mit einem Stundensatz bestechten, der bei vielleicht nur einem Drittel von dem in Österreich/Deutschland liegt. Auf dem Prinzip der Auslagerung basiert ja eigentlich die gesamte IT-Branche, da Aufträge an andere vergeben werden und man für ein fertiges Produkt inkl. Gewährleistung zahlt – ein sowieso vollkommen veralteter Gedanke, Software als in sich abgeschlossenes Werk zu betrachten. Software lebt.

Häufig wird aber Outsourcing so eingesetzt, dass billige “Fachkräfte” eingekauft werden, um einen Engpass im Unternehmen auszugleichen. So wird ein Teil der Entwicklung dann vielleicht nach Bangalore ausgelagert, aber das Management bleibt in Wien. Dabei werden aber oft einige Kosten nicht mitgerechnet, wie der Mehraufwand in der Qualitätssicherung, der Kommunikation oder der (Wieder-)Eingliederung des Know-Hows in das Unternehmen. Kurzfristig lassen sich sehr wohl Kosten reduzieren, aber langfristig halst man sich ein teures Problem auf, das man vermeiden hätte könnten.

Die Lüge

Was häufig bei Outsourcing zugunsten der hübsch niedrigen Zahlen für den Entwicklerstundensatz vergessen wird, ist:

  • Persönliche Kommunikation kann NICHT ersetzt werden.
    Im Sinne von Scrum sitzt das Entwickler-Team möglichst im selben Zimmer.
  • Kulturelle Unterschiede zwischen Entwicklern unterschiedlicher Länder
    Das bedeutet vor allem Arbeitsmoral und Loyalität.
  • Verständigungsprobleme aufgrund unterschiedlicher Sprachen
  • Der immer unterschätzte Koordinationsaufwand
    Wenn wir Entwickler schon schwer verstehen, was das Marketing will, obwohl wir beim selben Meetingraum sitzen…
  • Know-How-Verlust
  • Höherer Planungsaufwand
    auch nach Fertigstellung des Projektes zur Reintegration ins auftraggebende Unternehmen
  • Enorme Qualitätssicherungskosten
    Zumindest das Userinterface muss erneut wieder von einem deutschen Native Speaker überprüft werden. Rechtschreib- und Grammatikfehler werden nicht erkannt.
  • Verlust des informellen Informationsaustausches
    Plauderei beim Mittagessen etc.
  • Schlechtes Image
    Die Zeiten, als Outsourcing noch als gute Möglichkeit gewertet wurde, sind definitiv vorbei.
  • Verlagerung der Wirtschaftsleistung weg ins Ausland
    Besonders gefällt mir die Beschreibung bei der Vergabe des Negativpreises des Unwort des Jahres (und das war schon 1996!):
    Imponierwort, das der Auslagerung/Vernichtung von Arbeitsplätzen einen seriösen Anstrich zu geben versucht”

Outsourcing macht meines Erachtens nur Sinn, wenn
- es sich nicht um das Kerngeschäft des Unternehmens handelt
- es ein in sich abgeschlossenes englischsprachiges Projekt handelt (und alle “Externen” auch Englisch können)
- nicht agil entwickelt wird (sowieso eine Todsünde – Ich schlafe ja bekanntlich mit dem Agilen Manifest unter dem Kopfkissen. Und das ruhig und zufrieden).

Machen wir es richtig

Die Alternative zu Outsourcing liegt somit auf der Hand: Aufbau eines qualifizierten (agilen) Teams als eigene Abteilung oder Subunternehmen in unmittelbarer Nähre zum Produktmanagement statt Ausgliederung. Sollen einzelne Mitarbeiter (kurzfristig) ersetzt werden, dann können das gern externe sein, die sich aber möglichst stark ins Team integrieren (Anwesenheit). Outsourcing sollte nur im äußersten Notfall in Erwägung gezogen werden, und am besten nicht mal dann. Lieber qualifizierte Software-Entwickler einladen und Know-How im eigenen Unternehmen aufbauen. Versteht mich nicht falsch, ich bin nicht eine, die glaubt, dass ihre Mitarbeier nur dann arbeiten, wenn ich sie sehe. In einem gut eingespielten Team kann Homeoffice durchaus üblich sein… aber das sprengt nun hier wohl den Rahmen.

Ich liebe und lebe agile Software-Entwicklung und arbeite gern eng mit meinen Mitarbeitern, Kollegen und Kunden zusammen. Als Scrum-Master kenne ich die Vorteile von Transparenz, Kommunikation und Innovation und bringe diese täglich zum Einsatz.

Naja. Und falls jemand diesbezüglich eine Beratungsleitung von mir in Anspruch nehmen möchte… Nun ja, ihr wisst ja, wo ihr mich findet. ;)

Update: Ein weiterer Artikel im Standard gegen Outsourcing in öffentlichen Vergabeverfahren http://mobil.derstandard.at/1397520665108/Sozialpartner-Oeffentliche-Auftraege-nicht-an-Billigstbieter

cat-content-540x304[1]

Veröffentlicht unter technik, work | Verschlagwortet mit , , , , | 4 Kommentare

Java: break, continue, return in Loops

Although this is pretty basic Java functionality I often have to look this up, because I confound these calls, esp. break and continue. So this is my cheat sheet:

Break

for (..) {
  ..
  // leave loop immediately
  break;
  ..
}

Continue

for (..) {
  ..
  // continue loop with next iteration
  continue;
  ..
}

Return

for (..) {
  ..
  // leave calling method
  return;
  ..
}

Veröffentlicht unter howtos | Verschlagwortet mit , , , , , , , | Ein Kommentar

Meine erste Android App

Für mein Foodblog chefbabe.at habe ich eine Android App geschrieben:

chefbabe_app

Sie repräsentiert die Android App Version des Foodblogs chefbabe.at

Die köstliche Chefbabe App ist da! :)

chefbabe.at jetzt auch auf deinem Android-Telefon.
Nie mehr ein Rezept versäumen mit der Sofort-Benachrichtigung.
Kreative Idee gefällig? Einfach schütteln!

google play

Features:
- Liste der Rezepte inkl. “Schmökern”-Ansicht (nur Bilder), Nachladen bei Scrollen, Ansicht des Blogbeitrags, “Neu laden”…
- Schüttelfunktion! (Zufallsrezept)
- Benachrichtigungen bei neuen Rezepten
- Teilen eines Rezepts
- Suchen
- Über-Seite (wer kocht hier?)

Chefbabe.at ist das erste Foodblog* mit eigener App. Viel Spaß beim Mitnaschen! :)

Herunterladen und Bewerten unter: https://play.google.com/store/apps/details?id=at.electrobabe.chefbabe

Veröffentlicht unter work | Verschlagwortet mit , , , , | Hinterlasse einen Kommentar

Sicherheit elektronischer Wahlen – Eine Methode zur Bewertung und Optimierung der Sicherheit von E-Voting-Systemen

Meine Dissertation.

diss

Veröffentlicht unter e-voting, uni | Verschlagwortet mit , , , , | Hinterlasse einen Kommentar