Monday 14 January 2013

Steep Learning Curve

I have spent the last couple of week (Jan 2 - Jan 15) working on the Deltacloud project. I do not remember the last time I learnt so much within two weeks. This is the first open source project I have contributed to full time, and so far, this is what my very steep learning curve looks like.

1. Communication

In the project, we are not seated in one small office, where we can talk to each other across the table; we are oceans apart. However, effective communication still takes place. In fact, I dare say, our communication is more effective than talking across the table!


  • Jiras --> We use these to file bug reports. I have not used this system before, so this was step one in learning. Articulating a problem is very important, mainly because another developer will probably fix the bug, or work on the fix with you. 
  • Email -->  Keeping everyone in the loop in all communication is very important to avoid repeating the same message several times, as I found myself doing.
  • IRC --> The developer's favourite tool. The deltacloud public channel on Freenode has become my favourite hangout. This is because I can get immediate response to any question I have.
  • Google+ hangout --> We use for demonstrations and stuff. Mega effective. Just a week ago, one of the devs helped me find a bug through a short hangout. I thought that was really cool.
  • Git commit messages --> Yes, those few words in the commit messages have become very important. This is because they need to refer to the Jira ticket they are addressing so as to keep the tickets and mailing list in sync. I am still training in this.
2. Code

Of course, there is a lot of learning when it comes to the code, simply because you did not write the code. After some time studying the code, I discovered  something - code readability is of utmost importance. Writing complex code that needs takes someone time to understand, does not make sense in such a project. The project is open source, so you are not the only one who will play with the code. 

I am still learning, not the technology, but the practice. I do not want to be send patches that will lead to maintenance difficulties. 

Communication and simple code are two things I have been taking for granted, well, at before Jan 2. These two lessons have presented me with a steep learning curve as enter the FOSS community, and I look forward to more adventures in the community.