Industrial Training Report
Industrial Training Report
Submitted by
Name: H.T.M. Gamage
Reg.No: 064031F
Submission Date: 20th of April 2009
Training Period
From 29th November 2009 to 18th April 2009
Training Establishment
hSenid Software International (Pvt.) Ltd.
hSenid Mobile Solutions
46/12, 1st Floor, Sayuru Sevana,
Nawam Mawatha.
Colombo 02.
Preface
Industrial training program offered by faculty of Information Technology, University of
Moratuwa is an opportunity for an undergraduate student to apply his theoretical knowledge
gained during the university academic program into real world industrial based application
development and experience professional software development process. The objectives of
such programs are to enhance participants skills, and to enrich their industrial knowledge by
keeping them updated with the latest technlogies. This opportunity has extremely helped me
to expose into an environment where I could think of as a software engineer instead of just as
a software developer.
This report documents the knowledge and experience I have gained through my industrial
training program at hSenid Mobile Solutions. It will contain three main chapters as follows;
Throughout my industrial training program I have achieved several milestones and targets,
and it has been a challenging working environment at hSenid, where I got the initial
impressions on how to use IT to change my life style.
ii
Acknowledgements
To become a professional in Information Technology industry, industrial training is the
foundation for each undergraduate student. It helps students to improve their practical skills
related to interpersonal, problems solving, research and reporting as well as soft skills. Also it
helps the students get exposure to the industry, apply the gained knowledge throughout the
academic program and learn new updated technologies. In addition, it helps students career
development and to prepare for employment after graduation, by engaging in personal and
professional development planning.
I hereby use this opportunity to thank everybody who helped me directly and indirectly of
successful completion of my industrial training at hSenid.
Further I would like to thank my faculty; all academic and non academic staff made our
industrial training program a success. I would like to thank Prof. Dileeka Disas; Dean,
Faculty of Information Technology. And also I would like to express my utmost gratitude and
sincere to Dr. Ajith Madurapperuma and Mr. Leelanga D. Senevirathne for taking initial
actions in organizing this placement for me. And also I would like to thank the department
heads and the entire staff members who worked hard to make this training success.
iii
I would like to thank Mr. Dinesh Saparamadu; CEO of hSenid Software International, for not
only making this opportunity available for our students, but also for being there with us
regularly, sharing his many experiences, checking up on our progress and in general playing a
very active role in our internship. I must also thank Mr. Tolga Mahlke; Senior HR Manager
for his endeavors towards making our internship an all-round learning experience, as well as
Mrs. Gayani Gunasekara, Ms. Nadya Thisera, Ms. Thilanka Kodithuwakku, and other
members of the HR team who supported us throughout our stay.
Also our special thanks goes to the Project teams which I was involved who gave us superb
guidance and support in developing my skills. The Special thanks go to Mr. Dumidu
Nayanamithra; Operations Manager who closely worked with me during my internship
program and Mr. Harsha Sanjeewa; Senior Technical Officer who gave several ways to selflearning and growth that improved my technical skills great deal during my internship
program. Also special thanks go to the Mr. Harshana Wickramasinghe; System Administrator
who helped to get most of the issues to be solved. Also special thanks go to Mr. Binuka
Chandima: who has been my Project Manager for the projects I have contributed during my
internship training. Finally I thank everybody who made my training a success.
Finally my big thank should go to my parents and other family members for helping me and
supporting me to succeed in this event. There are other people that I was unable to mention
by their names. So Im really grateful you for all your support and help.
iv
Table of Contents
Preface ........................................................................................................................................ i
Acknowledgements .................................................................................................................. iii
Table of Contents ......................................................................................................................v
List of Figures .......................................................................................................................... vi
List of Tables ............................................................................................................................ vi
Chapter 01 - Introduction to Training Establishment.................................................................1
Chapter 02 - Training Experience ............................................................................................15
Chapter 03 Conclusion ..........................................................................................................34
Appendix A hSenid Organization Structure..........................................................................38
Appendix B XPlanner, Bugzilla ............................................................................................39
Bibliography .............................................................................................................................40
Abbreviations ...........................................................................................................................41
List of Figures
1.1 hSenidMobile organizational structure ................................................................................7
1.2 hSenid development process ..............................................................................................10
2.1 Layers of iPhone OS ..........................................................................................................21
2.2 MVC architecture ...............................................................................................................25
2.3 XMPP iPhone client contacts / add new contacts ..............................................................27
2.4 hExpense screen shots ........................................................................................................30
2.5 mRecharge J2ME client screen shots .................................................................................32
List of Tables
1.1 hSenidMobile award winning solutions ...............................................................................3
2.1 Expense Tracker database table format ..............................................................................27
vi
hSenid Software International (Pvt.) Ltd. is a software development company with offices in
United States, Singapore, India and R&D centers in Sri Lanka & Malaysia. It was founded in
1997 with the aim of supplying high quality software products and services to its customers
worldwide.
The first interesting thing about hSenid Software International is how it got its name. hSenid
is the reverse of name D-I-N-E-S-h, the name of hSenid stands for the CEO of hSenid, the
man who started it all and widely known entrepreneur, Mr. Dinesh Saparamadu.
hSenid Software International (Pvt.) Ltd; hereafter and in general in this report referred to
simply as hSenid; has grown to become a leading organization in the software industry in Sri
Lanka and has begun its operation globally. From its beginning it has expanded its customer
base to the international level. It continues along its goal of providing quality software
solutions to all its customers currently operates in five countries worldwide.
hSenid is an Application and Service provider for the Telecom, Financial and Enterprise
markets. We specialize in Human Resource Applications and Mobile Applications and are
also widely recognized for its reliable offshore/outsourcing capabilities.
With a staff of over 250 skilled engineers worldwide, hSenid offers the best solutions for
businesses worldwide. hSenid clients include
Todo1(Florida, USA), DST (Brunei), Tigo(Sri Lanka), Sampath Bank (Sri Lanka),
Valista(Ireland), major Financial Institutions, Airlines, Telecoms, and Insurance Companies.
hSenid build its culture deep rooted in hSenid Core values Quality, Accountability,
Personal Growth and Discipline.
Company Values
A favorite sentence of the CEO is; One can become a hSenid Employee, but to become a
hSenidian, one must follow and live up to hSenid Way The obvious question that would then
arise is who is exactly a hSenidian? hSenid proudly boasts of the culture of the company.
The hSenid culture is described in following six sentenses;
Once again, a strong emphasis is placed within the company to nurture these values, and as
trainees, this values and their importance was a recurring theme in out induction. Even at
general staff meetings, examples of people acting out these values were presented and
applauded. This great value orientation in hSenid is I believe one of their greatest strengths
and something that should be continued and encouraged.
This section describes the main divisions of hSenid, which can be used express what hSenid
means and its main functions. hSenid operates mainly under four divisions each covering a
different domain. All four divisions are described shortly here, exploring what each division
is all about, what functions they add to the overall organization as well taking a look at some
of the major product milestones and outstanding achievements of each of them.
Awarded
Ranked top 3 mobile application providers under Enterprise category at
Ericsson International Mobile Applications Awards 2004.
hDirect
Won the Silver award at the National Best Quality Software Awards 2004 in
the category Media and Entertainment Applications held by British Computer
Society Sri Lanka.
Banco
Won the Bronze award at the National Best Quality Software Awards 2003 in
the category Communication Application held by British Computer Society Sri
Lanka.
My Internship at hSenid was intended to be here and I had lot of experience in this lovely
office environment. I got to know some hot technologies and also started to work on them.
hSenid Mobile offers mobile solutions in different functional aspects such as;
Financial Functionality
Messaging Solutions
Entertainment Solutions
This HR solution functionality of hSenid has resulted in the creation of several award
winning solutions by the company;
HRM Enterprise - Solution brings together the best tools to fulfill all HR needs.
mTimeTracker - 2nd runner up at the National Best Quality Software Awards 2002, BCS
ePayroll 2000 - 2nd runner up at the National Best Quality Software Awards 2000, BCS
HRM 2000 - 1st runner up award at the Best Quality Software Awards 1999, BCS
Onsite-Offshore Model
The skills which are available at hSenid allow going forward in the wide area of outsourcing.
These skills include the Java Technology spectrum, MySQL platform, as well as Microsoft
Technologies and RedHat practices. The out sourcing function has become a division since it
has been providing quality and efficient software.
1.3.4 MITZ Studio
H.T.M. GAMAGE - 064031F
A division of hSenid, where takes a different aspect from the software development and
service feature. It leads into 3D animation and graphic design as a new division. MITZ studio
was initiated in 2003 and currently is a successful venture into providing organizations with
high quality computer graphic designing and animation services. The functions that MITZ
studio adds onto hSenid are: 3D Visuals, Architectural Visualization, 3D Animation and
Video Editing.
First Ill begin with a brief look at hSenid from an overall perspective and see how it is
functionally structured as a whole, without going into detail of the different subsections, the
people and their roles. This will be followed up with a more detailed look into how hSenid
Mobile is built up.
Given bellow is the top-level brief outline of the organizational structure of hSenid Software
International from a functional perspective. The diagram is kept simple on purpose where I
will not describe in deep of the structure. Below this level of management lies in general
several major team based structures headed by Project Leaders and Team Leaders (this is
mainly in technical divisions). It then goes on to encompass the engineering level, support
staff, and of course the staff of non-technical nature such as marketing executives. (See
Appendix A for more details)
All the software engineering division and the Quality Assurance division managed under the
Operational Manager which is known as engineering team. There is a separate division called
support division, which is responsible to system integrations, Network administration, and
other support tasks related to hardware. Presale division is responsible for interact with the
customer throughout the project. Normal project development team consists of Project
Manager, Architect, and Pre Sales engineer, Tech Lead, Dev Lead, Developers and QA. Later
stages of the project Technical writers also join to the team.
Also there is a team which brings new sales to the company which is called the sales division.
Further there is another division which brands the product standards, the documents which
are related to the customer and some marketing which is called the Branding and
Communication division. Also there is another team who cares all for the employees are the
Human Resource team.
Then the company is grouped by projects. Every project has a project manager under whom
the developers, testers and quality assurance personnel work. Project manager is the
responsible personnel for the software products. He is responsible for the delivery of the final
product according to the negotiated time.
When I was studying the software development process of hSenid during my stay, the
concept of XP lying within the process was clear as the four above mentioned values are also
mentioned as part of the official SD guide for hSenid Mobile. I also saw several XP practices
being deployed in the everyday project work that I went through. Examples of this are, stand
up meetings daily, measuring project velocity, dividing the projects into iterations and
making small releases more often.
Iterations are then planned out in meetings held for each iteration
XPlanner is used for tracking, BugZilla for tracking bugs and SVN for version
control.
Here I would like to introduce briefly several important tools that I myself have used in my
project development work at hSenid;
XPlanner Project planning and tracking tool for eXtreme Programming (XP) teams.
Some of the features of XPlanner include assigning tasks, managing and tracking the
development and completion of tasks as stories, recording time spent on activities vs.
time allocated and keeping records of developer status as well as overall project
status.
SVN Subversion (SVN) is the version control system that we used in the
development work on the projects at hSenidMobile (this has come to replace the use
of CVS). It is an invaluable tool for our needs as we had around 10 developers all
working on the same project and it was very important to have this tool to control the
versions and keep track of changes.
Design
Coding
Testing
hSenid uses customized version of the eXtreme Programming as the development core
process of the organization. Test driven developments, Collective ownership of the work,
flexible hours of work, Iterative development are the main features of the core process. Along
with that every project team is having stand-up meetings in every working day of the
company. In a stand-up meeting, every member of the team should update the team regarding
their own tasks. For tracking the progress of ongoing projects, hSenid uses an extreme
programming project management tool called XPlanner which also helps the team
members to keep their work in line.
10
2004 National Best Quality Software Awards - silver for Media & Entertainment
Similar awards in the National Best Quality Software Awards throughout the years
1999 to 2002.
11
February 2009 hSenid participates in GSMA Mobile World Congress 2009 and exhibit
hSenid Solutions
September 2008 hSenid exhibits its solutions at CTIA Wireless IT & entertainment
exhibition.
March 2008 hSenid showcases their outsourcing capabilities at CeBIT, world's largest
trade fair showcasing digital IT and telecommunications solutions for home and work
environments
December 2007 hSenid begins its specialized outsourcing wing in India with the goal of
providing fully functional QA services for all their business aspects.
December 2007 Hemas Holdings, one of Sri Lankas premier organizations, joins
with hSenid towards becoming a part of their HR service customer base.
November 2007 MySQL recognizes hSenid as a Gold Partner. This is an important step
on the road to excellence for hSenid and puts them at a great advantage in the open source
market.
September 2007 hSenid receives the highest recognition of excellence in the field from
Microsoft by being taken in as a Gold Partner in view all the great work done on the
Microsoft technology platforms and related services provided.
September 2007 MySQL recognized hSenid as the first ever Outsourcing Partner.
12
Strong leadership. This is achieved through hard work by the CEO, GMs and project
managers and all the other leaders, which brought company up to todays high
standards and willing to take it further. HsenidMobile works to be one of the preferred
mobile solutions providers in 2015, among all other high standard companies around
the world.
hSenid is willing to change. Its all about people. Actually this was the earlier hSenid
Slogan which was changed latter. So according to that hSenid has some great, talented
and dynamic hSenidians.
Focus on personal development and teamwork. As this is strength where the CEO all
ways says put up you personal development plan and go according to that work in the
year. Also team sprit has made hSenid to make all these products live.
Strong partnerships. As shown in the many examples before in this report, hSenid
puts a lot of effort into forging mutually beneficial partnerships.
Strong customer base. As mentioned before hSenid has a big customer bay in Sri
Lanka and also it has now started to catch up some global clients like in USA,
Singapore, Ireland etc.
Strong focus on quality ensures that all the solutions they provide are tip top and it
ensures customer satisfaction and helps maintain a healthy customer base.
hSenid has not just stick to a certain boundary box in technology wise where we use
Microsoft products and also Open source products where we provide the least cost
and time solutions.
1.7.2 Weaknesses
Though there is a strong trend within the company to develop their employees (and I
have personally seen the HR teams put a lot of effort into this with many staff
development efforts as well as surveys to ensure that people in the organization are
satisfied), the attitude towards some of these efforts is not as enthusiastic as it should
be. For the most part, some employees do not take these efforts seriously and consider
some of the surveys for example, as a waste of time. Of course, with my short
13
experience in the company, I am not fully qualified to say whether this problem is
solely based on the employees attitudes or whether a part of the problem is that these
HR ventures are not well followed up to a good effect.
Possible Constraint:
One possible problem towards this goal is the attitude of some people. As I mentioned earlier,
something I have seen in some employees and trainees that they do not possess a great
enthusiasm for such ventures into communication building, teamwork etc and instead focus
more on the day to day work they have. And also the work load seems to get higher and dev
team might not get opportunity to focus on other activities most of the time. If we can get
more team based activities and increase events such as team outings, I believe this can make
a difference.
14
15
16
Further I had training sessions on particular tools which are being used in the company.
These are tools used in every project. First I had training on the XPlanner tool. XPlanner is a
project planning and tracking tool for eXtreme Programming (XP) teams. It is not just only a
project planning tool, but it is also to track the work being done through0 out the project and
H.T.M. GAMAGE - 064031F
17
also to make the projects to be done efficiently in future. This session was done by a Project
Leader. The Next session I had was in Subversion (SVN) which is an open source tool used
for version control management. This means team development coding is managed in a
central repository.
Also I had session on the tools which are being used in development. The sessions were on
Log4j, ANT, Core JAVA and JUNIT. The Log4j is a Java-based logging utility, which is
used to enable logging at runtime without modifying the application binary. The Next tool is
Ant which is used to build java based projects. Also I had a session on the tool which is used
for testing the developed code. The tool was JUNIT. The tool enables to develop test based
development. The next technical session which I had is the tool IVY. Ivy is a popular
dependency manager focusing on flexibility and simplicity. Also we had sessions on Tomcat
and Servlets. Tomcat is a web container, or application server which is used for deployment.
Also I learnt the concepts of JSP (Java Server Pages (JSP) technology enables Web
developers and designers to rapidly develop and easily maintain, information-rich, dynamic
Web pages that leverage existing business systems) and Servelets (Servelets are Java objects
that are compiled and stored persistently in the server side).
Other these technical sessions I had session like the coding conventions used in the company.
The programming style used in a particular program may be derived from the coding
standards or code conventions of a company or other computing organization. Also there was
a session from the Quality Assurance team on a tool which is used called Bugzilla. Bugzilla
is a Web-based general-purpose bug tracker tool. This tool makes managing bugs and enables
software engineers and QA engineers collaboration much effective. Also we had a quite a
lengthy session on MySQL, which really helped to extend our knowledge on database
management systems.
The training program conducted for us in an additional hour each day at a fixed time that we
were informed in previous day. The training program conducted for two weeks. The program
was really helpful for my knowledge but I had to parallel learn some other new things
regarding iPhone application development at the same time. I found it really challenging and
exciting to work on two completely different areas at the same time.
18
19
companies. By the end of Year One, you could type iPhone into Google and get 229 million
hits. Its over 336 million today. Amazing how such device became popular in short time. But
you wouldn't be surprised once you know how powerful this device is, its like a small multitouch computer on your hand with 128MB of ram and 8GB or 16GB of memory and a great
touch interface with support for multiple orientations and accelerometers.
Now theres a new iPhone, the iPhone 3G. More importantly, theres a new version of the
iPhones software, called iPhone 2.0. And then theres the iPhone App Store, which offers
thousands of add-on programs written by individuals, software companies, and everything in
between. The App Store is about to hit one billion downloads at the time I write this report,
and I am sure it will pass the one billion mark within no more than few days. This is huge.
Remember how mystified everyone was when Apple called its music player the iPod
instead of, say, iMusic or iSongs or something? The reason was that Apple had much bigger
plans for the iPodphotos, videos, documents, and so on. Maybe they should have saved
that name for the iPhone. And we will be having new iPhone 3.0 still in its beta supports
Yes, the iPhone is still an iPod. And its still the best Internet phone youve ever seen. It
shows fully formatted email (with attachments, thank you) and displays entire Web pages
with fonts and design intact. Its still tricked out with a tilt sensor, proximity sensor, light
sensor, Wi-Fi, Bluetooth, and that amazing multi-touch screen.
Therefore, its still a calendar, address book, calculator, alarm clock, stopwatch, stock
tracker, traffic reporter, RSS reader, and weather forecaster. It even stands in for a flashlight
and, with the screen off, a pocket mirror. But now, thanks to the App Store, the iPhone is a
fast, wicked fun pocket computer. All those free or cheap programs can turn it into a medical
reference, musical keyboard, time tracker, remote control, voice recorder, tip calculator, ebook reader, and so on. And whoa, those games! Hundreds of them, with smooth 3-D
graphics and tilt control.
All of this sends the iPhones utility and power through the roof. Calling it a phone is
practically an insult.
2.4.3 Objective-C
Objective-C is defined as a small but powerful set of extensions to the standard ANSI C
language. The Objective-C language is a simple computer language designed to enable
20
21
The Cocoa Touch layer is one of the most important layers in iPhone OS. It comprises the
UIKit and Foundation frameworks (UIKit.framework and Foundation.framework), which
provide the basic tools and infrastructure you need to implement graphical, event-driven
applications in iPhone OS. It also includesseveral other frameworks that provide key services
for accessing device features, such as the users contacts. We work mostly with this layer
when developing iPhone applications with Apple SDK.s
22
23
24
25
development. Then I have added iPhone specific relevant frameworks to the project and done
several changes to make the code able to be compiled and linked as an iPhone application.
After these steps I started implementing view and controller layers for the iPhone XMPP chat
client application. First I want to check the back-end code, there for my initial task was to
implement a login screen for iPhone and use it to login to ejabberd XMPP server using
iPhone Simulator. Once I have finished this, I could successfully login to an XMPP server,
and after this we decided to allow users to enter their account input information at Settings
screen instead of my application home screen. This required to add a settings bundle to the
application. Then I have created a Roster Controller class to handle contact updates after
logged in to xmpp server. The controller class has delegate methods to handle updates
coming to xmppframework XMPPClient class. In order to display list of loaded contacts on
iPhone screen it required to study about handling table views, its delegate and protocol class
methods. I have designed the contacts view using Interface Builder and linked its IBOutlets
and IBActions. Received IBAction methods were implemented in the Roster Controller class.
XMPPClient class and RosterController class has relevant objects in InterfaceBuilder linked
appropriately. All these IB stuff spread in the MainWindow XIB file, which is kind of a
resource file.
At the end of this my next main task was to implement chatting for contacts. To implement
chatting I have added ChatWindowManager and ChatController classes in addition to the
chat view designed using Interface Builder. The IB stuff for this is separated and kept in
ChatWindow.XIB file. When user taps a contact in the contacts view, it gets the reference to
chat window manager common instance and creates or gives relevant chat controller instance
with its view. After this, I had very few work to finish a simple XMPP Client for iPhone.
I was able to finish my work on implementing an XMPP chat client for iPhone with all basic
features, including loading/adding and removing contacts, accept/reject requests, send and
receive chat messages. I have implemented several features within a week after chat
implementation, including adding / removing contacts, accept / reject requests, and also
respond to swipe gestures and view current started chats in a tabbed view. I had to implement
a custom scroll view sub class to have swipe gestures on chat views. Swipe is a fast sweeping
blow on iPhone touch screen, in respond to that view should change or move accordingly.
Also I have implemented a separate request controller to handle accept reject requests coming
to the chat.
At the end of this application, I had pretty much confident about me to develop a high quality
iPhone application to be published at Apple AppStore.
H.T.M. GAMAGE - 064031F
26
Type
typeid int PK| name varchar
Expense
expid int PK| note varchar| date real| amount real| type varchar
27
Expense tracker application allows iPhone users to note down their daily expenses under
preferred profiles, further under any user defined categories/expense types. The application
development includes two main modules namely, expense module and report module without
implementation of user interfaces. I have started from implementing model classes for the
expenses module as planned. Expense, Type and Profile are three model classes for the
application with getters and setters and other methods. Properties are implemented in typical
Objective-C manner as synthesized properties. And also I have implemented main UIs for the
application using Interface Builder, to start with.
Then I had some tough development time, I needed the help of iPhone development forums
help badly to come across some issues. I have initially designed the UI flow for the expense
tracker application as well as I already did a research about current expense tracker
applications, specifically focused to iPhone. Then I have implemented the UI flow with dump
data and controller classes within two days. After that we had a discussion on changes and
scheduled the application time line. I have started the development according to the schedule.
I did a study about SQLite, a software library that implements a transactional SQL database
engine, which can be used in iPhone to store data of applications. Then I have implemented
table structure as we have already planned and controller classes to deal with model to add
new expenses under profiles and categories. Then I finished controller implementation for
managing expenses. At the end of the expenses module, application could allow users to
simply store their expenses under profiles and categories as they prefer with iPhone
navigation, also allowed to manage all these expenses, modify / delete.
In order to work with reporting module drawing charts; I have studied Quartz 2D
technology, which is used to draw 2D graphs and charts in iPhone applications. Initially, I
have implemented some test charts and used the code to draw a good looking pie-chart for the
expenses recorded with the application; graph displays expenses in a pie-chart with
categorized total. It uses total of each category and grand total queried from database to draw
the content. And then I have implemented a summary view for the Expense Tracker
application, which displays latest expense record, earliest record, highest & lowest expense
and also grand total of expenses. I have implemented a controller class to handle the
summary view, which retrieves data queried from database.
Then I worked with several application changes to Expense Tracker app, in order to improve
the usability of the application. It included some button positioning and spelling checking.
Then, we needed to implement a report of expenses happened in a table like format. While
we were discussing implementation possibilities, we decided to use a UIWebView to display
H.T.M. GAMAGE - 064031F
28
an html table format report within our application. Therefore, I have studied about
UIWebView and how to use it with in an iPhone native application. And also I wanted to
refer documentation several times to find how a locally created html file could be viewed
within a UIWebView object. And also I needed to get familiar with iPhone web dev a little to
provide an iPhone optimized html page to the UIWebView.
After that we planned to add a budget for the Expense Tracker application and I have worked
with it for the rest of the week. I have changed the add profile controller class so that it can
additionally handle adding a budget. Then also summary had to alter to display current
available budget or exceeded amount, in addition to the user interface changes to introduce a
budget add for the application.
At the end of implementation, I started application testing with iPhone and iPod devices.
Next, I had to study and test my application with real devices. It was not easy as testing J2ME
applications. I have registered as an iPhone developer in Apple iPhone developer program. I
have joined as a team member of iPhone developer portal for hSenid Software International.
Also I have faced several issues when trying to make and install application on real devices.
In order to test iPhone SDK applications, we need to go through below high level steps.
Create provisioning profile with developers, device IDs and application ID added.
Install provisioning profile on device and then install signed binary executable using
organizer.
At the end of my initial testing, I have released the application for QA and updated SVN on
it. I did a knowledge transfer to QA person on iPhone common application features and
iPhone Human Interface Guidelines. Then I have learnt how to use Bugzilla to report and
update on bug fixes and its progress. I initially started with smallest bugs so that I know I
have some progress on my work and then slowly started fixing major and critical bugs.
At the end of all main development, I was asked to do several modifications to the
application, nevertheless some of them did not match with Apple iPhone Human Interface
Guidelines. Most interesting new feature I have implemented was allowing users to email the
generated report with iPhone. After the completion, we delayed the application submission to
the AppStore via iTunes Connect until we get team agent access to the account.
H.T.M. GAMAGE - 064031F
29
After getting access to the account, I have created the distribution binary and submitted the
application to the Apple review. It required to complete a set of actions to be published for
review. We proposed a name for the application called 'hExpense'. The application will be
available to iPhone users to be downloaded from App Store with Tier 1 pricing.
30
A UI toolkit that is highly flexible and that can be designed outside of the
application's source code
A toolset for porting mobile application to different handsets and different technology
platforms.
Technology for accessing server side content and communicating with remote parties.
A persistence solution that allows loading and saving complex data with a single line
of code.
And more importantly, its opensource, you have code with you at any time and it has a huge
community working around it.
H.T.M. GAMAGE - 064031F
31
Monday Morning Meetings a meeting held every Monday for all the employees to
get the updates of all the projects as well as to increase communication.
32
Outings / Movie nights hSenid always focuses on the informal aspect of the
employment to keep the employees motivated, and therefore there were regular
outings, sports days and movie nights to keep our minds off the work.
Working Hours - Monday to Friday in one of the slots as follows: 8.00 a.m. to 5.00
P.M, 8.30 a.m. to 5.30 P.M, 9.00 a.m. to 6.00 p.m. or 9.30 a.m. to 6.30 p.m. Saturday
is not an official working day for hSenid. However, Saturdays are reserved for any
training programs and workshops, which we may be organizing from time to time.
Sometimes, We even had to work certain weekends and beyond the timeslots to cover
up deadlines.
Security Policy hSenid may monitor all our activities either on the computer on the
network or in general to ensure that we are not wasting company resources.
Code of Conduct and Dress Code hSenid has its own set of ethics on how
employees should behave, and this covers a wide range from being on time, using the
proper dress code both for office and meetings, taking leave and meeting deadlines.
33
Chapter 03 Conclusion
3.1 MY INTERNSHIP EXPERIENCE
I chose to join hSenid during the industrial placement period mainly because I really like to
get involved in the development side where I can get to know more about different
technologies. Also I like to get involved in Java and mobile application development thats
why I chose the hSenid Mobile division. This Branch is more interested on mobile based
applications as well as J2EE development. Further the company was mostly passionate to be
a SriLankan Company.
Once we joined the company as undergraduate trainees within the first two, three weeks we
had training sessions on technical stuff and introduction to company departments and the
process management in the company in parallel to our specific learning stuff. Here I will
describe my experience briefly that I have already expressed in previous chapter in detail. I
started with setting up my work environment and first two weeks were learning time for me
on Objective-C and iPhone application development. I had to get familiar with these things
fairly quickly to start application development. I was left alone for most of the studies and
gave guidance and small targets like finish reading recommended resources with a specified
day likewise. I was the only person training to do iPhone development at hSenidMobile,
where they plan to release iPhone applications to Apple AppStore.
After getting familiarized with the Objective-C basics and iPhone application development
standards fairly quickly, I was given a task to implement an XMPP iPhone client application.
I was free to learn on how to implement it and also get familiar with iPhone application
development with this application. Initially, I have studied about XMPP protocol and its
current available clients and servers. Then I have successfully installed and configured
eJabberd XMPP server to use as server for my client implementation. I went through jabber
specifications and found there is an existing Objective-C opensource client library written for
Apple Mac. After several changes to the xmppframework back-end code, it was in a form to
be used as model for my XMPP client iPhone application implementation. Initially, I faced
several compiling and linking issues, while changing xmppframework code to use as backend for my iPhone implementation. After successfully able to compile it for iPhone, I have
started implementing controller and view for the XMPP iPhone application. The application
needed to follow MVC architecture strictly and also the iPhone Human Interface Guidelines
when implementing the view. At the end of the application development, I got much
H.T.M. GAMAGE - 064031F
34
experience on iPhone application development and how to use Apple documentations and
forums to get over on critical situations in development. The application is capable of giving
users the ability to login to any jabber server including Google Talk, add contacts, chat with
friends, and remove contacts and all basic IM client functionalities. But it did not include
group chatting.
After that my goal was to develop an iPhone expense tracker application to be published at
Apple AppStore. The objective of this application was to implement a comprehensive yet
easy to use system built for businesses travelers, and other iPhone users to keep constant
track of their business expenditure while on the move. While achieving a successful
implementation of this application I was given a set of targets beforehand. I went through all
these initial targets to finally come up with an iPhone application to track expenses of iPhone
users. Final application included features; adding expenses under trips / projects, managing
and editing expenses, generating multi-touch enabled reports, emailing generated expense
reports from iPhone. The application is submitted to be published at Apple AppStore and
currently its under review by Apple. Its called 'hExpense' and will be available to download
at AppStore to download by iPhone users.
In addition to iPhone application development during my internship period, I have also
implemented J2ME user interface modules for a Mobile Recharge client and Mobile Banking
client. All these J2ME applications are part of hSenidMobile's mChoice suite. I have studied
and used J2ME polish API and its powerful build framework to implement user interface
module. The modules were implemented using all powerful features in J2ME Polish API
including attractive styling, localization, easy customization.
And more importantly, I got some great experience working with highly talented people
around working around me and giving guidance on achieving huge goals during my
internship, which sometimes I thought I would have failed if I tried them on my own. We had
fun time, movie nights, parties organized by HR team to inspire us and bring us all together.
The training program helped me a lot to build my confidence to become a professional in IT
industry and it helped me to improve my soft skills as well as inter-personal and
communication skills as well. In conclusion, I would say it had been a great time in my
university life working as an undergraduate trainee at hSenidMobile staying with highly
talented people around me and getting initial experience on the field we are going to be in
future.
35
Training Personnel and their Enthusiasm towards trainees the staff is always ready
to help us trainees out with our work and will readily share their experience or
knowledge when necessary. It is not a scenario of giving us some work and forgetting
about us, instead, they had a proper plan for our training and were always working
closely with us, monitoring our work and giving feedback when necessary.
Also there is very few negative things I can mention about hSenid in terms of its training
program, because honestly it is I am sure one of the best programs in the country.
High workload it is hard to say this is a problem with hSenid because to be honest,
it is the nature of the industry we are in. During my main project work however, I
have seen certain irregularities in work allocation and small issues with
communication, which if solved would have made our workload and the overall
project progress a lot smoother. So I am sure with time, as experience grows, these
issues can be overcome effectively.
36
One minor aspect I guess they could improve upon is if they themselves visited all the
training places during training. This way they would get a firsthand view of things and may
find ways to improve upon it. In my opinion, if this could be avoided it would be a perfect
program for all undergraduate trainees for their future in industry.
37
38
39
Bibliography
40
Abbreviations
Apple
Apple Inc.
BCS
BeyondM
BugZilla
CEO
CVS
GM
General Manager
HBS
HMS
HR
Human Resource
HRM
hSenid
IDE
J2EE
J2ME
MVC
NAITA
OS
Operating System
QA
Quality Assurance
SQL
SVN
Subversion
UI
User Interface
XP
Extreme Programming
XPlanner
41