Nudging Novices: 5 Persuasive Patterns

Back when I was at the University of Hannover working on my PhD, I was also involved in teaching. One of the most memorable experiences was organizing and managing the “software project” course four years in a row.

Every year, multiple teams of five students each went through a waterfall process to create software for a customer. This course wasn’t about programming, really: it was about working on a team, communication, and good practices. That’s what made it so memorable.

Read on →

How Software Developers Use Twitter

Many software developers use Twitter in their work, but how and why exactly do they use it? Why do some developers choose not to use Twitter, and what — if anything — do they use instead? We conducted a qualitative study to investigate these questions in depth.

Read on →

ICSE 2013: Four Days of San Francisco

From May 22 till May 25, I attended ICSE 2013 — the 35th International Conference on Software Engineering — in San Francisco. Apart from learning about new research and connecting with colleagues, I interviewed local practitioners, hugged the Octocat, and was ON A BOAT. This blog post provides some (non-comprehensive) details for these four days I spent in San Francisco.

Read on →

Dissertation Published

On February 11 2013, I defended my PhD thesis with the title “Improving the Adoption of Software Engineering Practices Through Persuasive Interventions”. Thanks a lot to Felienne who live-blogged my defense talk and the questioning by the committee.

Due to German regulations, having defended my thesis merely meant that I was no longer obligated to correct someone else calling me a doctor. However, I was not allowed to call myself that until I had published it — again, adhering to some regulations. Due to the power of self-publishing / print-on-demand (I used, I obtained several copies of the book and my certificate only 8 days after the defense.

Read on →

On Testing Culture in GitHub Projects

Previous research suggests that the publicity on GitHub that is making developers’ actions and interactions more visible might have an effect on how software development practices are communicated and how they diffuse in projects.

My colleagues (Raphael Pham, Olga Liskin, Fernando Figueira Filho, Kurt Schneider) and I wondered: which influence does this have on testing practices? Does this create new challenges, and if so, how do developers cope with them? Which strategies do members of GitHub use to create a beneficial testing culture in their projects? To investigate this, we conducted interviews and questionnaires with diverse users of GitHub.

Read on →

Mutual Assessment in the Social Programmer Ecosystem

Developers use social media sites to communicate, collaborate, connect with each other, and even for competition. These sites and their users create a social programmer ecosystem with dynamics that are the subject of ongoing research.

Recently, websites have appeared that create profiles from developers’ content and activities on other sites — they are developer profile aggregators. Examples are Masterbranch and Coderwall. Among other mechanisms, both services award achievement badges to developers for specific accomplishments — such as being the most active committer in a project, or having a project forked by others.

With colleagues from Brazil and Canada, we studied users of these sites, providing us with a window into the social programmer ecosystem.

Read on →

Backbone.js and AngularJS at HannoverJS

HannoverJS is a local JavaScript user group that I’ve been attending. We meet once a month in rooms provided by a local school. Founded in August 2011 by Christoph Burgdorf, we now usually have around 10 to 15 attendees and two presentations each month.

Read on →

A Collection of Notable Git Resources

Whenever a student or colleague asks me about getting started with git, I look up a set of resources I found quite enlightening and / or useful and give them a bunch of links, often with a hand-crafted description of each. To repeat myself less often in the future, I’m now using the power of a blog post that consolidates that material.

Read on →

Have Git Show What Changed After Pulling

When pulling in the latest changes from the Cappuccino repository, I often ask myself what changed, that is, in which places I can expect improvements or differences. I found it therefore favorable to have git show me just that. After some searching, it turns out this is quite easy. Just open your ~/.gitconfig file and add the following two lines:

Read on →

Using Apache2 as a Reverse Proxy for a Play! Application

This post shows how to deploy a Play! application to a server that is running Apache2, mostly as a note to myself.

Read on →