Writing software is hard, really hard.