Thursday, 17 March 2016

3MT Experience

Its been a couple of years since I wrote something here. Last time I quipped about how I should write often and not only when there is something "eventful". Well, there have been several eventful things in the last two years and I did not write anything about them either. So, no excuses this time for not writing. I just got to make it a point to write something, which may or may not be interesting to you.

Speaking of interesting, there is one thing that is got to be interesting to almost anyone and that is a nice 3 Minute Thesis talk or a 3MT talk. This is a competition for Grad students to tell explain their thesis or research statement in under 3 minutes. It should also be explained such that even a lay person should be able to understand. So, absolutely no jargons, technical terms and definitely no mathematical equations. Yet, the idea is to not dumb down your research or trivialize it. Here is a good  example - https://www.youtube.com/watch?v=SI8XOGubJyY

So, I competed in one of the preliminary rounds at CMU, although I did not make it to the finals, it was a good experience. First, the preparation for the talk itself was a great exercise to sort of see where my research stands and what its implications were. Second, trying to explain it in extremely lay terms was super challenging, for example I could not use words, which were otherwise considered commonplace in my domain such as open-source, Github, Bug reports, etc. So with all this challenges, I spent about 4 days preparing for the talk and after two practice talks and a couple of revisions later I was here presenting in front of the judges. Here is a short transcript of my talk, if you read it through quickly it should take less than 2 minutes. Btw, you are allowed to have one static slide, following is a snapshot of my slide followed by the content of the talk. Enjoy!




Imagine you are a car manufacturer and the different components that you require to build your car  are available for free and in unlimited quantities. And  not just that, they also  come in hundreds of different shapes, sizes, and colors  for you to choose from. So, Would you then design and build your own components or just use one that is already available for free?

This is the exactly what building a software product these days looks like.  For example, a software product such as a word processor may use several freely available components such as a spell checker or a component to say, format text. However, lets say there is a strange problem in the spell checker that causes the word processor to shutdown after every hundred spell checks in after every hundred spell checks. So now to resolve this problem the members of this word processor  have to coordinate with the members of the spell checker. And the costs they might incur in the process are called coordination costs.

So now, the question is should even we care about these coordination costs? The answer is we don’t know yet.  Because a) we do not know   how to measure these costs, b) we dont know how wide spread these costs are and c) we dont know what factors drive these costs. and so my research aims to answer these three questions.

So, In the first part of my study i looked at discussions in online forums among members of a particular software product.

I found that about 20% of problems that appeared in these discussions were  coordination problems,  which were significantly higher than what we had previously thought of. I also found that the time taken to resolve these problems and the number of people involved in a set of discussions were good measures of the coordination costs incurred in this process. So In the second part, I scaled my study to a large number of discussions from different software products and found that the coordination problems were significantly expensive  than other types of problems because they take about 26% longer to resolve, and require about 30% more members.

So in the third part of my study I plan to identify the specific factors that increase or decrease these coordination costs and build models to quantify the effect of each factor.

Finally, I would like to show that the implications of my research go beyond software development, such as in healthcare where certain components of prosthetics can be replaced by simply downloading a design of the component from a website and building them at home using a 3D printer. However, prosthetic owners could incur similar coordination costs from using these components. Therefore, I plan to show that my research can also be used to study coordination costs in these other types of settings.

Sunday, 12 January 2014

Unit conversions for human calculators

In my last post I quipped about how difficult it was to get used to get used to the WMUs (Weird Measurement Units) here in the US. Well, as the winter sets in, as so does the curiosity to check the weather every time I step out. Back in my country and in UK, temperatures are reported in Degree Celsius, however, every one here seems to speak the Farenheit language. Most apps and online weather channels do provide both formats, but it gets tricky when you are talking to someone or listening to the radio on a bus. The other day, temperature read 5 degree Farenheit, but no one mentions the F at the end of the number and for someone like me it really gets difficult to realize how cold the weather is without actually converting to Celsius. In this case it was a shivering 15 degree below freezing.

So, I wanted a quick and easy way to make these conversions, not having to pull up a calculator every time. Here it goes, this is an approximate conversion and has an 'acceptable' error. The actual from F to C is (F-32)*5/9. My approximation is simple, subtract 30 from F and divide the result by 2 to get the Celsius value. In other words, just do (F-30)/2 to get C. The trick works because you are increasing both numerator and the denominator to make the approximation. Lets take a few examples and see what the error would look like. For a temperature of 70F, the actual conversion would give 21.1 C, whereas this quick method will give 20 C, which is fairly close to get a sense of what the weather is like. The error is higher for lower values but still within reasonable limits. For example for 5F the actual conversion gives -15 C whereas the approximation yields -12.5 C. The reason why I call this approximation technique acceptable is for two reasons, one, we do not need an accurate values of temperature to know how the weather is like, we don't see much difference in the way we will dress up if the weather was say 12 or 15 degree Celsius. Second the range of temperature readings across all weather conditions is fairly small, at worst from -30 F to 110 F.

