We were required to undergo a 6 months of Internship Training during our last semester of Bachelor of Computer Science Degree in University of Ruhuna, Sri Lanka. This was August 2013 and it was compulsory and several credits were given and with the completion of the training period the general degree was to be completed. I was interviewed and got selected to a local company with reputation in the local market and in the International market to a lesser extent. There were 6 other fellow interns from University of Colombo School of Computing, Sri Lanka, with me scheduled to undergo the internship training with me.
We were given an introduction on how training period would pan out within the company and other relevant instructions. It was our first experience of the professional life, but at a lesser extent. We leanrt that there were several software teams within the company during the introduction by a Vice President. In the evening team leaders were allowed to assign us to their teams. Team leader of Mobile team came up with another team leader of a different team and assigned a girl who has done Android projects during university expeditions and they wanted to assign another one to the team for Android Mobile Development and asked us to be get assigned voluntarily.
I hadn’t done any mobile development processes before, except for a “Hello World” Android project on an emulator, where I got sick of it from the very beginning due to the lagging nature of running an Android app in an emulator in a laptop with 1 GB RAM! I thought this will be a chance to learn something new, properly at a right environment. I said to them that I haven’t done mobile development before and whether I would be allowed to have a time to learn about it. They said yes and team leader of Mobile team said he and other members will guide through the learning process and I said yes to them. So that I became a member of the Mobile team in the company.
I was allowed to have a two weeks of learning under the team leader who was nice and passed me the knowledge on Android Mobile Development. As he was going to resign from the company at the end of that month and he handed me over to another Mobile developer to continue with the training. Within two weeks I learnt of the basics and at the start of the third week I was given and Android project, which is of a respected client of a company and whole six months ahead of me. The developer whom I was assigned to has done up to packaging and developed about 3 or 4 screens when I received the project from him which was about 25 to 30 screens. Later he was assigned to an urgent project and I was assigned to that particular project because of it. The project was to develop and Android Mobile app to facilitate processes of an existing Windows CE Mobile app with extended requirements. I was fortunate that I was given Windows CE Mobile app’s code and understand the processes and development methods mapping with the SRS. For about three weeks I was trying to understand what was there in the code and the SRS and how I was going to facilitate the requirements.
With frequent google searches and instructions of the other developer whom I was assigned to, I started coding the app slowly. It was a large scope and a lot of functional requirements. It was really challenging as I have not done such large scale project ever. After quiet two months they wanted to review my work and I was behind the schedule. So I had to step up and make it quicker. After a two months of struggle I found out the key things I should do throughout the coding processes and since then there was a steady progress. But for the most part what I had to do was trouble shooting and searching on how I was going to facilitate a particular requirement to match with the Windows CE Mobile app.
Then after three months time the app was assigned a QA group and began testing the app. Then there was a demonstration of the Android Mobile app at customer’s site and there were many under construction work left, but the basic flow was finished. With the involvement of the QA team and the client I had to change many things in the app and it was also a great learning experience for me. There I learnt about the whole Software Development process and I was able to involve actively. With continuous bug fixes, changes, modifications and reviews I finally finished the app by the middle of the fifth month of the training and published it in the market so that the client group has the access to it remotely.
Within that 6 months of internship period I was fortunate to be assigned to a project so quickly and to do something that matters and involve in a Software Project actively. Though I hadn’t done any of the Mobile Development processes before these six months taught me the most of Android Mobile Development. It was all because of volunteering to the Mobile team at the very first day of my internship. I thought it would be a challenge and a new field to learn and I haven’t had any thoughts before. At the end of six months I thought I have done the right thing. Even today I think that is one of the best decisions I have taken in my life and so far the best in my professional life as a Software Engineer.