SOFTWARE USABILITY FOR PROGRAMMERS - LESSONS LEARNED FROM ONE DECADE OF TEACHING