World Cup 2014
World Cup 2014
Being a part of mifos community is amazing. I learned a lot from the code of MifosX and from my mentor. For example, my mentor taught me how to write unit tests with the help of some good tools and how test-driven development could make a difference on my code design. The final code review is also rewarding. I learned the importance of following code conventions, especially for open source projects. Besides that, experiencing how open source projects operate with contributors across the world is very interesting.
My summer schedule is little intense for me, but I managed to keep the work on track. The daily and weekly routines help me make progress everyday and eliminate procrastination.
The community is quick in response and willing to help. It also gives you a lot of freedom in doing your project. You will have the opportunity to present your work to a large group of Mifos users. Take ownership of your project and you will feel rewarded and accomplished in the end.
If possible, I would love to visit my mentor’s home country, Ghana. There’s something interesting: when we had skype meetings, I could always hear the sounds of various animals, which interested me a lot. I think it is a great place to visit.
I would be glad to continue contribute to Mifos as a developer in the future.
Focus on coursework.
Time passes really fast. The midterm evaluation starts. Good news is that everything goes on schedule. I just finished the server-side implementation of the XBRL reporting project as I planned in my proposal. Actually it was an unexpectedly busy summer. The school suggested us to finish a course during the summer and I need to pack my stuff and prepare for my move to Pittsburgh. The daily checkin kept me making progress every day even on a busy day.
My mentor KOJO introduced test-driven development to me, which not only makes the code strictly follow the requirement but also helps the developers to think more about the modularized and decoupled patterns when designing code structures. We paired with each other on writing unit tests and integrationtests. The test tool Mockito is one of the neat things I’ve learned when pairing with KOJO. Sometimes test code can be hard to write because of all the dependencies a class has. That is where Mockito comes in, mocking the unrelevent dependencies so that you can focus on the method you test.
Making good use of great open source building and managing tools is another secret to the make of a successful open source community. Mifos uses this fantastic tool Gradle to automate the building process. The convenience Gradle brought shocked me when I first built the mifosx server. And I knew more and more about its capability when getting a deeper look inside it. Other great tools like maven and flyway, even tomcat, that Mifos uses are integrated within gradle. It’s really like an all-in-one package.
The team bounding period came to an end, and the coding starts! During these few weeks of formal participating in the team’s weekly routines, I was impressed by how efficient and organised the team worked. I once thought that since mifos, as any common open source community, does not make profit and give pays to contributors, there probably were just a few volunteers scattered all over the world making some commits based on their interest during their free time. I found I was totally wrong when having witnessed the team operating in such an ordered and methodical way.
Using Git is no surprise. It is a great tool for collaboration, especially for open source projects. Project issues are tracked and managed by JIRA system. There are several volunteers testing the master branch code according to test cases every day and bugs are reported on JIRA with great details. Some bugs are assigned to specific person, some are left open to volunteers all over the world. I worked out several issues when I was applying for gsoc. The team’s immediate and careful responses were out of my expectation. That was also one of the most important reason that I chose mifos over other open source community.
Each week we have a developer meeting or a user meeting. During the biweekly user meeting, a presentation was given by a volunteer on a wide range of topics from the scholar researches to product design and to user showcase. Many of the users are from Africa and Mideast. ‘Fighting against poverty’ is not just a slogan, but what mifos is actually achieving. It is wonderful to work for such a community.
It feels so good to be a part of this event. Coding, open source, Google, $, all sound so cool to me.;)
The applying process is struggling at first. Choosing the right project to work on is never an easy job, but once I made up my mind, all I need to do is getting involved in the project.
The open source community I joined is Mifos, a managing platform for microfinance institute. I’ve never heard of it before applying to gsoc, but it caught my eyes from a fairly long list of participating organizations because I was once so into finance at college. I read financial reports of listed companies and analyzed their k-chart. I even got the Certificate of Securities Qualifications. Let bygones be bygones. I started contributing to mifosx, and this community really surprised me. I felt respect, belongingness and ownership while participating in the community. In fact, it has far more volunteers around the world than I previously thought.
The project I will work on is XBRL reporting integration. Here’s my proposal for the project.