Posts by Category

ICSE17

Type Checking for Reliable APIs

Maria Kechagia presented her work on improving the usability of APIs via type checking. Her idea is that compiler should take into account statically availab...

WAPI Open Discussion

We concluded the workshop with on open discussion about the different challenges we see and possible next steps for researchers to work on. I tried to captur...

API Evolution and Migration at Google

Hyrum Wright reports on how Google evolves its APIs and manages the migration of its entire codebase to new API versions. He discusses various tradeoffs and ...

To Mock or Not To Mock?

Whenever we write a new piece of software, we have to decide whether we want to test it in its reals context and/or in isolation. The latter case is commonly...

Travis Torrent Mining Challenge

Travis is a free-of-charge continuous integration service tightly integrated with GitHub. Travis Torrent is a dataset containing build data about 1.200 Java ...

Learning

The Programmer Peculiarity

Most people cannot construct a building or write a book, yet, it seems like everybody can program. Isn’t that peculiar?

I Teach, So I Learn

“If you light a lamp for someone it will also brighten your own path.” ~Buddhist Proverb

Being Bad With Names

I’m bad with names. Sometimes, when somebody tells me his name, I catch myself having forgotten about it literally in the next sentence. I’ve tried some tech...

Impressive Drawing Skills

As long as I can think, I’ve been drawing. Sometimes more, sometimes less, depending on what else I’ve been up to. My Bachelor’s, Master’s, and even the begi...

Continuous Blogging

This is it. This is me reaching the end of John Sonmez’s “How to Create a Blog that Boosts Your Career” course. This is me kicking off a new blog. Not my fi...

MSR17

To Mock or Not To Mock?

Whenever we write a new piece of software, we have to decide whether we want to test it in its reals context and/or in isolation. The latter case is commonly...

Travis Torrent Mining Challenge

Travis is a free-of-charge continuous integration service tightly integrated with GitHub. Travis Torrent is a dataset containing build data about 1.200 Java ...

Maven

Just Use My Testing Infrastructure

I use the Maven dependency ecosystem to provide code dependencies to my students via a Maven repository hosted on my group’s artifact page. This gives studen...

Meta

Back to Schedule

As you might have noticed, if you’ve been following this blog through the first half of 2017, I stopped writing somewhen in the beginning of June. This had t...

About Assumptions

Some weeks ago, I attended a talk about IntelliJ IDEA. It was an interactive talk, to the most part, where attendees would ask questions about the IDE and th...

Unsustainable Pace

Early in my PhD, attending my first conference, in fact, I stated that I usually don’t work on weekends and public holidays. Several jaws dropped. “How do yo...

eXtreme Researching (XR)

I’m an academic. I’ve never had a full-time developer job in my life. Yet, I write and screencast about software development. Why the heck should you care to...

Continuous Blogging

This is it. This is me reaching the end of John Sonmez’s “How to Create a Blog that Boosts Your Career” course. This is me kicking off a new blog. Not my fi...

Project Management

Inadvertent Prudent Technical Debt

I recently stumbled upon a great talk by Martin Flower about Technical Debt.1 In the talk, he first classifies technical debt according to whether you are aw...

To Agile or To(o) Lean

Research is agile. Not only in its software development, but in its entirety. Simply because one rarely knows where it’s going next. Research is, by its very...

Unsustainable Pace

Early in my PhD, attending my first conference, in fact, I stated that I usually don’t work on weekends and public holidays. Several jaws dropped. “How do yo...

Let Students Engineer!

There’s always too much work left to do at the end of the day. If you do the research, you don’t get around to do the programming. If you do the programming,...

Quality

Naming Tests

Recently, I received an email from a former student assistant of mine, who observed that I name tests different today, compared to when we were working toget...

Legacy Code Retreat

Where does legacy code come from? What is legacy code, anyway? Why should we care about it? Can we make it go away? How? Can we prevent it from coming back, ...

Reuse

Did you ever find yourself facing a problem, wishing you had a program to solve it for you? I certainly did. Repeatedly.

Inadvertent Prudent Technical Debt

I recently stumbled upon a great talk by Martin Flower about Technical Debt.1 In the talk, he first classifies technical debt according to whether you are aw...

Being Bad With Names

I’m bad with names. Sometimes, when somebody tells me his name, I catch myself having forgotten about it literally in the next sentence. I’ve tried some tech...

To Agile or To(o) Lean

Research is agile. Not only in its software development, but in its entirety. Simply because one rarely knows where it’s going next. Research is, by its very...

Adam and the Tests

A strong set of tests gives me confidence that the tools I devise do what I want them to do and that my experiments test what I intend them to test. This is ...

How I Came to Test

As you might remember, academics code, too. And that’s not even only computer scientists: The first of my friends who needed to program in university were ph...

Is TDD Just Unit-Test Waste?

In early 2014, Cope published an article titled “Why Most Unit Testing Is Waste” and little later a follow up. In these articles, Cope states that unit testi...

TDD vs. Architecture

In 2007, Robert C. Martin (Uncle Bob) and James O. Coplien (Cope) had a discussion about TDD at the JAOO Conference. Uncle Bob opened the discussion proclaim...

TDD

The Dawn of TDD

Young and unexperienced our art is and unique properties it has.

Talks

Teaching

Legacy Code Retreat

Where does legacy code come from? What is legacy code, anyway? Why should we care about it? Can we make it go away? How? Can we prevent it from coming back, ...

I Teach, So I Learn

“If you light a lamp for someone it will also brighten your own path.” ~Buddhist Proverb

Testing

Just Use My Testing Infrastructure

I use the Maven dependency ecosystem to provide code dependencies to my students via a Maven repository hosted on my group’s artifact page. This gives studen...

Naming Tests

Recently, I received an email from a former student assistant of mine, who observed that I name tests different today, compared to when we were working toget...

Adam and the Tests

A strong set of tests gives me confidence that the tools I devise do what I want them to do and that my experiments test what I intend them to test. This is ...

How I Came to Test

As you might remember, academics code, too. And that’s not even only computer scientists: The first of my friends who needed to program in university were ph...

Is TDD Just Unit-Test Waste?

In early 2014, Cope published an article titled “Why Most Unit Testing Is Waste” and little later a follow up. In these articles, Cope states that unit testi...

TDD vs. Architecture

In 2007, Robert C. Martin (Uncle Bob) and James O. Coplien (Cope) had a discussion about TDD at the JAOO Conference. Uncle Bob opened the discussion proclaim...

The Dawn of TDD

Young and unexperienced our art is and unique properties it has.

WAPI17

Type Checking for Reliable APIs

Maria Kechagia presented her work on improving the usability of APIs via type checking. Her idea is that compiler should take into account statically availab...

WAPI Open Discussion

We concluded the workshop with on open discussion about the different challenges we see and possible next steps for researchers to work on. I tried to captur...

API Evolution and Migration at Google

Hyrum Wright reports on how Google evolves its APIs and manages the migration of its entire codebase to new API versions. He discusses various tradeoffs and ...