One of my favorite software engineering research papers is Cherubini, Venolia, DeLine, and Ko's "Let's go to the whiteboard: how and why software developers use drawings
" (SIGCHI'07), which explored the kinds of pictures programmers draw when they're talking to each other, what those drawings are actually used for, and why today's drawing tools don't meet their real needs. In a similar vein, Zuzel Vera Pacheco plans to look at how developers visualize the execution of SQL queries
for her Master's thesis. When you see a query like:
SELECT left.name, right.name FROM people AS left INNER JOIN people AS right WHERE left.name > right.name;
what do you actually see? When a query like this returns an unexpected result, what do you draw as you trace through its execution, and why? It'll be a few weeks before Zuzel can start her study (we need to get ethics clearance first), but she'd welcome your thoughts.