Right in concept, right in practice

The classroom had two chalkboards with a column protruding between them. On the far left on the left chalkboard, the professor wrote “RIGHT IN CONCEPT.” In the middle of the left board, he wrote “RIGHT IN PRACTICE”. “Many of you have been in situations where the gap between ‘right in concept’ and ‘right in practice’ is relatively small,” he says. I wasn’t quite sure what to make of this. “How many people met the spec on the homework?” he asks, and then scrawls a zero with a line through it on the board.

“The spec says ‘groups shall be separated by blank lines’. Most of you interpreted this to mean ‘print a newline after each group’.” He then makes a big deal about the single blank line after the last group that the second definition would print that shouldn’t be there. The unspoken response of the class was it’s the right concept and a person can tell the difference, stop making mountains out of molehills. But no. Since many machine-level programs interact only with other programs, he explains, it must meet the spec exactly. He rewrites “RIGHT IN PRACTICE” on the far right of the right board, some forty feet away from its counterpart. “In the real world ‘right in concept’ and ‘right in practice’ are very far away, and there’s a big bump between them!” He slams the chalk on the column for effect.

This, naturally, made quite an impression on me, and I’m disappointed that I was able to get a right in practice program on only one of the next three assignments. But what makes this class a trial by fire is not the complexity or the intellectual challenge; none of the material goes clear over my head. Instead, what makes it so hard is the time constraints. In the real world, no one expects a two programmers (we work in pairs) to create an image compression algorithm in four days, as we were. (Right? Or am I just rationalizing?) In the scramble to get it functionally correct, other niceties like testing and documenting the code fall by the wayside. (Of course, these “extraneous” steps take far less time than they can save.) The project was certainly a valuable experience from which I learned a lot, but if we only had more time to put the correctly decompressed RGB values into the image properly, we could have displayed something other than a black rectangle.

On a completely different note, I am thrilled  to be part of Hacking Medicine at the MIT Media Lab this weekend. There will be time to hack together an idea, but as the verb implies, it’s not going to work well. (How can it, in two days?) I think the challenge will be not the hacking itself but choosing what to hack. We’re not interested in what kind of algorithm you would use to mine a hospital database but rather what you would mine it for. What are the right concepts? Then, through months of teamwork and thorough testing, make it right in practice.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: