A good friend of mine heads an engineering school in London. Since he knew of my teaching activities, he asked for help. I am running a crash course in UML modeling.
In three days, I have to drill these students into understanding the goals and usage of this wonderful tool, too often overlooked by developers everywhere (yours truly included)
UML is a graphical way of explaining how programs work. It is language-independent, and supposed to help bridging the gap between non-technical people and developers, as well as enhancing the quality of teamwork in a project.
The key feature (and problem for a full assimilation) is that it has 9 different “diagram layouts”, each representing a point of view on the project: user, manager, maintenance, code-monkey, etc…
What UML has to offer is staggering : it offers an ambiguity-free framework for application design, usable by anyone (it’s just about drawing), for anything (it defines usage scenarios, implementation sketches, test cases,…)
But the problem is that it is frightening for non-technical people to talk about a project, even if UML has a very easy access, and it’s “boring” for developers, who think that they code faster than they design.
The people I have in front of me are no different : at first they thought it was another dumb thing to learn, something they’ll never use. But in fact they all have very different profiles, and with me banging the notions on their heads, they start seeing it as a tool that might help reconciling the ones who like to code with the ones who would rather be higher in the development process, or, should I say, farther from the actual lines of code.
It’s easy to make a parallel between students everywhere, but kind of dangerous. Generalizations are the main reason behind teaching failures : the students don’t like to be part of the mass. However, there’s something every student I had have in common : they hate it when someone who says he knows it all (me, the teacher) tries to force them into learning something they don’t see an immediate use for.
But know this : teachers don’t try to make you learn you the mechanics. That, you can learn in a book, by yourselves. They try to give you tools to transmute ideas into realizations. They try to say that intelligence isn’t really about knowledge. It’s about connecting the dots and being able to adapt to any situation.