Wednesday, June 25, 2014

Research is Different

This is how lab seems sometimes:

Person1: "To make your system go faster, you should use method Z, I believe person 2 has written an implementation of it"

Person2: "I am working on an implementation of X, but it isn't finished yet. Person3 found a bug in method Y that I need to use, so you should ask them"

Person3: "Yeah, method Y uses method Z, but method Z gives different answers depending on if you use CPU or GPU, and neither is correct. I don't actually know anything about how method Z works"

Person1: "Well, you could use Method X instead, person4 worked on it"

Person4: "Yeah... it doesn't work yet"

Person1: "Maybe Method W?"

Me: "It's written in a completely different language... :(((("

Life is fun though. I am enjoying the detective aspect of searching through code and  documentation filled with "TODO"s and "Writeme"s. At school, we use established programming languages for which we can easily find complete documention online and answers to questions on Stack Overflow. At my lab, part of the lab’s contribution to science is building a system to easily set up Machine Learning experiments. This system is always being added on to, and each lab member has their own private version of the system, so nobody actually knows how everything works. If someone writes a useful add-on, they try to get it merged into the official version. However, because we are all human and communication is hard,  multiple people end up trying to write similar things independently, and a number of features don’t get finished or don’t work. Life on the edge, man.

No comments: