My Hunt for "The Guy"
Developing software as a trade quickly evolves into a cyclical game of problem discovery and problem solving. The problem discovery portion tends to manifest rather easily, so your time is dedicated mainly to the problem solving. If your project is anything like mine, you’ll notice that every solution generally depends on some expert in that area. I call this person “the guy”.
There are different classes of “the guy”. The super class I call my “Kevin Bacon”. If you are a Kevin Bacon, there is a very good chance you know the answer to my inquiry, or you can point me to “the guy”.
Problem Statement
So what happens if you can’t find “the guy”?
Solution
This happened to me once on a project. I was tasked with an investigation for our client, and my KBs were fruitless for the first time. ruh roh
Solving the problem isn’t the most interesting part; however, I think it is relevant to understand the complexity of the solution, so I will summarize my research with the resources which allowed me to solve this problem:
4 white papers
2 patents
2 mechanical engineers
1 heavy machinery engineer
1 agricultural expert
1 mathematician
The interesting part is that none of these resources worked at the client’s company, nor were they provided by anyone at that company. As you can imagine this took more time than the expected quick ping to a KB followed by a singular email to “the guy”.
Unintentional Learning of Things
I have reflected on this investigation quite a bit. It concerned me that the client’s company could not provide me with any valuable information. It was upon this reflection that I noticed one critically wrong turn: using extreme caution about overusing my KBs. As with any valuable thing, you do not want to mine it to extinction. As a result, I did not ask the KB who knew for certain the information I needed (I found this out later when the KB and I were chatting over coffee - so many facepalms).
While it is frustrating to be sitting infront of the resource you never used, I couldn’t shake the feeling of being glad that I didn’t bother him, because - after all - I did figure it out on my own. So, I’m still not sure how to strike that balance.
Take-home question: How do you optimize for the following conditions?
- Minimize use of Kevin Bacons
- Minimize calendar time for an investigation
Interesting Precipitate in the Solution
I gave a talk on this problem at my company. Forcing yourself to find interesting visuals produces some fun things. For this particular talk, I constructed a set of powerpoint slides made up entirely of icons.
Notice, though, that in visualizing the effort of this investigation in comparison to other investigations, I used the number of resources necessary to complete the investigation as a metric for effort and size.
This could be useful in estimating work. If there are technical investigations that need to be done inside of a sprint (I can’t stop thinking scrummy thoughts, sorry!), then you can estimate the effort required with how many resources you may need. This opens up a whole new way of reflecting on investigations, because you can ask yourself
- Did it take the number of resources I predicted?
- If I was over/under what went differently than expected?