The Good, the Bad & the Ugly Bits of Java Development