Wow, this post is great stuff!
Image via WikipediaAggressive-Competence in Software Development : Titus Brown: "
At the end of the day, there are things you can control, and things you can't control. You can't control what other people think of you, and you can't control how other people (including project leaders and professors) evaluate you. But you can visibly work hard, and defend yourself based upon that evidence.
I call the general approach of throwing energy at a project 'aggressive competence', and I think it's a necessary component of effective team software development. Everyone has days, or weeks, or even months where they look incompetent or ineffective; often that's because outsiders don't understand or appreciate the work that you've done. Tough on you, but I don't think it's reasonable to expect your boss, or colleagues, to look hard at your work to find reasons to praise you. Fundamentally, it's your responsibility to 'manage up' and communicate your progress to others effectively.
Image via WikipediaThis is where I think there were mismatched expectations. The students expected that they were going to be managed, helped, and given clear expectations. They weren't. So they got bad evaluations.
What do I plan to do? Well, assuming that UCOSP + MSU goes forward next term, I will be communicating my expectations quite clearly to the students. And I will be asking for regular progress reports, sent to me and CCed to the project leaders. And I'll be sending them this blog post. And I'll be failing the ones that don't listen.
I'll end with a paraphrase of one of my favorite sci-fi authors: 'every new developer has problems on a new project. The extent of our sympathy for those problems, however, will be dictated by the efforts made to overcome them.'
The extent of our sympathy for those problems, however, will be dictated by the efforts made to overcome them. - David Weber, The Short Victorious War