Iterating
Remember what I wrote in last week’s newsletter?
If I’m being honest, I’m not sure if this idea is fully-formed yet, but I might as well write it down so I can read this in a few months and laugh at how wrong I was.
Well, I’m happy to share that I have progressed ahead of schedule. After my meeting with Gail last Wednesday, I realized that the idea of having a “search dialogue” isn’t necessarily a good idea – at least in the form I envisioned it.
My meeting with Gail last week was in her office at the Koerner library on the northern end of campus. I have to say, it’s a pretty nice office. One wall is made entirely out of glass that looks out toward Irving K. Barber. Apparently, Gail doesn’t work out of there too often because the ventilation system doesn’t work very well. I could definitely feel this as well, since the office was pretty hot.
If I’m being honest, I kind of want to keep this week’s newsletter a bit on the shorter side, since I feel pretty tired, but there’s one thing that I really should write down that I learned in the past week.
How to begin choosing a research idea
When I started investigating code search, I honestly just went at it in a kind of a lazy way; I didn’t really break the problem down, but just said “Wow, code search is bad.” and went at it. I think this is equivalent to a developer saying “Wow, this service is implemented pretty poorly,” and just going and trying to build something new without giving any thought to design.
I think Gail recognized this and gave me the advice to really try to think about the problem of code search in a systematic way. We arrived at the 3 top-level parts of code search:
- Query formulation:
- How do developers formulate a query?
- Going from a mental model of source code to a query.
- Query execution:
- What kind of algorithms exist in the state-of-the-art for code search?
- Displaying results:
- How do tools show results to developers?
Breaking the problem down into somewhat manageable chunks helped me to understand what the fuck I was exactly trying to do. For now I think what I’m interested in is query formulation and displaying results, but that might change in the future.