Things I Learnt The Hard Way (In 30 Years of Software Development)