It does not stop there, for me to make sense of most things, I needed to employ such techniques to other types of measurements. The most prominent one was to weigh stuff in pounds instead of kilograms. I did not take this too seriously since I would always just assume that one kg is almost twice as heavy as one pound. However, this naive approach does not always work very well, it works fine for stuff like groceries, but its highly error prone for something like weighing yourself or knowing how much you have been lifting at the gym in lifting weights. For example if someone weighed 154 pounds then according to my naive approach that person should weigh 77 Kilograms but the correct conversion would give about 70 Kilograms. This is a huge difference if I have to interpret how much someone weighs.

So to overcome this here is a simple technique. The error is because we are over estimating and need a negative correction. So after we divide the value in pounds by 2, we subtract the resulting value by one tenth of the resulting value. So in the above example, we first divide 154 by 2 which gives 77 and then subtract 7.7 (approximate to 8) from 77 which gives 69. This has been a useful technique especially when lifting weights in the gym. Since all my life I have been used to seeing plates and dumbbells in kilograms, it made me difficult to estimate how much weight I could lift.

Things are much better when it comes to the most common measuring unit in grocery stores, what I call the 'omnipresent ounce'. The correct conversion of ounce to grams is my multiplying the value with 28.3, which is almost impossible for a human calculator. Hence, I have the following approximation. Multiply the value in ounce by 30 and subtract the resulting value G by one tenth (T) of the resulting value. To getter a better approximation, add half of the computed one tenth (T/2) to G. Instead of the two step process, you could just subtract by one twentieth of G. For example if we have to convert 5 ounces in grams, the correct conversion gives 142 grams. To convert this using the above technique first, multiply 5 by 30 which gives 150. We next have to find one twentieth of 150, to do this, we first compute one tenth of 150 which is 15. One twentieth is half of this computed value which gives 7.5. Now subtract 7.5 from 150 which gives 142.5, very close to the actual value. The approximation really works extremely well since in practice the maximum of value of an item in ounces may never exceed say 64 ounces. This is where the significance of measuring in ounce becomes relevant, because it is extremely convenient to use ounce for items that are less than a pound and not more than a few pounds. Every pound has exactly 16 ounces and therefore makes it convenient to use ounce to get a fine grained measure without having to use real numbers.

There are a few more like Gallons to liters and miles to kilometers, while these conversions may not have as much significance in everyday use, nevertheless, they are also fairly straightforward to make approximate calculations. A gallon can be easily converted to liters by just multiplying by 4, and one mile is approximately one and a half times a kilometer. I have personally not see the need to make these conversions since it is very easy to get accustomed to these units that the ones mentioned above.

I anticipated this to be a very short blog, but it has turned out to be, well, not so short and hopefully not so boring. It makes me wonder, why is it that no one has blogged about this, since I did observe fair bit of cultural difference in the way people communicated in their own language of measurement.

Thursday, 3 October 2013

We value your time

Its been a while since I started my doctoral program at CMU.  My previous visit to US was a very brief one, when I stayed in a hotel, mostly ate outside, never had to worry about cleaning or cooking or even buy groceries. It was a completely different experience this time around; I had to hunt for an apartment, procure furniture, and also do a lot paperwork at times. During this little phase of my life, I have observed a ton of differences in the way things (and people) operate in here compared to how it happens back in India. One thing that strikes me the most is the importance that people give to "convenience". Anything and everything that is built or produced (and a lot imported) is catered towards achieving this one specific goal - convenience. This lifestyle is one of the biggest reasons why people in US produce the most amount of trash on earth. Not to mention the unimaginable (at least for me) consumption of energy, water and other natural resources.  

However, most argue, this is all actually good for the economy. Its obvious, when you make everything convenient, people have more free time which they can either use to be more productive or to shop. Either way, it helps the economy. But this made me think something totally tangential - what is effect this has on people's behavior and the way they interact with each other? I would say, that convenience in every day lives makes people value other's time. Most people know that time is precious, but only some realize that other persons' time is equally valuable if not more. This appreciation is what makes a person punctual. Since commodities and services are designed to be convenient and fast,  people tend to conform to this practice in their every day lives, and therefore, learn to appreciate the importance of others' time. Well, the bigger picture is to see how one aspect in a system can mould the society into a particular frame of mind. One of them I pointed here is the correlation between convenience that the system provides and how this makes the users of the system give importance to other's time. I have been careful to use correlation here because we cannot claim causation until it is an experimental study (statistics 101). I can see the correlation by comparing some of my observations to the way things happen back in India. However, I think this could be an interesting study.


Personally, I have liked the way how things get done so fast and convenient here. Either my visit to the social security office or the local bank or setting up an internet connection or starting a group mobile plan, its all been pretty smooth. I have seen people complain about the traffic here, but I think there is at least a system out here, and rules that people follow. Its not even a tiny bit of how bad traffic gets in Bangalore. I have always believed that it is the system that makes people think or act in a particular manner. I have argued about this with my friends who think its the other way round, and most blame the people who litter on the streets, don't obey traffic rules, stare at you when you pass them. The people are not at fault, its the way the system has moulded them. I myself can see certain changes in the way I conduct myself now, for example, I try to always use the pedestrian crossing, maintain a good distance when standing in a queue, be precise when talking to someone,  be prepared to greet and be greeted by strangers, and of course getting used to measuring things in pounds, ounces, gallons, miles and what not.