I haven’t posted myself in a bit and decided to go ahead and drop a few lines…albeit a little off topic.
I’ve been looking for supplemental maths books for both my children. As you Computer Science types know, texts for elementary Maths (and more advanced maths for that matter) can be painfully dully and often confusing. In searching for texts for my two kids, daughter 13 and son 10, I wanted to find materials that were more interesting than their usual fare. This while addressing their wildly differing attitudes toward the subject.
My son is the easy case, he loves math. He goes back and forth between wanting to be a doctor (because he loves Biology, Anatomy and Chemistry) and an engineer (because he thinks Physics is pretty cool too). At 10 he’s started his journey into Pre-Algebra. He tends to grasp topics quickly and will often knock out textbook problem sets in a few minutes and ask to use the rest of his math time to play Legend of Zelda. I just had to find a book with a large set of challenging problems to push him a bit more and keep him happily occupied.
My daughter, on the other hand, holds no particular love for Maths. She wants to be a photo-journalist and has already asked about minimum math requirements for the degree she wants. She’s quite bright (reads at a college level…although she didn’t quite have the patience to finish the unabridged version of Les Miserables), but Maths to her present chores to be tolerated and nothing more. I don’t expect her to be a mathematician, but I want her to have a broad enough background so that her future options are not limited (you know, the basics like Algebra, Trig, some Calc).
Fortunately, I’ve found two books that I believe may suit her. The first, titled “Math Doesn’t Suck”, covers elementary arithmetic mainly but uses mnemonics and metaphors to explain the rules of the game. It’s written by a female mathematician to appeal to young girls. The book arrived yesterday and my daughter has been tearing through it like a novel. She read the first 50 or so pages last night and concluded that she loves the book.
I’m reading the second book as she goes through the first so that I can tie concepts as presented in the text to her “normal” Maths text. It’s titled “Algebra Unplugged” and is written by the author of my favorite introductory electronics book titled “There Are No Electrons: Electronics for Earthlings” (and co-authored by a maths professor from Denver). It’s also presenting the subject in prose and focuses on understanding fundamental concepts in Algebra rather than presenting things to memorize and long lists of problems to solve. My favorite quote from the book thus far is, “Reversibility is a god to whom mathematicians bring many bananas and mangos.”
With the help of these two books I’m better equipped to kindle a greater interest of Maths in my daughter. That’s because they both effectively use metaphors to maintain her interest and present topics in familiar lights. They also attempt to speak in a language that she can relate to. We Computer Science types, on the other hand, tend to gravitate toward the language of Mathematics (or at least something similar to it). The language that we love to use is also the language that we utilize when talking to the Business types.
In the early days of Agile…we had to walk 10 miles a day for the sake of our projects, barefoot, over hot coals and razors! Just kidding. In the early days (XP in particular), agile key practices included the use of Metaphor to better communicate technical concepts to the customer/business. Over the years the use of Metaphor has loss emphasis and has even been ignored by many as a key practice. Many of us have forgotten that our customers do not necessarily speak the same language we do.
To illustrate my point I have an mp3 click from a focus group meeting that took place during a DoD project that I was working on. The customer asked our project manager, “Do your developers, software developers, talk to real people or do they just talk to themselves?” Brilliant question. On this project we failed utterly to effectively communicate with the customer. We had generated tomes of requirements and design docs using dashing technical jargon and probably the most complete UML model that I’ve ever seen (Thanks Rational Rose!…ugh). We did all the “right stuff” but left our customer confused, frustrated, and ultimately failed to discern what the system truly needed to do. We were really good at talking to ourselves, but talking to “real people” was another matter.
Now I have just as much difficulty in effectively communicating to customers as the next guy. When I took the “Which Computer Language Are You?” test I got “Binary” as an answer (AgileJoe will attest to this, although I’ve taken it again and got C++, so maybe I’m improving). Regardless of the difficulty, however, I think that it is crucial that we make an effort to speak using the customer’s language. Developing a ubiquitous language is a start, but is by no means sufficient in and of itself. The use of Metaphor is also key in communicating in terms of the business itself while saving the customer from confusing technical and often abstract terminology. It’s an often ignored tool that we can use when speaking to “real people”.
Because of the use of Metaphor (and humor for that matter), the texts that I recently bought my daughter have captured her interest in a normally dry topic and have helped her both understand and memorize key concepts. Granted, I may prefer that she learn formal terminology, but I’m satisfied with her being able to understand and apply key concepts even if it means her using strange terminology. For instance, she now thinks of prime numbers as primate numbers and the process of creating a factor tree as the “Hanging Monkey Method”. I’m really not concerned about the strange terminology that she’s adopting, rather I’m pleased that she’s understanding the concepts and spending her free hours pondering them (we’ll test long term memory later).
The bottom line is that we, as developers, must make greater efforts to speak in terms that the customer can easily understand and Metaphor is a tool that aids in just that. If you see your customer’s eyes glazing over, stop to think about what you are saying, then try presenting it in another manner that they can (hopefully) better understand. The customer is not stupid because he can’t understand your language, he simply speaks a different language (Just as you are not stupid because you don’t speak Tagalog, Esperanto, SNOBOL, or any number of other languages). With continued practice we can become increasingly proficient at speaking to “real people”.
P.S. I must admit, however, that I do love my little mp3 clip and am happy that I was at the wrong place at the right time to get it. We lived up to the quote of one of my favorite demotivational posters (for Mistakes) which reads, “It could be that the purpose of your life is only to serve as a warning to others”. Happy coding!