SlideShare a Scribd company logo
1 of 42
1
Chapter 01
1. Introduction to the Industry
1.1 Nature of business of the Industry
My 6 month internship was carried out at Virtusa (Pvt) Ltd. Virtusa Corporation (NASDAQ:
VRTU) is a global information technology (IT) services company providing IT consulting,
technology and outsourcing services. Virtusa provide high-value IT services that enable their
clients to enhance business performance, accelerate time-to-market, increase productivity and
improve customer service through enhanced global delivery model, innovative software
platforming approach and industry expertise. Virtusa has marked a leading position in the field
worldwide serving Global 2000 companies and the leading software vendors in Communications
& Technology, Banking & Financial Services, Insurance, Telecommunications, and Media,
Information & Entertainment industries. They build and sustain application platforms for our
clients that create competitive advantage. Virtusa was Founded in 1996 and headquartered in
Massachusetts and have offices and technology centers throughout the United States, Europe and
Asia. Virtusa has advanced technology centers in US, UK, Hungary, India and Sri Lanka and has
employees around 8000.
Virtusa is an industry leader with a solid track record of software solution delivery success as
evidenced by highly referenceable and repeatable client base. . It is in the leadership in a wide
range of IT disciplines such as software plat forming, business process management, data
warehousing and business intelligence, enterprises content management, service oriented
architecture and software testing.
Virtusa considers people as their most valuable asset. Virtusa focus on state-of-the-art
technologies and best-in-class infrastructure enable them to attract as well as retain world-class
technology professionals who thrive to help their clients succeed. Virtusa’s people are
acknowledged for their exceptional talent, passion, dedication, commitment, innovation and
2
creativity. They take great pride in providing thought leadership, building sophisticated cutting
edge solutions and creating client delight. From its inception, Virtusa have developed an
organizational culture based on a set of core values such as pursuit of excellence, integrity,
respect and leadership (PIRL). From the training periods at Orientation period, all the employees
are made to internalize those core values and diligently practicing them and it provides the key
factors for team members at Virtusa.
As it is mentioned in their website Virtusa, anticipate and understand their client's emerging
needs and work in close partnership to make their businesses stronger, valuable, more profitable
and more productive. Virtusa also offer them the capability of capturing market opportunities.
They work closely with client's leadership teams in order to gain better insights for providing the
best possible IT services and solutions to their business challenges. This enables Virtusa to
establish extremely close partnerships that foster continuous operational improvements and
better bottom-line results for their clients.
1.2 History of Virtusa
Even before my internship I was inspired by success stories of Entrepreneurship and it made me
read about history of Virtusa. In internship also once I got the opportunity to hear this success
story from Sanjeev Palihawadana – Senior Director and Delivery Head of Virtusa.
Virtusa was founded as ‘Software Solutions’ in 1997 by Kris Canekaratne and small group of
people in small place. The company was later renamed as ‘Technology Providers International’
and was involved in software development. In 1998, the company opened their head office
at Westborough, Massachusetts and the company was incorporated as Technology Providers Inc.
in the United States. In year 2000, Technology Providers International was renamed
‘eRUNWAY Inc.’ and offered eBusiness, Internet software development and systems
integration services. eRUNWAY was re-launched as ‘Virtusa Corporation’ on April 22, 2002.
The name Virtusa is derived from the Latin "virtus" meaning excellence. Virtusa went public on
August 3, 2007 by listing on the NASDAQ exchange. In 2009, Virtusa acquired InSource, a
technology consulting company with specialization in the Insurance and Healthcare industries.
3
The following year, Virtusa acquired ALaS Consulting LLC, a Financial Services Consulting
Firm.
1.3 Vision and Mission
Virtusa Vision
To be the preferred partner of leading enterprises and visionary CIO’s who aspire to lead their
industries by adopting and deploying flexible technology platforms that enable their It
organizations to respond to changing business requirements providing support for their
enterprises’ most critical strategic requirements.
Virtusa Mission
Virtusa's mission was to provide next generation technology and innovation services to its
clients. The quest to push the technology envelope and to be at the forefront of industry trends
while working with leading product developers and enterprise customers is what enthuses and
motivates Virtusans , resulting in the company's ability to attract and retain the best talent.
Virtusa's exacting hiring standards ensure that Virtusans represent a select group of global high-
performers with a deep and extensive knowledge of emerging technologies and business domain
 To be the partner of choice for corporations in creating competitive advantage through
technology excellence
 To create the best conditions for professional success and quality of life for all Virtusans
 To be a socially conscious and responsible corporate citizen in all countries of operations
4
1.4 Organizational Structure
1.4.1 Executive Officers
Kris Canekeratne Chairman and Chief Executive Officer
Thomas R. Holler Executive Vice President and Chief Operating Officer
Roger Keith Modder President,Asia and Executive Vice President for Global Services
Raj Rajgopal Executive Vice President of Business Development and Client
Services
Ranjan Kalia Senior Vice President, Chief Financial Officer, Treasurer and
Secretary.
Samir Dhir Executive Vice President, Chief Delivery Officer and Head of
India Operations
1.4.1 Board of Directors
 Kris Canekeratne
 Izhar Armony
 Robert E. Davoli
 Ronald T. Maheu
 William K. O’Brien
 Rowland T. Moriarty
 Martin Trust
1.4.2 Senior Leadership team
Jim Francis
Executive Vice President - Strategic Business Development
John Gillis
Executive Vice President - Client Services and Business Development
Bob Graham
Senior Vice President - Banking and Financial Services (Strategic Business Development)
5
Chandika Mendis
Senior Vice President and Global Head of Engineering
Frank Palermo
Senior Vice President - Global Technical Solutions Group
Harsha Kumar
Senior Vice President - Outsourcing & Transformational Industry Solutions
Madu Ratnayake
Senior Vice President and Head of Digital
Paul Tutun
Senior Vice President - General Counsel and Assistant Secretary
Sameet Gupte
Senior Vice President and Managing Director, Europe
Srinivasan Jayaraman
Senior Vice President and Managing Director: Middle East and Asia Pacific
Tim Wright
Senior Vice President - Global Head of Business Consulting
Vasan Srinivasan
Senior Vice President - Banking and Financial Services,North America
Zlatan Lipovaca
Senior Vice President and Global Head of SAP Practice
1.5 Virtusa values
Virtusa’s objective as mentioned in website is to create an environment where great people can
do their best work and find the path to realize their full potential. Virtusa values form the nucleus
of their corporate culture. Virtusa culture places great emphasis on teamwork, professional and
personal development and quality of life.
These values act as a foundation for evolving culture and are the basis of operational mode.
Virtusa values preserve the team environment and the founding spirit of the company. They are
6
the source of our creative ingenuity and success. So, they empower each associate to be driven
by values, nurturing new ideas and fostering excellence.
1.5.1 Pursuit of Excellence
All Virtusans are expected contribute in high performance teamwork. Innovation, creativity and
discovery of the possible solutions are highly encouraged. In addition, to sustain in the rapidly
changing technological environment, the continuous learning and self-improvement is expected
from all Virtusans.
 Demonstrate innovation, creativity and resourcefulness
 Seek continuous self-improvement and constant learning
1.5.2 Integrity
The honesty and trustfulness is expected in all sort of interactions. Individuals and teams should
demonstrate a high degree of accountability. There cannot be hidden agenda and taking
responsibility for whatever done is anticipated.
 Demonstrate genuine sincerity and personal honor
 Establish realistic expectations and commitments
1.5.3 Respect
All Virtusans should respect the clients and fellow team members. They should make the clients
respect for Virtusa at every possible occasion by being “Trusted Advisors” to the clients. High
degree of collaboration among the team members is expected. Each should help others towards
solutions, and should not degrade others.
 Treat clients and colleagues with genuine respect and value the intrinsic qualities of
each
 Support team members , find solutions not fault
7
1.5.4 Leadership
Virtusans are encouraged to take ownership on what they do. While being a leader to what
oneself does, he or she should encourage others to take leadership on what they do. Teamwork
and positive thinking is anticipated to accomplish difficult tasks. The success is expected to
assign to the team while taking personal responsibility at the failures.
 The Lead by example, encourage others to take ownership.
 Assign success to the team
The clarity of definition, richness and commitment to adhere this Vision, Mission and Code of
Conduct has been witnessed by the success of Virtusa today. With dynamic workforce providing
best-in-class operations across domains, Virtusa today is at the forefront of Information
Technology innovation. Virtusans are highly motivated, well-rounded individuals with
outstanding credentials, a strong record of professional accomplishments, and best-in-class
technology skills. They share their passion, innovation, ideas and energy with global teams to
solve our client’s most critical and challenging issues.
1.6 Different products / activities of the Industry
1.6.1 Services
Virtusa offers many types of IT services to its clients. These services target the efficiency,
effectiveness and continually improvement of IT applications and systems of the clients.
Business Process Management
Leverage Virtusa's BPM capabilities, business process testing and IT consulting services to
implement successful BPM programs in an organization.
8
Customer Experience Management
With four fundamental business drivers (cost, collaboration, compliance & continuity) that
define overall success of Virtusa CEM strategy, They offer the key to a successful CEM
implementation.
Enterprise Information Management
Virtusa's DW/BI practice directly addresses diverse industry challenges by offering a holistic
business-result oriented approach to meet the complete information management need of
enterprises.
Independent Software Quality
Virtusa's testing services deliver high value business solutions by leveraging our in-depth
experience in test methodologies, automation frameworks, tools and processes.
Mobility
Virtusa's mobility practice spans the entire life cycle of an organization's mobility needs right
from strategy and consulting to mobility platform assurance by leveraging rich partner networks.
Cloud Offerings
Virtusa's cloud based offerings span the entire software spectrum from assessment to migration,
implementation and integration.
SAP Offerings
Virtusa offers a wide range of financial transformation services built on the SAP platform.
Virtusa's SAP offerings provide end-to-end solutions that cater to the unique needs of clients.
Enterprise IT Services
Virtusa provides a host of services to help organizations in developing robust, scalable solutions
that are designed for success.
9
Business Consulting
Virtusa's consulting practice is adept at helping clients navigate change and achieve results
through technology and people.
Infrastructure Management
Virtusa’s Integrated IT Infrastructure Management Services (i3MS) enables businesses by
providing business ready nimble infrastructure and ensuring outcome links to needs of
enterprises.
1.6.2 Industries of Service
Aerospace / Defense
Virtusa have been a strong partner delivering reusable ECM solutions to Aerospace/Defense
clients. Virtusa with its unique combination of domain expertise, operational excellence, and
innovative technologies has delivered high-value business transformation and IT services for its
clients in the Aerospace/Defense industry.Virtusa global team provides solutions to meet specific
business needs of clients to gain competitive advantage, optimize and manage costs, improve
time to market and thereby increase overall efficiency and productivity.
Banking and Financial Services
Virtusa possesses deep domain knowledge, experience in Banking & Financial Services and
technology realm by working with Fortune 500 financial institutions and industry-leading
software vendors. Virtusa helps Banking & Financial Services firms transform business
processes, rationalize product portfolios, modernize operations into a cost-effective, strategize
business assets, comply with regulations, managing risks and maximize customer satisfaction.
Their Platforming methodology, blended with Global Delivery Model and proven processes
build comprehensive IT solutions that help financial institutions address business needs, in order
to achieve positive and measurable return-on-investment
10
Education
Virtusa’s Education segment helps institutions thrive in an open and rapidly changing world.
They strive to help clients make the transition from the industrial age of learning to the digital
age through a portfolio of technology solutions, developed in collaboration with their global
client education community.
We cater to the diverse needs of education by leveraging our functional and technical expertise
across a range of industry segments including: Education, Training & Assessment, Professional
Learning, Educational Publishing.
Energy & Utilities
Energy and utility companies are continuously striving to optimize their business performance
through better technology and business strategy and to remain competitive through cost
containment, safety and compliance. Utility organizations are increasingly looking to manage
processes for better business outcomes adhering to critical regulatory compliances.
Healthcare
Virtusa's mission is to contribute to clients' success by delivering C3ORE Solutions that provide
significant and sustainable value. Virtusa’s solutions and services enable clients – Health Plans,
Providers, Service Providers, and Software Vendors within the Healthcare sector – transform
their business by optimizing operations to gain efficiencies, and expanding their target audiences
by providing a distinctive millennial and consumer engaging experience.
Hospitality & Travel
The industry is investing heavily in innovative solutions that will improve customer retention
rates and drive business revenues. Virtusa understands the need for quick, seamless customer
interactions and the importance of establishing an effective feedback mechanism to stay
competitive in the Hospitality and Travel industry. Virtusa’s hospitality and travel practice offers
business solutions and consulting that will have an impact on client experience, with a focus on
domain-led services through technology excellence.
11
Independent Software Vendors
Virtusa has partnered with leading Independent Software Vendors (ISVs) to address key
challenges by developing and delivering over 4000 commercial grade software product releases.
Insurance
Virtusa’s complex transformational projects to Insurance firms leverage their deep domain
expertise and technology capabilities to deliver focused business value. They bring solution
expertise in industry specific areas, including business process re-engineering, rule and product
engine configurations, pricing, automation, risk modeling & portfolio management, and business
transformation in the areas of claims, underwriting, and distribution management.
Information Services
Virtusa provides innovative technology solutions for value added and personalized content to
help Information Service Providers meet the growing demands of their end customers. Virtusa’s
vision is to accelerate client’s goals by providing cutting edge technology services to help gather,
store, manage and distribute content effectively and efficiently to its customers. Virtusa industry
solutions are designed to help clients overcome challenges in leveraging their information assets
for better decision making.
Manufacturing
Virtusa leverages its rich domain and consulting expertise to enable organizations to re-invent
their business models without compromising product quality and regulatory norms. Virtusa helps
global manufacturers take advantage of these opportunities while minimizing business risks by
blending our rich domain consulting expertise and platform technology heritage to enable
organizations to re-invent their business models without compromising product quality and
compromising regulatory norms. Virtusa's technology enabled business solutions cater to
organizations across the manufacturing spectrum.
Media and Entertainment
Virtusa’s unique technological capabilities and our rich consulting experience allow to enable
organizations for the rapid shift to multi-channel distribution models.
12
 Rapid shift to multi-channel distribution models including digital platforms in an effort to
provide enhanced, personalized and relevant customer experiences
 Cloud-based, cost-effective solutions to deliver services more efficiently over new and
evolving platforms
 Addition of reliable revenue streams through content monetization strategies built on
sophisticated campaign management solutions
Telecommunications
Virtusa has always been at the forefront in providing innovative solutions for the
Communications industry. As an IT service provider, Virtusa with a strong base in
Telecommunications services is driven by innovation and thought leadership. With their proven,
comprehensive suite of solutions for in the critical areas of consulting, technology and
outsourcing, advanced development methodologies and cost-effective delivery locations, they
partner with Communication providers to maximize assets, unleash growth, and transform to
succeed.
1.7 Corporate social Responsibility activities towards Sri Lankan
society
Rather just engaging in business Virtusa also engages in CSR activities which concerns the
society and environment. The following activities are few examples of Virtusa’s CSR activities.
As a responsible employer the company itself provides great job opportunities for Sri Lankan
industry.
 Campus reach-The main objective of this program is to improve collaboration between
industry and academia. Under this Virtusa does seminars, workshops, develops course
materials to institutes and supports in sponsorships. Especially the industrial placements
13
provided by the Virtusa are great service as they provide the opportunity to about roughly
50 interns within a year.
 Digital reach-Virtusa always tries to build digital literacy within community. It will help
to improve peoples’ quality of life. Usually they go to rural schools and do various
programs to school children.
14
Chapter 02
2. Training Experience
2.1. Introduction
My Internship at Virtusa started on the 5th of May 2014 and I joined as an Intern of technology
with thirteen other trainees from our batch. After we signed the agreement of training with a
briefing on the contract and the rule and regulations we have to comply within the company, our
internship commenced with a mandatory induction program for all new employees. We were
engaged in this orientation program with several other newly joined employees. This was
conducted by Training and development division of Virtusa and it ensured us a smooth transition
to the company culture and its values.
We had an induction session where we gained a thorough understanding about company, its
divisions, hierarchy, and company culture. Then we did self leaning and was engaged in sessions
and completed examinations which were considered as mandatory for a newbie. And those
Examinations and self learning helped us to gain knowledge on company policies and ethics
company adhere to considering Health and Safety , intellectual property. Intellectual Property
which covered the Virtusa intellectual property process, software licensing, intellectual property
violation threats, copy right policies, patents and the method of including the copyright notes in
the code. We self studied and completed the Information Security certification. Under this we
learned about the information, information security assets, threats and vulnerabilities related to
the internal security. Then it was the GIP certification. Global Innovation process (GIP) is a light
weight software engineering process which combines the best practices of RUP, Agile, CMMI
and years of training undertaken by Virtusa. With the completion of the GIP certification all the
mandatory certifications were completed. I could complete all certifications and exams at first
attempt successfully after gaining required knowledge.
15
We participated for a Human resource session which included the history of Virtusa on how it
was established and currently where the ATC are established and the PIRL values which are
Pursuit of excellence, integrity, respect and leadership. For the resource management session we
were briefed about how the resource allocation process works and how the resources are
managed within the company. And also we were taught how to access the Velocity Human
Resource Management Service tool (VHRMS).This allowed us to access the training materials
and also about how to apply for leave and view our attendance details. And we were given
guidance on other Virtusa internal applications of V+, Vingo , Vtube and Yammer.
2.2 GTO ERA- Insight
The project I was allocated for my six month internship period was ERA- Insight. It is a GTO
(Global Technology Office ) project of Virtusa. GTO is the place where most of Research and
development work of virtusa is taking place.
2.2.1 Introduction.
ERA- Insight : Improving Effectiveness of the Software Delivery Organization
Poor code quality and low developer productivity are some of the critical challenges plaguing
today's CTOs as they manage software development initiatives. While the need to improve
16
software quality is right on top of IT managers' agendas, most face challenges in identifying
specific quality issues. Another key concern is the predictability of outsourced software delivery.
Virtusa's long association with Independent Software Vendors has given us unique insights into
delivering high-quality software using governance tools to incent and manage improvements in
code quality, reuse and productivity.
Virtusa's proprietary ERA Insight tool:
 Comprehensive code quality and reuse governance solution.
 Assists clients in monitoring enterprise-wide software quality and reuse across code bases
and institutes remediation plans to improve development efficiencies.
 Provides dashboard visibility on a variety of code quality and reuse metrics across code
bases in the organization
 Provides drill-down across multiple parameters such as code bases and technologies into
specific details of each metric allowing root cause analysis of code quality issues
 Lowers overall cost of application development and maintenance
 Improves code efficiency
 Enhances employee productivity through systemic improvements in code quality
 Key features include:
o Extensive dashboard and drill-down capabilities
o Wide variety of code metrics
o Govern reuse
o Wide technology support
o Manages code quality defects
o Powerful change code analysis
o Geared for enterprise usage
 Service offerings include:
o ERA Insight managed service
o Code quality governance using ERA Insight
o Snapshot code assessments using ERA Insight
17
This project is headed by Mr. Padman Reginold and tech lead is Mr. Raj Azhar Ali. And I was
allocated to this team with three other colleagues of my batch , Nadeera Kodithuwakku, Dilani
Alwis and Iresh Thilakarathne.
2.2.2. PostgreSQL Dataloading
The first task I was allocated was PostgreSQL dataloading and it was an individual task. It was
supposed to migrate existing dataloading process with MsSQL to PostgreSQL. PostgreSQL,
often simply "Postgres", is an object-relational database management system (ORDBMS) with
an emphasis on extensibility and standards-compliance. As a database server, its primary
function is to store data, securely and supporting best practices, and retrieve it later, as requested
by other software applications, be it those on the same computer or those running on another
computer across a network (including the Internet). It can handle workloads ranging from small
single-machine applications to large Internet-facing applications with many concurrent users.
PostgreSQL implements the majority of the SQL:2011 standard and is ACID-compliant
and transactional (including most DDL statements) avoiding locking issues using multiversion
concurrency control (MVCC), provides immunity to dirty reads and full serializability. Postgres
handles complex SQL queries using many indexing methods that are not available in other
databases and has updateable views and materialized views, triggers, foreign keys and supports
functions and stored procedures. And it supports cross platform development as well.
So the motivation behind migration was having advanced free open source DBMS that could be
replaced with MsSQL server which is currently used by ERA-Insight. ERA-Insight being a
proprietary product, migration could help to reduce their production cost and maintenance cost.
18
Most of the features provided by Postgres are much similar to MsSQL. But still there were
several remarkable differences. So to startoff I had to study on postgreSQL and as well as on
prevailing Database and Dataloading procedure.
My Reporting Manager assigned was Mr. Eranda Lakshan Karannagoda and he was guiding me
and supervising throughout this process. He gave me a descriptive knowledge transfer session on
current dataloading process of ERA-Insight. This process was initiated by a intern before me and
he/she had done the table schemas with PostgreSQL. Therefore I took the backup of that
database restored in local postgres server and started referring.
Also I had to setup the environment with Apache tomcat configuration. And also built bot ,
submission processors and web services with ant build tool.
2.2.2.1 Insight bot
Insight bot is an automated task handler used in dataloading process. It comprises ow its own
database of H2 database. Insight bot will be doing set of tasks assigned. After the submission
processor initiate the dataloading process, Insight bot copy the contents already in the database
into csv(comma separated files). This was done by export_prod_snapshot_query_out bat files. I
had to convert these bat files to support postgres.
Example:
REM Database properties (manually set before deploy)
cmd.exe /c chcp 1252
SET PGHOST=localhost
SET PGDATABASE=InsightDB
SET PGUSER=postgres
SET PGPASSWORD=***********
REM Get first command line argument as ERA_Module_Id
SET ERA_Module_Id=%1
REM Get second command line argument as OUTDIR
SET MODULE_SPECIFIC_DIR=%2
SET OUTDIR=%MODULE_SPECIFIC_DIR%ProdSnapShot
19
MKDIR %OUTDIR%
echo "outdir show!"
echo %OUTDIR%
SET TEMP_CSV_FILE=%OUTDIR%temp.csv
SET CSV_FILE=%OUTDIR%A1.csv
ECHO.
ECHO Creating %CSV_FILE%...
ECHO A1_Id^|External_Id^|Name > %CSV_FILE%
psql -h %PGHOST% -U %PGUSER% -d %PGDATABASE% -c "COPY (SELECT
A1_Id,External_Id,Name FROM A1 WHERE A1.A1_Id IN (SELECT
Code_Unit.A1_Id FROM Code_Unit WHERE Code_Unit.ERA_Module_Id =
%ERA_Module_Id%)) to '%TEMP_CSV_FILE%' WITH DELIMITER '|' "
Likewise I converted script of export_prod_row_count bat files and completed initial process of
dataloading with Insight bot within few weeks.
2.2.2.2 H2 Database
Then I worked on H2 database in Insight bot. This has prod tables and feed tables created by
insight bot processing. Now in the migration process I had to convert these H2 database table
schemas and dataloading scripts and mappers to suit postgres.
H2 is a relational database management system written in Java. It can be embedded in Java
applications or run in the client-server mode. The disk footprint (size of the jar file) is about 1.5
MB. It is possible to create both in-memory tables, as well as disk-based tables. Tables can be
persistent or temporary. Index types are hash table and tree for in-memory tables, and b-tree for
disk-based tables. All data manipulation operations are transactional. Table level locking
and multiversion concurrency control are implemented. The 2-phase commit protocol is
supported as well, but no standard API for distributed transactions is implemented.
Feed tables contain the data of new record from set of reports generated by Analayzer. And the
prod tables contain the existing data table details in database.
20
Figure: H2 database with feed and prod tables
2.2.2.3 Submission Processor
Submission processor is playing a vital role in dataloading process. After the prod tables and
delta tables are created, Submission processor creates delta csvs of the tables. I created
21
load_delta_csv.sql and delta_load.sql files for submission processor to create delta and load delta
into temp tables in Insight database.
Example: Create A1 delta tables.
-- Insert A1
COPY z_a1_ins
FROM '#DELTA_CSV_LOCATION#/DELTA_A1_INS.csv'
DELIMITER '|'
CSV HEADER;
-- Trim the exteranl ids
UPDATE z_a1_ins
SET external_id = LTRIM(RTRIM(external_id));
UPDATE z_a1_ins
SET hash =encode(digest(z_a1_ins.external_id,'sha1'),'hex')::bytea;
After the scripts and configurations was done successfully dataloading process changed its status
to 155. Which means it has completed stage 1 in dataloading process.
2.2.2.4 PostgreSQL functions.
Then I was required to convert set of MsSQL stored procedures which were used in dataloading
procedure to postgres. In postgres stored procedures are replaced by postgres functions. I studied
on the differences and rewrote all scripts in Pgplsql which is the SQL procedural language used
in postgres functions.
Some basic differences are:
In MSSQL, a stored procedure is a pre-compiled set of sql commands.
A stored procedure:
- can have many input and output paramters
- can be used to modify database tables/structures/data
- are not normally used inside insert/update/delete/select statements
22
User defined functions in postgres come in several flavors. Depending on the type of function
written, functions:
- can have multiple input parameters, but only return a single value (i.e. string concatenation)
- can accept a set as an input, return a single value (i.e. FindLargestPig(ListOfPigs) )
- return a table (i.e. select * from ExplodeString("this is a list of words") )
- can be used in select/insert/update/delete statements
- CANNOT be used to modify database tables/structures/data
Accordingly I wrote the scripts of Summarize_Display_Data_Master_Module,
Summarize_Display_Data_Module,Summarize_Defect_Display_Data,Update_Project_Jobs_Stat
us,Summarize_Display_Custom_Project_Dev_metrics,re_populate_snapshot_churn_data_for_er
a_module, Truncate_temp_tables_and_audit_actions etc.
2.2.2.5 MyBatis Mappers for postgres
MyBatis is a first class persistence framework with support for custom SQL, stored procedures
and advanced mappings. MyBatis eliminates almost all of the JDBC code and manual setting of
parameters and retrieval of results. MyBatis can use simple XML or Annotations for
configuration and map primitives, Map interfaces and Java POJOs (Plain Old Java Objects) to
database records.
I had to write these Mybatis mappers to support newly written postgres functions.
The Mapper XML files have only a few first class elements (in the order that they should be
defined):
 cache – Configuration of the cache for a given namespace.
 cache-ref – Reference to a cache configuration from another namespace.
 resultMap – The most complicated and powerful element that describes how to load your
objects from the database result sets.
 sql – A reusable chunk of SQL that can be referenced by other statements.
 insert – A mapped INSERT statement.
 update – A mapped UPDATE statement.
 delete – A mapped DELETE statement.
 select – A mapped SELECT statement.
23
Example: Job_Queue_Updater_Mapper.xml for Update_Project_Jobs_Status.sql function.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace="com.virtusa.gto.report.mapper.JobQueueUpdaterMapper">
<update id="updateProjectJobStatus" parameterType="map">
UPDATE
project_level_job SET status = #{status},
statusmessage = (SELECT job_status.job_status FROM job_status
WHERE job_status.job_status_id = #{status}::Integer)
WHERE Id = #{jobId};
</update>
<update id="updateProcessingStartTime" parameterType="map">
UPDATE
project_level_job SET processingstarttime = now()
WHERE id = #{projectJobId};
</update>
<update id="updateProcessingEndTime" parameterType="map">
UPDATE
project_level_job SET processingendtime = now()
WHERE Id = #{projectJobId};
</update>
<update id="callUpdateProjectJobsStatus" parameterType='Map'
statementType="CALLABLE">
{ CALL
update_project_jobs_status(
#{value,
mode=IN,jdbcType=INTEGER})}
</update>
</mapper>
2.2.2.6 Errors and Exception Handling
Throughout the process of dataloading migration I came across many errors and exceptions in
the process. I had to read out the process terminal and identify the exception and handle it and
eliminate errors accordingly. Some of the errors were Numeric value out of range, Column count
24
does not match, Data conversion error handling ; converting ‘t’ , defect_Id not present in the
table defect, dependencies unmet errors.
2.2.2.7 Conclusion
I was able to complete my task of migrate the dataloading process to new Insight Database of
postgres successfully for any given set of reports from analyzer. I could perform the task within
given time period under supervision and advice from my Reporting Manager Mr. Karannagoda.
It was a good experience for me to seek the depths of database technologies and use them
efficiently. And also I did the testing for use case scenarios before checkin the scripts and the
backup of new database to Team foundation Server used by ERA-Insight.
2.2.3 Review Board- Code Review Tool for ERA-Insight
The second task assigned was a requirement came from Senior Architect Mr. Padman Reginold
on a code reviewing tool for ERA-Insight. As ERA-Insight is a tool concerning adhering into
best practices in coding it was required to have a code review tool facilitating the current manual
process effectively. Therefore first I was required to study on available open source solutions and
come up with a feasible, efficient solution to deploy. Integrate and develop to customize.
After studying on several available solutions and discussions with teach lead and other team
mates Review Board was the solution suggested. Thereafter I was required to do a proof of
concept (POC) on Review Board.
Review Board is a powerful web-based code review tool that offers developers an easy way to
handle code reviews licensed under the MIT license. It scales well from small projects to large
companies and offers a variety of tools to take much of the stress and time out of the code review
process. Review Board is written in the Python programming language and makes use of the
Django web framework. For this I started developing on Ubuntu server since Review Board did
not support Windows for development.
25
2.2.3.1 Review Board Deployment
Setting up a Server
I chose to use Apache2 with mod_python, as advised by the Review Board team. Apparently
there are some issues with running it as fastcgi. To get an apache install capable of serving
python pages.
sudo apt-get install apache2
sudo apt-get install libapache2-mod-python
sudo a2enmod python
Setting up storage
MySQL and the python bindings for MySQL
sudo apt-get install mysql-server
sudo apt-get install python-mysqldb
For faster responses, we are going to install memcache and its python bindings
sudo apt-get install memcached
sudo apt-get install memcached-dev
sudo apt-get install python-memcache
create a database and a database user for Review Board
mysql –u root -p
mysql> create database reviewboard;
mysql> create user 'rb'@'localhost' identified by 'rb_password';
mysql> grant all on reviewboard.* to 'rb'@'localhost';
26
Setting up Subversion and Git
sudo apt-get install patch
sudo apt-get install subversion
sudo apt-get install python-svn
sudo apt-get install python-git
Getting Review Board
Reviewboard is installed using easy_install. For that have to install setup tools
sudo apt-get install python-setuptools
sudo easy_install reviewboard
Create Site
Reviewboard site is created for the deployment
sudo rb-site install /var/www/reviewboard
Configuring your site
First need to allow the apache server to manage uploads directory with:
sudo chown -R www-data /var/www/reviewboard/htdocs/media/uploaded
Copy the site configuration into apache and enable
sudo cp /var/www/reviewboard/conf/apache-modpython.conf
/etc/apache2/sites-available/reviewboard
sudo a2ensite reviewboard
sudo /etc/init.d/apache2 restart
It's time to fire up the browser and head to http://server_address/rb and log in with the
administrator credentials provided in site deployment.
27
2.2.3.2 Git repository Setup
The source control manager used by ERA-Insight is Team Foundation Server. So I faced the
problem of integrating Review Board since it did not support TFS. I discussed the issue and then
we came up with the solution of setting up a Git repository as a long term requirement of ERA-
Insight moving to Git.
Accordingly I setup a git repository which servers over Git:// protocol in ubuntu server using
gitweb , git-core and apache2. And after that anyone could successfully access this repository
locally using a git client.
Figure: Git repository access from a local machine and clone a project from git server
2.2.3.3 Git-TF
Then I used Git-TF bridge to access source control of TFS for git.
Git-TF is a set of cross-platform, command line tools that facilitate sharing of changes between
Microsoft Team Foundation Server, Visual Studio Online and Git. Latest release: Git-TF 2.0.3.1
Download and Extract the contents of git-tf-2.0.3.20131219.zip to a folder on local machine, i.e.
Add the path where the extracted Git-TF (i.e. C:git-tf) to PATH environment variable.
C:git-tf on Windows, or /user/git-tf on Mac/Linux.
28
Add the path where java.exe is installed (i.e. C:Program Files (x86)Javajre7bin) to PATH
environment variable.
Check the commands in git repository
$ git tf configure http://myserver:8080/tfs/mycollection
$/TeamProjectA/Main
$ git tf pull --rebase
$ git checkout master
$ git commit -a -m "merge commit"
$ git tf checkin
$ git push
To cache username and password for the repository, can set these in your .git/config:
$ git config git-tf.server.username myusername
$ git config git-tf.server.password mypassword
29
Here is the .git/config file after configuration
Git tf pull Instance – fetching changes from TFS repository
Git tf checking instance – checking changes done in git repository to TFS repository
Figure: Git-tf process model
30
2.2.2.4 RB Tools
After successful integration I used RB tools to create diffs and review requests.
RBTools is a set of client tools to use with Review Board.
The recommended command-line interface is the rbt tool. This tool runs on Windows, Linux,
and MacOS X, and allows executing a number of useful sub-commands. rbt has the following
usage:
$ rbt [--version] <command> [options] [<args>]
Installing RBTools
Once Python and Setuptools are installed, you can install RBTools just by typing:
$ easy_install -U RBTools
There are many ways to configure rbt in order to associate a Review Board server with a
repository. The ideal setup is to configure a repository to point to a Review Board server, so that
users can use rbt out of the box, but there are other methods available.
Repository Configuration
All repository types support a .reviewboardrc file, which is the recommended way to configure
your repository. Through here, you can specify the URL to your Review Board server, the
repository name, and provide some helpful defaults.
$ rbt setup-repo
Enter the Review Board server URL: http://reviewboard.domain.com
Username:
Password:
REVIEWBOARD_URL = "http://reviewboard.domain.com "
31
REPOSITORY = "Name"
$ git add .reviewboardrc
$ git commit -m "review board configuration file" .reviewboardrc
By default, RBTools will try to determine the repository path and pass that to Review Board.
This won’t always work in all setups, particularly when different people are checking out the
repository with different URLs.
You can use the REPOSITORY setting to specify the name of the repository to use.
Here is the created .reviewboardrc file
Git Properties
Repository information can be set in a reviewboard.url property on the Git tree. Users may need
to do this themselves on their own Git tree.
To set the property on a Git tree, type:
$ git config reviewboard.url http://reviewboard.example.com
Custom User Configuration
You can provide your own defaults for RBTools by creating a .reviewboardrc file in your HOME
directory (usually /home/username on Linux)
You might use this to automatically open your browser when posting a review request (by setting
OPEN_BROWSER = True), or to disable your HTTP proxy (ENABLE_PROXY = False), for
example.
32
Use RBTools
Post
rbt post simplifies both creating and updating review requests. It can look at your source
directory, generate a diff, and upload it to a new or existing review request on an associated
Review Board server.
$ rbt post [options] [revisions]
Post all uncommitted changes in working copy and open new review request:
$ rbt post HEAD
Post diff file and open new review request:
$rbt post --diff-filename=testdiff.diff
Create diff upon revision range and open new review request:
$ rbt post r1 r2 --svn-show-copies-as-adds=n
Post all uncommited changes in working copy and exchange diff in review request #3:
$ rbt post -r 3
Create diff of specific files and open new review request:
$ rbt post file1.php file2.php
This is how particular review request has arrived on Review Board
33
Figure : Creating a review request on a diff
2.2.2.5 Automating rbt post
I could do the POC successfully and then there came up several requirements to enhance the
code review process of Review Board. Main requirement was to automate the process of creating
diffs and publishing review requests without the user being involved in the process doing
commands on the terminal. So I researched and automated the rbt post on user’s behalf using
linux scripts, git hooks and rbt commands.
This works through a combination of a special Review Board user and the --submit-as option.
$ rbt post --username=SPECIAL_USER --password=PASSWORD --submit-
as=ANOTHER_USER
Sample git hook for rbt post automate
#!/bin/sh
echo "post-commit started"
#rbt post HEAD
echo "post-commit finished"
So once commit is done it automatically starts creating a review request for particular commit.
34
A number of options to rbt post can be set by default in .reviewboardrc. These can go either in
the repository’s or the user’s .reviewboardrc file.
The options include:
BRANCH (--branch)
DEBUG (-d)
ENABLE_PROXY (--disable-proxy)
GUESS_DESCRIPTION (--guess-description)
GUESS_FIELDS (-g)
GUESS_SUMMARY (--guess-summary)
MARKDOWN (--markdown)
OPEN_BROWSER (-o)
P4_CLIENT (--p4-client)
P4_PASSWD (--p4-passwd)
P4_PORT (--p4-port)
PARENT_BRANCH (--parent)
PASSWORD (--password)
PUBLISH (-p)
REPOSITORY_TYPE (--repository-type)
SUBMIT_AS (--submit-as)
TARGET_GROUPS (--target-groups)
TARGET_PEOPLE (--target-people)
TRACKING_BRANCH (--tracking-branch)
USERNAME (--username)
35
Then I created remote_repo_script.sh and submit-post-review.sh and post-receive-hook together
for more automating both git tf pull and rbt post processes together.
2.2.2.6 Use post-review
Post review is another solution I researched on for rbt post process. It is also a supportive tool for
creating diffs and review request. Post-review is a command line tool for Windows, Linux and
MacOS X that simplifies both creating and updating review requests. It can look at your source
directory, generate a diff, and upload it to a new or existing review request on an associated
Review Board server. This is the stable previous version of RBtools and still can be used based
on requirement of the purpose.
Install post-review
$ apt-get install python-setuptools
$ sudo easy_install RBTools
The easiest way to make sure your pointing at the right Reviewboard instance is the
.reviewboardrc file in your home directory. You only need to add one line to that file, which is:
REVIEWBOARD_URL = "https://path.to.your.instance"
If you are working with multiple instances that map to different repos, you can set the
Reviewboard instance for the specific repo as well:
git config reviewboard.url https://path.to.your.instance
Reviewing a Branch
Once your branch is ready to be merged back into your project, you want to get it reviewed. You
can send a review equivalent to “this branch diffed against master” like so:
post-review --guess-summary --guess-description
36
Reviewing one commit
Instance when only having one commit to review. In theory this should probably be done on a
bugfix branch. There are other good use cases for only reviewing the latest commit as well. It’s
done like so:
post-review --guess-summary --guess-description --parent=HEAD^
Reviewing arbitrary number of commits
It’s also possible to review any number of previous commits. It looks a lot like the previous
command:
post-review -o --guess-summary --guess-description --parent=HEAD~4 #To
review last 4 commits.
37
Figure : Diff Viewer
2.2.2.7 Active Directory
Then I configured Active Directory to Review Board to enable users to login with their existing
credentials used at Virtusa.
Active Directory (AD) is a directory service that Microsoft developed for Windows
domain networks and is included in most Windows Server operating systems as a set of
processes and services.
38
An AD domain controller authenticates and authorizes all users and computers in a Windows
domain type network assigning and enforcing security policies for all computers and installing or
updating software. For example, when a user logs into a computer that is part of a Windows
domain, Active Directory checks the submitted password and determines whether the user is
a system administrator or normal user.
Active Directory makes use of Lightweight Directory Access Protocol (LDAP) versions 2 and 3,
Microsoft's version of Kerberos, and DNS.
2.2.2.7 Conclusion
I did most of the enhancements as requested in the last few weeks of my internship and then
created user manuals and documentations for setup and configuration for future use by the team.
I did two demonstrations on the Review Board procedure and reviewing mechanism to team
members and to the person who was assigned the task to carry forward Mr. Ishan Ambanwela.
Throughout the second task Mr. Ishan Ambanwela and Mr. Vicknesh Subramaniam helped a lot
guided me. And also several times Senio architect Mr. Padman Reginold and Tech lead Mr. Raj
Azhar Ali supervised me and checked and added requirements as required. So it was a good
experience for me to work on a open source tool, ubuntu operating systems and participate in a
product development from its requirement gathering phase. Also the opportunity I got in working
with architects and understand how they view the requirements and handle technologies was
great and priceless.
39
Chapter 03
3. Discussion and Conclusion
3.1 Training Experience
3.1.1 Technical Experience
The industrial training that I went through within the last few months brought in new
technologies and expanded my knowledge in the IT industry. I got the opportunity to put known
concepts in to practice in real projects and to learn new concepts through applying them. Meeting
with deadlines, keeping the code quality, trying various approaches to determine the best method
and finally completing the project with success were experiences that gained throughout the
training period.
Also during the training I learnt that it is always good to try new things like learn new
technologies and languages rather than only sticking to the things I know best. Also even if you
think your good in something there is always something new that you haven’t learnt
before.During these months I used technologies pgplsql, Python, Django web framework, Linux
shell scripting which I was not familiar before. Also I got the opportunity of self studying and
apply the technologies appropriately.
In addition, to the technologies I worked with since I had to work in the Virtusa Operating
system which is a Ubuntu based Linux operating system I got the exposure to the open source
environment as well. And also I got the exposure to SDLC , agile methodologies with tasks
assigned for me. I also got the opportunity to learn new technologies through Virtusa tech talks,
meetups and knowledge sharing sessions we had in our team weekly. Also I got the opportunity
of learn and being adhere to best coding practices since our product ERA-Insight was
emphasizing on code quality and being ERA-compliant all the time.
40
3.1.2Non-Technical Experience
Blending with the Corporate Culture
The friendly and warm environment received from the Virtusa and our team is unbelievable.
Despite being an intern we could enjoy almost all the facilities and benefits a normal employee
enjoys. In the training period I could gain the real life experience of software engineer as
responsibilities were assigned. And everyone in the team treated us with no difference and we
could work with them hand in hand, discuss issues, give suggestions anytime. That was a really
good experience for us to step in to corporate world with much confidence.
I got the opportunity to join the organizing committee of Virtusa Big data meetup and contribute
to make it a success. We joined the ERA-Insight cricket fiesta and spent a whole day with much
fun and joy with the team mates. In team we were working with such a team spirit and
everybody treated everyone with much respect and care. So that working was not stressful and I
enjoyed my work and I think that is the reason I could complete my tasks successfully within
time limits. During the training periods we were lucky to participate in treats organized by our
team members for celebrating their birthdays, promotions. We were fortunate to witness the
moment of ERA-Insight being awarded at NSBQA 2014 and to share the moments with joy. We
are proud to have being a part of a award winning team and have contributed a award deserved
product.
Training and Knowledge Enhancement
Software engineering is a field which is so dynamic and new technologies are coming to the
industry. So especially a IT person should be able to gain the up-to-date knowledge.
Virtusa organizes comprehensive set of training sessions, tech talks regarding new technologies.
Also we had knowledge sharing sessions in our team weekly so that members can share what
they know and what they excellence in to others.
41
Presentations
We had ERA-Insight presentation sessions in team for interns to improve their soft skills. In my
turn I did a presentation on “Sustainable Tourism” and team commented to good things I showed
in my presentation skills and also suggested me several areas where I should consider and
improve on.
Also I had to do presentations and demonstration on the project background knowledge that I
researched on and after that POC. It was a good opportunity to improve my soft skills as well as
knowledge. It also improved my creative skills when arranging the presentations.
Also we were engaged in a full day session of presentation skills building workshop done bt
Training and Development division where I got the opportunity to improve my presentation
skills more with their guidance and suggestions.
Interacting with experts
Within the training period I got the interaction of many respected expertise who are leaders of
Virtusa who steer it towards success. The HR team gave us this opportunity through monthly
meetings with leaders at Virtusa. We were really inspired on their individual stories of success
and as well as success story of Virtusa.
The friendly nature of them while help us in technical matters were amazing to be considered. I
got the guidance of well experienced technical people such who are with the designation of
senior technology consultants, technology consultants, senior engineers, software engineers and
associate software engineers.
Roles played by University, NAITA and Virtusa
When the overall training program is considered the National Apprentice and Industrial Training
Authority (NAITA) and Training Division of the University of Moratuwa have done a great job
to make this training a successful one. The guidance and help they provided throughout the
42
placement is remarkable. It was a honor and great pleasure for us the presence of Dr.
Lochandaka Ranathunga and Ms. Ashika Fernando on graduation ceremony at Virtusa. We
believe that we maintained the faculty standards and showcased values at our working place, So
that the recognition we had will thrive for our next junior batches as well.
3.2 Conclusion
During my training period I have got a good technical knowledge regarding Information
Technology. The concepts, theories learned in university were used in real life projects. And
most importantly I learnt how to pickup things fast and practice. I understood how software
engineering process and project management happen in the industry. I got knowledge regarding
many non-technical matters such as how corporate culture works. I could improve my
interpersonal and soft skills as well while being involved in the activities, doing presentations.
During the 26 weeks in the industry I am very satisfied with the overall training I went through.
The experience I gained throughout this period has been a great time period that has brought
much value to my IT career

More Related Content

What's hot

Industrial training report
Industrial training reportIndustrial training report
Industrial training reportChanaka Sudheera
 
Training Report WSO2 internship
Training Report  WSO2 internshipTraining Report  WSO2 internship
Training Report WSO2 internshipKeet Sugathadasa
 
Industrial training report
Industrial training reportIndustrial training report
Industrial training reportReshmi R
 
Internship Final Report
Internship Final ReportInternship Final Report
Internship Final ReportAnisa Yahdi
 
WSO2 Internship Report
WSO2 Internship ReportWSO2 Internship Report
WSO2 Internship ReportUjitha Iroshan
 
Safia haque
Safia haqueSafia haque
Safia haque0172322
 
Internship project proposal report
Internship project proposal reportInternship project proposal report
Internship project proposal reportJAI KISHAN CHAURASIA
 
Semester 7 - Industrial Training (Final Presentation)
Semester 7 - Industrial Training (Final Presentation) Semester 7 - Industrial Training (Final Presentation)
Semester 7 - Industrial Training (Final Presentation) Nur Aisyah Khor
 
My Internship Document part1
My Internship Document part1My Internship Document part1
My Internship Document part1Shashi_S_S
 

What's hot (20)

Industrial training report
Industrial training reportIndustrial training report
Industrial training report
 
Training Report WSO2 internship
Training Report  WSO2 internshipTraining Report  WSO2 internship
Training Report WSO2 internship
 
Industrial training report
Industrial training reportIndustrial training report
Industrial training report
 
internship report
internship reportinternship report
internship report
 
Internship Final Report
Internship Final ReportInternship Final Report
Internship Final Report
 
Internship Report
Internship Report Internship Report
Internship Report
 
latihan industri
latihan industrilatihan industri
latihan industri
 
Internship Report
Internship ReportInternship Report
Internship Report
 
WSO2 Internship Report
WSO2 Internship ReportWSO2 Internship Report
WSO2 Internship Report
 
120463N
120463N120463N
120463N
 
Final Report v3
Final Report v3Final Report v3
Final Report v3
 
Internship report
Internship reportInternship report
Internship report
 
NATPET Report
NATPET ReportNATPET Report
NATPET Report
 
Safia haque
Safia haqueSafia haque
Safia haque
 
Internship project proposal report
Internship project proposal reportInternship project proposal report
Internship project proposal report
 
Semester 7 - Industrial Training (Final Presentation)
Semester 7 - Industrial Training (Final Presentation) Semester 7 - Industrial Training (Final Presentation)
Semester 7 - Industrial Training (Final Presentation)
 
Industrial training report
Industrial training report Industrial training report
Industrial training report
 
Internship Wso2
Internship Wso2Internship Wso2
Internship Wso2
 
Experience at WSO2 as an Intern
Experience at WSO2 as an InternExperience at WSO2 as an Intern
Experience at WSO2 as an Intern
 
My Internship Document part1
My Internship Document part1My Internship Document part1
My Internship Document part1
 

Viewers also liked

INDUSTRIAL TRAINING REPORT BY ShRiDhAR KaDaM
INDUSTRIAL TRAINING REPORT BY ShRiDhAR KaDaMINDUSTRIAL TRAINING REPORT BY ShRiDhAR KaDaM
INDUSTRIAL TRAINING REPORT BY ShRiDhAR KaDaMshridharthecyberdude
 
Six Month Industrial Training Report at Milestone Gears Ltd
Six Month Industrial Training Report  at Milestone Gears LtdSix Month Industrial Training Report  at Milestone Gears Ltd
Six Month Industrial Training Report at Milestone Gears Ltdyogesh thakur
 
Industrial Training Report: Ozone pharmaceuticals
Industrial Training Report: Ozone pharmaceuticalsIndustrial Training Report: Ozone pharmaceuticals
Industrial Training Report: Ozone pharmaceuticalsDibrugarh University
 
Bhel summer training (industrial training) report
Bhel summer training (industrial training) reportBhel summer training (industrial training) report
Bhel summer training (industrial training) reportRatnesh Ahirwar
 
Industrial training Report
Industrial training ReportIndustrial training Report
Industrial training ReportDavid James
 
inplant training report
inplant training reportinplant training report
inplant training reportanandasagar
 
Bhel haridwar vocational training report block 1
Bhel haridwar vocational training report block 1Bhel haridwar vocational training report block 1
Bhel haridwar vocational training report block 1khemraj298
 
B.H.E.L., Haridwar Summer Training Report
B.H.E.L., Haridwar Summer Training ReportB.H.E.L., Haridwar Summer Training Report
B.H.E.L., Haridwar Summer Training ReportAbhishek Kumar
 
Gorakhpur mechanical workshop summer training report
Gorakhpur mechanical workshop summer training reportGorakhpur mechanical workshop summer training report
Gorakhpur mechanical workshop summer training reportGALGOTIAS UNIVERSITY
 
Practical training report
Practical training reportPractical training report
Practical training reportNicolai Sidek
 
Summer internship report L&T
Summer internship report L&TSummer internship report L&T
Summer internship report L&TUmed Paliwal
 
Industrial training report
Industrial training reportIndustrial training report
Industrial training reportanjali29lmh
 
industrial training report
industrial training reportindustrial training report
industrial training reportdavid minja
 
Anilbhel report
Anilbhel  reportAnilbhel  report
Anilbhel reportAnil Gupta
 
Swep report
Swep reportSwep report
Swep reportoz4don
 
Internship Presentation - Software Testing and Content Creator
Internship Presentation - Software Testing and Content CreatorInternship Presentation - Software Testing and Content Creator
Internship Presentation - Software Testing and Content CreatorWardah AK
 

Viewers also liked (20)

INDUSTRIAL TRAINING REPORT BY ShRiDhAR KaDaM
INDUSTRIAL TRAINING REPORT BY ShRiDhAR KaDaMINDUSTRIAL TRAINING REPORT BY ShRiDhAR KaDaM
INDUSTRIAL TRAINING REPORT BY ShRiDhAR KaDaM
 
Industrial Training Report-1
Industrial Training Report-1Industrial Training Report-1
Industrial Training Report-1
 
Six Month Industrial Training Report at Milestone Gears Ltd
Six Month Industrial Training Report  at Milestone Gears LtdSix Month Industrial Training Report  at Milestone Gears Ltd
Six Month Industrial Training Report at Milestone Gears Ltd
 
Industrial Training Report: Ozone pharmaceuticals
Industrial Training Report: Ozone pharmaceuticalsIndustrial Training Report: Ozone pharmaceuticals
Industrial Training Report: Ozone pharmaceuticals
 
Bhel summer training (industrial training) report
Bhel summer training (industrial training) reportBhel summer training (industrial training) report
Bhel summer training (industrial training) report
 
Industrial training Report
Industrial training ReportIndustrial training Report
Industrial training Report
 
inplant training report
inplant training reportinplant training report
inplant training report
 
Bhel haridwar vocational training report block 1
Bhel haridwar vocational training report block 1Bhel haridwar vocational training report block 1
Bhel haridwar vocational training report block 1
 
B.H.E.L., Haridwar Summer Training Report
B.H.E.L., Haridwar Summer Training ReportB.H.E.L., Haridwar Summer Training Report
B.H.E.L., Haridwar Summer Training Report
 
Gorakhpur mechanical workshop summer training report
Gorakhpur mechanical workshop summer training reportGorakhpur mechanical workshop summer training report
Gorakhpur mechanical workshop summer training report
 
Practical training report
Practical training reportPractical training report
Practical training report
 
Summer internship report L&T
Summer internship report L&TSummer internship report L&T
Summer internship report L&T
 
Industrial training report
Industrial training reportIndustrial training report
Industrial training report
 
INDUSTRIAL TRAINING REPORT
INDUSTRIAL TRAINING REPORTINDUSTRIAL TRAINING REPORT
INDUSTRIAL TRAINING REPORT
 
industrial training report
industrial training reportindustrial training report
industrial training report
 
Training Report
Training ReportTraining Report
Training Report
 
KOHequity SIWES report
KOHequity SIWES reportKOHequity SIWES report
KOHequity SIWES report
 
Anilbhel report
Anilbhel  reportAnilbhel  report
Anilbhel report
 
Swep report
Swep reportSwep report
Swep report
 
Internship Presentation - Software Testing and Content Creator
Internship Presentation - Software Testing and Content CreatorInternship Presentation - Software Testing and Content Creator
Internship Presentation - Software Testing and Content Creator
 

Similar to Industrial Training report

An Introduction To MentorSquare Advisors
An Introduction To MentorSquare AdvisorsAn Introduction To MentorSquare Advisors
An Introduction To MentorSquare Advisorsnayak90
 
Nispana company profile 2018
Nispana company profile 2018Nispana company profile 2018
Nispana company profile 2018Mithun Mohan
 
The Most Influential Leaders in Wealth Management, 2023.pdf
The Most Influential Leaders in Wealth Management, 2023.pdfThe Most Influential Leaders in Wealth Management, 2023.pdf
The Most Influential Leaders in Wealth Management, 2023.pdfInsightsSuccess4
 
Intro To MentorSquare Advisors
Intro To MentorSquare AdvisorsIntro To MentorSquare Advisors
Intro To MentorSquare AdvisorsRavi_G_Narayan
 
Intro To MentorSquare Advisors
Intro To MentorSquare AdvisorsIntro To MentorSquare Advisors
Intro To MentorSquare Advisorsnayak90
 
dta Company Overview 2015
dta Company Overview 2015dta Company Overview 2015
dta Company Overview 2015Malcolm Dawes
 
We Tattva - May 2016
We Tattva - May 2016We Tattva - May 2016
We Tattva - May 2016Prem Anand
 
The Dynamic Business Personalities Changing the Business World.pdf
The Dynamic Business Personalities Changing the Business World.pdfThe Dynamic Business Personalities Changing the Business World.pdf
The Dynamic Business Personalities Changing the Business World.pdfCIOLOOKIndia
 
Itka nmissioncommittees12910
Itka nmissioncommittees12910Itka nmissioncommittees12910
Itka nmissioncommittees12910Pat Maher
 
Organizational Strategies
Organizational StrategiesOrganizational Strategies
Organizational StrategiesManas Sarangi
 
7435219 narayana-murthy-infosys
7435219 narayana-murthy-infosys7435219 narayana-murthy-infosys
7435219 narayana-murthy-infosysManjusha Joshi
 
7435219 narayana-murthy-infosys
7435219 narayana-murthy-infosys7435219 narayana-murthy-infosys
7435219 narayana-murthy-infosysManjusha Joshi
 
Ross warner hr solutions
Ross warner hr solutionsRoss warner hr solutions
Ross warner hr solutionsRoss Warner
 

Similar to Industrial Training report (20)

An Introduction To MentorSquare Advisors
An Introduction To MentorSquare AdvisorsAn Introduction To MentorSquare Advisors
An Introduction To MentorSquare Advisors
 
Nispana company profile 2018
Nispana company profile 2018Nispana company profile 2018
Nispana company profile 2018
 
ARRAprofileOCTfinal
ARRAprofileOCTfinalARRAprofileOCTfinal
ARRAprofileOCTfinal
 
ARRAprofileOCTfinal
ARRAprofileOCTfinalARRAprofileOCTfinal
ARRAprofileOCTfinal
 
MAH India
MAH IndiaMAH India
MAH India
 
The Most Influential Leaders in Wealth Management, 2023.pdf
The Most Influential Leaders in Wealth Management, 2023.pdfThe Most Influential Leaders in Wealth Management, 2023.pdf
The Most Influential Leaders in Wealth Management, 2023.pdf
 
30 Jan 2016-Innoversant-Corp Profile
30 Jan 2016-Innoversant-Corp Profile30 Jan 2016-Innoversant-Corp Profile
30 Jan 2016-Innoversant-Corp Profile
 
Intro To MentorSquare Advisors
Intro To MentorSquare AdvisorsIntro To MentorSquare Advisors
Intro To MentorSquare Advisors
 
Intro To MentorSquare Advisors
Intro To MentorSquare AdvisorsIntro To MentorSquare Advisors
Intro To MentorSquare Advisors
 
dta Company Overview 2015
dta Company Overview 2015dta Company Overview 2015
dta Company Overview 2015
 
We Tattva - May 2016
We Tattva - May 2016We Tattva - May 2016
We Tattva - May 2016
 
The Dynamic Business Personalities Changing the Business World.pdf
The Dynamic Business Personalities Changing the Business World.pdfThe Dynamic Business Personalities Changing the Business World.pdf
The Dynamic Business Personalities Changing the Business World.pdf
 
wcs profile
wcs profilewcs profile
wcs profile
 
WCS Profile
WCS ProfileWCS Profile
WCS Profile
 
Itka nmissioncommittees12910
Itka nmissioncommittees12910Itka nmissioncommittees12910
Itka nmissioncommittees12910
 
Organizational Strategies
Organizational StrategiesOrganizational Strategies
Organizational Strategies
 
7435219 narayana-murthy-infosys
7435219 narayana-murthy-infosys7435219 narayana-murthy-infosys
7435219 narayana-murthy-infosys
 
7435219 narayana-murthy-infosys
7435219 narayana-murthy-infosys7435219 narayana-murthy-infosys
7435219 narayana-murthy-infosys
 
Ross warner hr solutions
Ross warner hr solutionsRoss warner hr solutions
Ross warner hr solutions
 
Welcome to Serocor
Welcome to SerocorWelcome to Serocor
Welcome to Serocor
 

Recently uploaded

Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxVishalSingh1417
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxEsquimalt MFRC
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...Poonam Aher Patil
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxCeline George
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17Celine George
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and ModificationsMJDuyan
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Pooja Bhuva
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.christianmathematics
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxmarlenawright1
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptxMaritesTamaniVerdade
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17Celine George
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxDr. Ravikiran H M Gowda
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxAmanpreet Kaur
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxPooja Bhuva
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...Nguyen Thanh Tu Collection
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentationcamerronhm
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Association for Project Management
 

Recently uploaded (20)

Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptx
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 

Industrial Training report

  • 1. 1 Chapter 01 1. Introduction to the Industry 1.1 Nature of business of the Industry My 6 month internship was carried out at Virtusa (Pvt) Ltd. Virtusa Corporation (NASDAQ: VRTU) is a global information technology (IT) services company providing IT consulting, technology and outsourcing services. Virtusa provide high-value IT services that enable their clients to enhance business performance, accelerate time-to-market, increase productivity and improve customer service through enhanced global delivery model, innovative software platforming approach and industry expertise. Virtusa has marked a leading position in the field worldwide serving Global 2000 companies and the leading software vendors in Communications & Technology, Banking & Financial Services, Insurance, Telecommunications, and Media, Information & Entertainment industries. They build and sustain application platforms for our clients that create competitive advantage. Virtusa was Founded in 1996 and headquartered in Massachusetts and have offices and technology centers throughout the United States, Europe and Asia. Virtusa has advanced technology centers in US, UK, Hungary, India and Sri Lanka and has employees around 8000. Virtusa is an industry leader with a solid track record of software solution delivery success as evidenced by highly referenceable and repeatable client base. . It is in the leadership in a wide range of IT disciplines such as software plat forming, business process management, data warehousing and business intelligence, enterprises content management, service oriented architecture and software testing. Virtusa considers people as their most valuable asset. Virtusa focus on state-of-the-art technologies and best-in-class infrastructure enable them to attract as well as retain world-class technology professionals who thrive to help their clients succeed. Virtusa’s people are acknowledged for their exceptional talent, passion, dedication, commitment, innovation and
  • 2. 2 creativity. They take great pride in providing thought leadership, building sophisticated cutting edge solutions and creating client delight. From its inception, Virtusa have developed an organizational culture based on a set of core values such as pursuit of excellence, integrity, respect and leadership (PIRL). From the training periods at Orientation period, all the employees are made to internalize those core values and diligently practicing them and it provides the key factors for team members at Virtusa. As it is mentioned in their website Virtusa, anticipate and understand their client's emerging needs and work in close partnership to make their businesses stronger, valuable, more profitable and more productive. Virtusa also offer them the capability of capturing market opportunities. They work closely with client's leadership teams in order to gain better insights for providing the best possible IT services and solutions to their business challenges. This enables Virtusa to establish extremely close partnerships that foster continuous operational improvements and better bottom-line results for their clients. 1.2 History of Virtusa Even before my internship I was inspired by success stories of Entrepreneurship and it made me read about history of Virtusa. In internship also once I got the opportunity to hear this success story from Sanjeev Palihawadana – Senior Director and Delivery Head of Virtusa. Virtusa was founded as ‘Software Solutions’ in 1997 by Kris Canekaratne and small group of people in small place. The company was later renamed as ‘Technology Providers International’ and was involved in software development. In 1998, the company opened their head office at Westborough, Massachusetts and the company was incorporated as Technology Providers Inc. in the United States. In year 2000, Technology Providers International was renamed ‘eRUNWAY Inc.’ and offered eBusiness, Internet software development and systems integration services. eRUNWAY was re-launched as ‘Virtusa Corporation’ on April 22, 2002. The name Virtusa is derived from the Latin "virtus" meaning excellence. Virtusa went public on August 3, 2007 by listing on the NASDAQ exchange. In 2009, Virtusa acquired InSource, a technology consulting company with specialization in the Insurance and Healthcare industries.
  • 3. 3 The following year, Virtusa acquired ALaS Consulting LLC, a Financial Services Consulting Firm. 1.3 Vision and Mission Virtusa Vision To be the preferred partner of leading enterprises and visionary CIO’s who aspire to lead their industries by adopting and deploying flexible technology platforms that enable their It organizations to respond to changing business requirements providing support for their enterprises’ most critical strategic requirements. Virtusa Mission Virtusa's mission was to provide next generation technology and innovation services to its clients. The quest to push the technology envelope and to be at the forefront of industry trends while working with leading product developers and enterprise customers is what enthuses and motivates Virtusans , resulting in the company's ability to attract and retain the best talent. Virtusa's exacting hiring standards ensure that Virtusans represent a select group of global high- performers with a deep and extensive knowledge of emerging technologies and business domain  To be the partner of choice for corporations in creating competitive advantage through technology excellence  To create the best conditions for professional success and quality of life for all Virtusans  To be a socially conscious and responsible corporate citizen in all countries of operations
  • 4. 4 1.4 Organizational Structure 1.4.1 Executive Officers Kris Canekeratne Chairman and Chief Executive Officer Thomas R. Holler Executive Vice President and Chief Operating Officer Roger Keith Modder President,Asia and Executive Vice President for Global Services Raj Rajgopal Executive Vice President of Business Development and Client Services Ranjan Kalia Senior Vice President, Chief Financial Officer, Treasurer and Secretary. Samir Dhir Executive Vice President, Chief Delivery Officer and Head of India Operations 1.4.1 Board of Directors  Kris Canekeratne  Izhar Armony  Robert E. Davoli  Ronald T. Maheu  William K. O’Brien  Rowland T. Moriarty  Martin Trust 1.4.2 Senior Leadership team Jim Francis Executive Vice President - Strategic Business Development John Gillis Executive Vice President - Client Services and Business Development Bob Graham Senior Vice President - Banking and Financial Services (Strategic Business Development)
  • 5. 5 Chandika Mendis Senior Vice President and Global Head of Engineering Frank Palermo Senior Vice President - Global Technical Solutions Group Harsha Kumar Senior Vice President - Outsourcing & Transformational Industry Solutions Madu Ratnayake Senior Vice President and Head of Digital Paul Tutun Senior Vice President - General Counsel and Assistant Secretary Sameet Gupte Senior Vice President and Managing Director, Europe Srinivasan Jayaraman Senior Vice President and Managing Director: Middle East and Asia Pacific Tim Wright Senior Vice President - Global Head of Business Consulting Vasan Srinivasan Senior Vice President - Banking and Financial Services,North America Zlatan Lipovaca Senior Vice President and Global Head of SAP Practice 1.5 Virtusa values Virtusa’s objective as mentioned in website is to create an environment where great people can do their best work and find the path to realize their full potential. Virtusa values form the nucleus of their corporate culture. Virtusa culture places great emphasis on teamwork, professional and personal development and quality of life. These values act as a foundation for evolving culture and are the basis of operational mode. Virtusa values preserve the team environment and the founding spirit of the company. They are
  • 6. 6 the source of our creative ingenuity and success. So, they empower each associate to be driven by values, nurturing new ideas and fostering excellence. 1.5.1 Pursuit of Excellence All Virtusans are expected contribute in high performance teamwork. Innovation, creativity and discovery of the possible solutions are highly encouraged. In addition, to sustain in the rapidly changing technological environment, the continuous learning and self-improvement is expected from all Virtusans.  Demonstrate innovation, creativity and resourcefulness  Seek continuous self-improvement and constant learning 1.5.2 Integrity The honesty and trustfulness is expected in all sort of interactions. Individuals and teams should demonstrate a high degree of accountability. There cannot be hidden agenda and taking responsibility for whatever done is anticipated.  Demonstrate genuine sincerity and personal honor  Establish realistic expectations and commitments 1.5.3 Respect All Virtusans should respect the clients and fellow team members. They should make the clients respect for Virtusa at every possible occasion by being “Trusted Advisors” to the clients. High degree of collaboration among the team members is expected. Each should help others towards solutions, and should not degrade others.  Treat clients and colleagues with genuine respect and value the intrinsic qualities of each  Support team members , find solutions not fault
  • 7. 7 1.5.4 Leadership Virtusans are encouraged to take ownership on what they do. While being a leader to what oneself does, he or she should encourage others to take leadership on what they do. Teamwork and positive thinking is anticipated to accomplish difficult tasks. The success is expected to assign to the team while taking personal responsibility at the failures.  The Lead by example, encourage others to take ownership.  Assign success to the team The clarity of definition, richness and commitment to adhere this Vision, Mission and Code of Conduct has been witnessed by the success of Virtusa today. With dynamic workforce providing best-in-class operations across domains, Virtusa today is at the forefront of Information Technology innovation. Virtusans are highly motivated, well-rounded individuals with outstanding credentials, a strong record of professional accomplishments, and best-in-class technology skills. They share their passion, innovation, ideas and energy with global teams to solve our client’s most critical and challenging issues. 1.6 Different products / activities of the Industry 1.6.1 Services Virtusa offers many types of IT services to its clients. These services target the efficiency, effectiveness and continually improvement of IT applications and systems of the clients. Business Process Management Leverage Virtusa's BPM capabilities, business process testing and IT consulting services to implement successful BPM programs in an organization.
  • 8. 8 Customer Experience Management With four fundamental business drivers (cost, collaboration, compliance & continuity) that define overall success of Virtusa CEM strategy, They offer the key to a successful CEM implementation. Enterprise Information Management Virtusa's DW/BI practice directly addresses diverse industry challenges by offering a holistic business-result oriented approach to meet the complete information management need of enterprises. Independent Software Quality Virtusa's testing services deliver high value business solutions by leveraging our in-depth experience in test methodologies, automation frameworks, tools and processes. Mobility Virtusa's mobility practice spans the entire life cycle of an organization's mobility needs right from strategy and consulting to mobility platform assurance by leveraging rich partner networks. Cloud Offerings Virtusa's cloud based offerings span the entire software spectrum from assessment to migration, implementation and integration. SAP Offerings Virtusa offers a wide range of financial transformation services built on the SAP platform. Virtusa's SAP offerings provide end-to-end solutions that cater to the unique needs of clients. Enterprise IT Services Virtusa provides a host of services to help organizations in developing robust, scalable solutions that are designed for success.
  • 9. 9 Business Consulting Virtusa's consulting practice is adept at helping clients navigate change and achieve results through technology and people. Infrastructure Management Virtusa’s Integrated IT Infrastructure Management Services (i3MS) enables businesses by providing business ready nimble infrastructure and ensuring outcome links to needs of enterprises. 1.6.2 Industries of Service Aerospace / Defense Virtusa have been a strong partner delivering reusable ECM solutions to Aerospace/Defense clients. Virtusa with its unique combination of domain expertise, operational excellence, and innovative technologies has delivered high-value business transformation and IT services for its clients in the Aerospace/Defense industry.Virtusa global team provides solutions to meet specific business needs of clients to gain competitive advantage, optimize and manage costs, improve time to market and thereby increase overall efficiency and productivity. Banking and Financial Services Virtusa possesses deep domain knowledge, experience in Banking & Financial Services and technology realm by working with Fortune 500 financial institutions and industry-leading software vendors. Virtusa helps Banking & Financial Services firms transform business processes, rationalize product portfolios, modernize operations into a cost-effective, strategize business assets, comply with regulations, managing risks and maximize customer satisfaction. Their Platforming methodology, blended with Global Delivery Model and proven processes build comprehensive IT solutions that help financial institutions address business needs, in order to achieve positive and measurable return-on-investment
  • 10. 10 Education Virtusa’s Education segment helps institutions thrive in an open and rapidly changing world. They strive to help clients make the transition from the industrial age of learning to the digital age through a portfolio of technology solutions, developed in collaboration with their global client education community. We cater to the diverse needs of education by leveraging our functional and technical expertise across a range of industry segments including: Education, Training & Assessment, Professional Learning, Educational Publishing. Energy & Utilities Energy and utility companies are continuously striving to optimize their business performance through better technology and business strategy and to remain competitive through cost containment, safety and compliance. Utility organizations are increasingly looking to manage processes for better business outcomes adhering to critical regulatory compliances. Healthcare Virtusa's mission is to contribute to clients' success by delivering C3ORE Solutions that provide significant and sustainable value. Virtusa’s solutions and services enable clients – Health Plans, Providers, Service Providers, and Software Vendors within the Healthcare sector – transform their business by optimizing operations to gain efficiencies, and expanding their target audiences by providing a distinctive millennial and consumer engaging experience. Hospitality & Travel The industry is investing heavily in innovative solutions that will improve customer retention rates and drive business revenues. Virtusa understands the need for quick, seamless customer interactions and the importance of establishing an effective feedback mechanism to stay competitive in the Hospitality and Travel industry. Virtusa’s hospitality and travel practice offers business solutions and consulting that will have an impact on client experience, with a focus on domain-led services through technology excellence.
  • 11. 11 Independent Software Vendors Virtusa has partnered with leading Independent Software Vendors (ISVs) to address key challenges by developing and delivering over 4000 commercial grade software product releases. Insurance Virtusa’s complex transformational projects to Insurance firms leverage their deep domain expertise and technology capabilities to deliver focused business value. They bring solution expertise in industry specific areas, including business process re-engineering, rule and product engine configurations, pricing, automation, risk modeling & portfolio management, and business transformation in the areas of claims, underwriting, and distribution management. Information Services Virtusa provides innovative technology solutions for value added and personalized content to help Information Service Providers meet the growing demands of their end customers. Virtusa’s vision is to accelerate client’s goals by providing cutting edge technology services to help gather, store, manage and distribute content effectively and efficiently to its customers. Virtusa industry solutions are designed to help clients overcome challenges in leveraging their information assets for better decision making. Manufacturing Virtusa leverages its rich domain and consulting expertise to enable organizations to re-invent their business models without compromising product quality and regulatory norms. Virtusa helps global manufacturers take advantage of these opportunities while minimizing business risks by blending our rich domain consulting expertise and platform technology heritage to enable organizations to re-invent their business models without compromising product quality and compromising regulatory norms. Virtusa's technology enabled business solutions cater to organizations across the manufacturing spectrum. Media and Entertainment Virtusa’s unique technological capabilities and our rich consulting experience allow to enable organizations for the rapid shift to multi-channel distribution models.
  • 12. 12  Rapid shift to multi-channel distribution models including digital platforms in an effort to provide enhanced, personalized and relevant customer experiences  Cloud-based, cost-effective solutions to deliver services more efficiently over new and evolving platforms  Addition of reliable revenue streams through content monetization strategies built on sophisticated campaign management solutions Telecommunications Virtusa has always been at the forefront in providing innovative solutions for the Communications industry. As an IT service provider, Virtusa with a strong base in Telecommunications services is driven by innovation and thought leadership. With their proven, comprehensive suite of solutions for in the critical areas of consulting, technology and outsourcing, advanced development methodologies and cost-effective delivery locations, they partner with Communication providers to maximize assets, unleash growth, and transform to succeed. 1.7 Corporate social Responsibility activities towards Sri Lankan society Rather just engaging in business Virtusa also engages in CSR activities which concerns the society and environment. The following activities are few examples of Virtusa’s CSR activities. As a responsible employer the company itself provides great job opportunities for Sri Lankan industry.  Campus reach-The main objective of this program is to improve collaboration between industry and academia. Under this Virtusa does seminars, workshops, develops course materials to institutes and supports in sponsorships. Especially the industrial placements
  • 13. 13 provided by the Virtusa are great service as they provide the opportunity to about roughly 50 interns within a year.  Digital reach-Virtusa always tries to build digital literacy within community. It will help to improve peoples’ quality of life. Usually they go to rural schools and do various programs to school children.
  • 14. 14 Chapter 02 2. Training Experience 2.1. Introduction My Internship at Virtusa started on the 5th of May 2014 and I joined as an Intern of technology with thirteen other trainees from our batch. After we signed the agreement of training with a briefing on the contract and the rule and regulations we have to comply within the company, our internship commenced with a mandatory induction program for all new employees. We were engaged in this orientation program with several other newly joined employees. This was conducted by Training and development division of Virtusa and it ensured us a smooth transition to the company culture and its values. We had an induction session where we gained a thorough understanding about company, its divisions, hierarchy, and company culture. Then we did self leaning and was engaged in sessions and completed examinations which were considered as mandatory for a newbie. And those Examinations and self learning helped us to gain knowledge on company policies and ethics company adhere to considering Health and Safety , intellectual property. Intellectual Property which covered the Virtusa intellectual property process, software licensing, intellectual property violation threats, copy right policies, patents and the method of including the copyright notes in the code. We self studied and completed the Information Security certification. Under this we learned about the information, information security assets, threats and vulnerabilities related to the internal security. Then it was the GIP certification. Global Innovation process (GIP) is a light weight software engineering process which combines the best practices of RUP, Agile, CMMI and years of training undertaken by Virtusa. With the completion of the GIP certification all the mandatory certifications were completed. I could complete all certifications and exams at first attempt successfully after gaining required knowledge.
  • 15. 15 We participated for a Human resource session which included the history of Virtusa on how it was established and currently where the ATC are established and the PIRL values which are Pursuit of excellence, integrity, respect and leadership. For the resource management session we were briefed about how the resource allocation process works and how the resources are managed within the company. And also we were taught how to access the Velocity Human Resource Management Service tool (VHRMS).This allowed us to access the training materials and also about how to apply for leave and view our attendance details. And we were given guidance on other Virtusa internal applications of V+, Vingo , Vtube and Yammer. 2.2 GTO ERA- Insight The project I was allocated for my six month internship period was ERA- Insight. It is a GTO (Global Technology Office ) project of Virtusa. GTO is the place where most of Research and development work of virtusa is taking place. 2.2.1 Introduction. ERA- Insight : Improving Effectiveness of the Software Delivery Organization Poor code quality and low developer productivity are some of the critical challenges plaguing today's CTOs as they manage software development initiatives. While the need to improve
  • 16. 16 software quality is right on top of IT managers' agendas, most face challenges in identifying specific quality issues. Another key concern is the predictability of outsourced software delivery. Virtusa's long association with Independent Software Vendors has given us unique insights into delivering high-quality software using governance tools to incent and manage improvements in code quality, reuse and productivity. Virtusa's proprietary ERA Insight tool:  Comprehensive code quality and reuse governance solution.  Assists clients in monitoring enterprise-wide software quality and reuse across code bases and institutes remediation plans to improve development efficiencies.  Provides dashboard visibility on a variety of code quality and reuse metrics across code bases in the organization  Provides drill-down across multiple parameters such as code bases and technologies into specific details of each metric allowing root cause analysis of code quality issues  Lowers overall cost of application development and maintenance  Improves code efficiency  Enhances employee productivity through systemic improvements in code quality  Key features include: o Extensive dashboard and drill-down capabilities o Wide variety of code metrics o Govern reuse o Wide technology support o Manages code quality defects o Powerful change code analysis o Geared for enterprise usage  Service offerings include: o ERA Insight managed service o Code quality governance using ERA Insight o Snapshot code assessments using ERA Insight
  • 17. 17 This project is headed by Mr. Padman Reginold and tech lead is Mr. Raj Azhar Ali. And I was allocated to this team with three other colleagues of my batch , Nadeera Kodithuwakku, Dilani Alwis and Iresh Thilakarathne. 2.2.2. PostgreSQL Dataloading The first task I was allocated was PostgreSQL dataloading and it was an individual task. It was supposed to migrate existing dataloading process with MsSQL to PostgreSQL. PostgreSQL, often simply "Postgres", is an object-relational database management system (ORDBMS) with an emphasis on extensibility and standards-compliance. As a database server, its primary function is to store data, securely and supporting best practices, and retrieve it later, as requested by other software applications, be it those on the same computer or those running on another computer across a network (including the Internet). It can handle workloads ranging from small single-machine applications to large Internet-facing applications with many concurrent users. PostgreSQL implements the majority of the SQL:2011 standard and is ACID-compliant and transactional (including most DDL statements) avoiding locking issues using multiversion concurrency control (MVCC), provides immunity to dirty reads and full serializability. Postgres handles complex SQL queries using many indexing methods that are not available in other databases and has updateable views and materialized views, triggers, foreign keys and supports functions and stored procedures. And it supports cross platform development as well. So the motivation behind migration was having advanced free open source DBMS that could be replaced with MsSQL server which is currently used by ERA-Insight. ERA-Insight being a proprietary product, migration could help to reduce their production cost and maintenance cost.
  • 18. 18 Most of the features provided by Postgres are much similar to MsSQL. But still there were several remarkable differences. So to startoff I had to study on postgreSQL and as well as on prevailing Database and Dataloading procedure. My Reporting Manager assigned was Mr. Eranda Lakshan Karannagoda and he was guiding me and supervising throughout this process. He gave me a descriptive knowledge transfer session on current dataloading process of ERA-Insight. This process was initiated by a intern before me and he/she had done the table schemas with PostgreSQL. Therefore I took the backup of that database restored in local postgres server and started referring. Also I had to setup the environment with Apache tomcat configuration. And also built bot , submission processors and web services with ant build tool. 2.2.2.1 Insight bot Insight bot is an automated task handler used in dataloading process. It comprises ow its own database of H2 database. Insight bot will be doing set of tasks assigned. After the submission processor initiate the dataloading process, Insight bot copy the contents already in the database into csv(comma separated files). This was done by export_prod_snapshot_query_out bat files. I had to convert these bat files to support postgres. Example: REM Database properties (manually set before deploy) cmd.exe /c chcp 1252 SET PGHOST=localhost SET PGDATABASE=InsightDB SET PGUSER=postgres SET PGPASSWORD=*********** REM Get first command line argument as ERA_Module_Id SET ERA_Module_Id=%1 REM Get second command line argument as OUTDIR SET MODULE_SPECIFIC_DIR=%2 SET OUTDIR=%MODULE_SPECIFIC_DIR%ProdSnapShot
  • 19. 19 MKDIR %OUTDIR% echo "outdir show!" echo %OUTDIR% SET TEMP_CSV_FILE=%OUTDIR%temp.csv SET CSV_FILE=%OUTDIR%A1.csv ECHO. ECHO Creating %CSV_FILE%... ECHO A1_Id^|External_Id^|Name > %CSV_FILE% psql -h %PGHOST% -U %PGUSER% -d %PGDATABASE% -c "COPY (SELECT A1_Id,External_Id,Name FROM A1 WHERE A1.A1_Id IN (SELECT Code_Unit.A1_Id FROM Code_Unit WHERE Code_Unit.ERA_Module_Id = %ERA_Module_Id%)) to '%TEMP_CSV_FILE%' WITH DELIMITER '|' " Likewise I converted script of export_prod_row_count bat files and completed initial process of dataloading with Insight bot within few weeks. 2.2.2.2 H2 Database Then I worked on H2 database in Insight bot. This has prod tables and feed tables created by insight bot processing. Now in the migration process I had to convert these H2 database table schemas and dataloading scripts and mappers to suit postgres. H2 is a relational database management system written in Java. It can be embedded in Java applications or run in the client-server mode. The disk footprint (size of the jar file) is about 1.5 MB. It is possible to create both in-memory tables, as well as disk-based tables. Tables can be persistent or temporary. Index types are hash table and tree for in-memory tables, and b-tree for disk-based tables. All data manipulation operations are transactional. Table level locking and multiversion concurrency control are implemented. The 2-phase commit protocol is supported as well, but no standard API for distributed transactions is implemented. Feed tables contain the data of new record from set of reports generated by Analayzer. And the prod tables contain the existing data table details in database.
  • 20. 20 Figure: H2 database with feed and prod tables 2.2.2.3 Submission Processor Submission processor is playing a vital role in dataloading process. After the prod tables and delta tables are created, Submission processor creates delta csvs of the tables. I created
  • 21. 21 load_delta_csv.sql and delta_load.sql files for submission processor to create delta and load delta into temp tables in Insight database. Example: Create A1 delta tables. -- Insert A1 COPY z_a1_ins FROM '#DELTA_CSV_LOCATION#/DELTA_A1_INS.csv' DELIMITER '|' CSV HEADER; -- Trim the exteranl ids UPDATE z_a1_ins SET external_id = LTRIM(RTRIM(external_id)); UPDATE z_a1_ins SET hash =encode(digest(z_a1_ins.external_id,'sha1'),'hex')::bytea; After the scripts and configurations was done successfully dataloading process changed its status to 155. Which means it has completed stage 1 in dataloading process. 2.2.2.4 PostgreSQL functions. Then I was required to convert set of MsSQL stored procedures which were used in dataloading procedure to postgres. In postgres stored procedures are replaced by postgres functions. I studied on the differences and rewrote all scripts in Pgplsql which is the SQL procedural language used in postgres functions. Some basic differences are: In MSSQL, a stored procedure is a pre-compiled set of sql commands. A stored procedure: - can have many input and output paramters - can be used to modify database tables/structures/data - are not normally used inside insert/update/delete/select statements
  • 22. 22 User defined functions in postgres come in several flavors. Depending on the type of function written, functions: - can have multiple input parameters, but only return a single value (i.e. string concatenation) - can accept a set as an input, return a single value (i.e. FindLargestPig(ListOfPigs) ) - return a table (i.e. select * from ExplodeString("this is a list of words") ) - can be used in select/insert/update/delete statements - CANNOT be used to modify database tables/structures/data Accordingly I wrote the scripts of Summarize_Display_Data_Master_Module, Summarize_Display_Data_Module,Summarize_Defect_Display_Data,Update_Project_Jobs_Stat us,Summarize_Display_Custom_Project_Dev_metrics,re_populate_snapshot_churn_data_for_er a_module, Truncate_temp_tables_and_audit_actions etc. 2.2.2.5 MyBatis Mappers for postgres MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. MyBatis can use simple XML or Annotations for configuration and map primitives, Map interfaces and Java POJOs (Plain Old Java Objects) to database records. I had to write these Mybatis mappers to support newly written postgres functions. The Mapper XML files have only a few first class elements (in the order that they should be defined):  cache – Configuration of the cache for a given namespace.  cache-ref – Reference to a cache configuration from another namespace.  resultMap – The most complicated and powerful element that describes how to load your objects from the database result sets.  sql – A reusable chunk of SQL that can be referenced by other statements.  insert – A mapped INSERT statement.  update – A mapped UPDATE statement.  delete – A mapped DELETE statement.  select – A mapped SELECT statement.
  • 23. 23 Example: Job_Queue_Updater_Mapper.xml for Update_Project_Jobs_Status.sql function. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.virtusa.gto.report.mapper.JobQueueUpdaterMapper"> <update id="updateProjectJobStatus" parameterType="map"> UPDATE project_level_job SET status = #{status}, statusmessage = (SELECT job_status.job_status FROM job_status WHERE job_status.job_status_id = #{status}::Integer) WHERE Id = #{jobId}; </update> <update id="updateProcessingStartTime" parameterType="map"> UPDATE project_level_job SET processingstarttime = now() WHERE id = #{projectJobId}; </update> <update id="updateProcessingEndTime" parameterType="map"> UPDATE project_level_job SET processingendtime = now() WHERE Id = #{projectJobId}; </update> <update id="callUpdateProjectJobsStatus" parameterType='Map' statementType="CALLABLE"> { CALL update_project_jobs_status( #{value, mode=IN,jdbcType=INTEGER})} </update> </mapper> 2.2.2.6 Errors and Exception Handling Throughout the process of dataloading migration I came across many errors and exceptions in the process. I had to read out the process terminal and identify the exception and handle it and eliminate errors accordingly. Some of the errors were Numeric value out of range, Column count
  • 24. 24 does not match, Data conversion error handling ; converting ‘t’ , defect_Id not present in the table defect, dependencies unmet errors. 2.2.2.7 Conclusion I was able to complete my task of migrate the dataloading process to new Insight Database of postgres successfully for any given set of reports from analyzer. I could perform the task within given time period under supervision and advice from my Reporting Manager Mr. Karannagoda. It was a good experience for me to seek the depths of database technologies and use them efficiently. And also I did the testing for use case scenarios before checkin the scripts and the backup of new database to Team foundation Server used by ERA-Insight. 2.2.3 Review Board- Code Review Tool for ERA-Insight The second task assigned was a requirement came from Senior Architect Mr. Padman Reginold on a code reviewing tool for ERA-Insight. As ERA-Insight is a tool concerning adhering into best practices in coding it was required to have a code review tool facilitating the current manual process effectively. Therefore first I was required to study on available open source solutions and come up with a feasible, efficient solution to deploy. Integrate and develop to customize. After studying on several available solutions and discussions with teach lead and other team mates Review Board was the solution suggested. Thereafter I was required to do a proof of concept (POC) on Review Board. Review Board is a powerful web-based code review tool that offers developers an easy way to handle code reviews licensed under the MIT license. It scales well from small projects to large companies and offers a variety of tools to take much of the stress and time out of the code review process. Review Board is written in the Python programming language and makes use of the Django web framework. For this I started developing on Ubuntu server since Review Board did not support Windows for development.
  • 25. 25 2.2.3.1 Review Board Deployment Setting up a Server I chose to use Apache2 with mod_python, as advised by the Review Board team. Apparently there are some issues with running it as fastcgi. To get an apache install capable of serving python pages. sudo apt-get install apache2 sudo apt-get install libapache2-mod-python sudo a2enmod python Setting up storage MySQL and the python bindings for MySQL sudo apt-get install mysql-server sudo apt-get install python-mysqldb For faster responses, we are going to install memcache and its python bindings sudo apt-get install memcached sudo apt-get install memcached-dev sudo apt-get install python-memcache create a database and a database user for Review Board mysql –u root -p mysql> create database reviewboard; mysql> create user 'rb'@'localhost' identified by 'rb_password'; mysql> grant all on reviewboard.* to 'rb'@'localhost';
  • 26. 26 Setting up Subversion and Git sudo apt-get install patch sudo apt-get install subversion sudo apt-get install python-svn sudo apt-get install python-git Getting Review Board Reviewboard is installed using easy_install. For that have to install setup tools sudo apt-get install python-setuptools sudo easy_install reviewboard Create Site Reviewboard site is created for the deployment sudo rb-site install /var/www/reviewboard Configuring your site First need to allow the apache server to manage uploads directory with: sudo chown -R www-data /var/www/reviewboard/htdocs/media/uploaded Copy the site configuration into apache and enable sudo cp /var/www/reviewboard/conf/apache-modpython.conf /etc/apache2/sites-available/reviewboard sudo a2ensite reviewboard sudo /etc/init.d/apache2 restart It's time to fire up the browser and head to http://server_address/rb and log in with the administrator credentials provided in site deployment.
  • 27. 27 2.2.3.2 Git repository Setup The source control manager used by ERA-Insight is Team Foundation Server. So I faced the problem of integrating Review Board since it did not support TFS. I discussed the issue and then we came up with the solution of setting up a Git repository as a long term requirement of ERA- Insight moving to Git. Accordingly I setup a git repository which servers over Git:// protocol in ubuntu server using gitweb , git-core and apache2. And after that anyone could successfully access this repository locally using a git client. Figure: Git repository access from a local machine and clone a project from git server 2.2.3.3 Git-TF Then I used Git-TF bridge to access source control of TFS for git. Git-TF is a set of cross-platform, command line tools that facilitate sharing of changes between Microsoft Team Foundation Server, Visual Studio Online and Git. Latest release: Git-TF 2.0.3.1 Download and Extract the contents of git-tf-2.0.3.20131219.zip to a folder on local machine, i.e. Add the path where the extracted Git-TF (i.e. C:git-tf) to PATH environment variable. C:git-tf on Windows, or /user/git-tf on Mac/Linux.
  • 28. 28 Add the path where java.exe is installed (i.e. C:Program Files (x86)Javajre7bin) to PATH environment variable. Check the commands in git repository $ git tf configure http://myserver:8080/tfs/mycollection $/TeamProjectA/Main $ git tf pull --rebase $ git checkout master $ git commit -a -m "merge commit" $ git tf checkin $ git push To cache username and password for the repository, can set these in your .git/config: $ git config git-tf.server.username myusername $ git config git-tf.server.password mypassword
  • 29. 29 Here is the .git/config file after configuration Git tf pull Instance – fetching changes from TFS repository Git tf checking instance – checking changes done in git repository to TFS repository Figure: Git-tf process model
  • 30. 30 2.2.2.4 RB Tools After successful integration I used RB tools to create diffs and review requests. RBTools is a set of client tools to use with Review Board. The recommended command-line interface is the rbt tool. This tool runs on Windows, Linux, and MacOS X, and allows executing a number of useful sub-commands. rbt has the following usage: $ rbt [--version] <command> [options] [<args>] Installing RBTools Once Python and Setuptools are installed, you can install RBTools just by typing: $ easy_install -U RBTools There are many ways to configure rbt in order to associate a Review Board server with a repository. The ideal setup is to configure a repository to point to a Review Board server, so that users can use rbt out of the box, but there are other methods available. Repository Configuration All repository types support a .reviewboardrc file, which is the recommended way to configure your repository. Through here, you can specify the URL to your Review Board server, the repository name, and provide some helpful defaults. $ rbt setup-repo Enter the Review Board server URL: http://reviewboard.domain.com Username: Password: REVIEWBOARD_URL = "http://reviewboard.domain.com "
  • 31. 31 REPOSITORY = "Name" $ git add .reviewboardrc $ git commit -m "review board configuration file" .reviewboardrc By default, RBTools will try to determine the repository path and pass that to Review Board. This won’t always work in all setups, particularly when different people are checking out the repository with different URLs. You can use the REPOSITORY setting to specify the name of the repository to use. Here is the created .reviewboardrc file Git Properties Repository information can be set in a reviewboard.url property on the Git tree. Users may need to do this themselves on their own Git tree. To set the property on a Git tree, type: $ git config reviewboard.url http://reviewboard.example.com Custom User Configuration You can provide your own defaults for RBTools by creating a .reviewboardrc file in your HOME directory (usually /home/username on Linux) You might use this to automatically open your browser when posting a review request (by setting OPEN_BROWSER = True), or to disable your HTTP proxy (ENABLE_PROXY = False), for example.
  • 32. 32 Use RBTools Post rbt post simplifies both creating and updating review requests. It can look at your source directory, generate a diff, and upload it to a new or existing review request on an associated Review Board server. $ rbt post [options] [revisions] Post all uncommitted changes in working copy and open new review request: $ rbt post HEAD Post diff file and open new review request: $rbt post --diff-filename=testdiff.diff Create diff upon revision range and open new review request: $ rbt post r1 r2 --svn-show-copies-as-adds=n Post all uncommited changes in working copy and exchange diff in review request #3: $ rbt post -r 3 Create diff of specific files and open new review request: $ rbt post file1.php file2.php This is how particular review request has arrived on Review Board
  • 33. 33 Figure : Creating a review request on a diff 2.2.2.5 Automating rbt post I could do the POC successfully and then there came up several requirements to enhance the code review process of Review Board. Main requirement was to automate the process of creating diffs and publishing review requests without the user being involved in the process doing commands on the terminal. So I researched and automated the rbt post on user’s behalf using linux scripts, git hooks and rbt commands. This works through a combination of a special Review Board user and the --submit-as option. $ rbt post --username=SPECIAL_USER --password=PASSWORD --submit- as=ANOTHER_USER Sample git hook for rbt post automate #!/bin/sh echo "post-commit started" #rbt post HEAD echo "post-commit finished" So once commit is done it automatically starts creating a review request for particular commit.
  • 34. 34 A number of options to rbt post can be set by default in .reviewboardrc. These can go either in the repository’s or the user’s .reviewboardrc file. The options include: BRANCH (--branch) DEBUG (-d) ENABLE_PROXY (--disable-proxy) GUESS_DESCRIPTION (--guess-description) GUESS_FIELDS (-g) GUESS_SUMMARY (--guess-summary) MARKDOWN (--markdown) OPEN_BROWSER (-o) P4_CLIENT (--p4-client) P4_PASSWD (--p4-passwd) P4_PORT (--p4-port) PARENT_BRANCH (--parent) PASSWORD (--password) PUBLISH (-p) REPOSITORY_TYPE (--repository-type) SUBMIT_AS (--submit-as) TARGET_GROUPS (--target-groups) TARGET_PEOPLE (--target-people) TRACKING_BRANCH (--tracking-branch) USERNAME (--username)
  • 35. 35 Then I created remote_repo_script.sh and submit-post-review.sh and post-receive-hook together for more automating both git tf pull and rbt post processes together. 2.2.2.6 Use post-review Post review is another solution I researched on for rbt post process. It is also a supportive tool for creating diffs and review request. Post-review is a command line tool for Windows, Linux and MacOS X that simplifies both creating and updating review requests. It can look at your source directory, generate a diff, and upload it to a new or existing review request on an associated Review Board server. This is the stable previous version of RBtools and still can be used based on requirement of the purpose. Install post-review $ apt-get install python-setuptools $ sudo easy_install RBTools The easiest way to make sure your pointing at the right Reviewboard instance is the .reviewboardrc file in your home directory. You only need to add one line to that file, which is: REVIEWBOARD_URL = "https://path.to.your.instance" If you are working with multiple instances that map to different repos, you can set the Reviewboard instance for the specific repo as well: git config reviewboard.url https://path.to.your.instance Reviewing a Branch Once your branch is ready to be merged back into your project, you want to get it reviewed. You can send a review equivalent to “this branch diffed against master” like so: post-review --guess-summary --guess-description
  • 36. 36 Reviewing one commit Instance when only having one commit to review. In theory this should probably be done on a bugfix branch. There are other good use cases for only reviewing the latest commit as well. It’s done like so: post-review --guess-summary --guess-description --parent=HEAD^ Reviewing arbitrary number of commits It’s also possible to review any number of previous commits. It looks a lot like the previous command: post-review -o --guess-summary --guess-description --parent=HEAD~4 #To review last 4 commits.
  • 37. 37 Figure : Diff Viewer 2.2.2.7 Active Directory Then I configured Active Directory to Review Board to enable users to login with their existing credentials used at Virtusa. Active Directory (AD) is a directory service that Microsoft developed for Windows domain networks and is included in most Windows Server operating systems as a set of processes and services.
  • 38. 38 An AD domain controller authenticates and authorizes all users and computers in a Windows domain type network assigning and enforcing security policies for all computers and installing or updating software. For example, when a user logs into a computer that is part of a Windows domain, Active Directory checks the submitted password and determines whether the user is a system administrator or normal user. Active Directory makes use of Lightweight Directory Access Protocol (LDAP) versions 2 and 3, Microsoft's version of Kerberos, and DNS. 2.2.2.7 Conclusion I did most of the enhancements as requested in the last few weeks of my internship and then created user manuals and documentations for setup and configuration for future use by the team. I did two demonstrations on the Review Board procedure and reviewing mechanism to team members and to the person who was assigned the task to carry forward Mr. Ishan Ambanwela. Throughout the second task Mr. Ishan Ambanwela and Mr. Vicknesh Subramaniam helped a lot guided me. And also several times Senio architect Mr. Padman Reginold and Tech lead Mr. Raj Azhar Ali supervised me and checked and added requirements as required. So it was a good experience for me to work on a open source tool, ubuntu operating systems and participate in a product development from its requirement gathering phase. Also the opportunity I got in working with architects and understand how they view the requirements and handle technologies was great and priceless.
  • 39. 39 Chapter 03 3. Discussion and Conclusion 3.1 Training Experience 3.1.1 Technical Experience The industrial training that I went through within the last few months brought in new technologies and expanded my knowledge in the IT industry. I got the opportunity to put known concepts in to practice in real projects and to learn new concepts through applying them. Meeting with deadlines, keeping the code quality, trying various approaches to determine the best method and finally completing the project with success were experiences that gained throughout the training period. Also during the training I learnt that it is always good to try new things like learn new technologies and languages rather than only sticking to the things I know best. Also even if you think your good in something there is always something new that you haven’t learnt before.During these months I used technologies pgplsql, Python, Django web framework, Linux shell scripting which I was not familiar before. Also I got the opportunity of self studying and apply the technologies appropriately. In addition, to the technologies I worked with since I had to work in the Virtusa Operating system which is a Ubuntu based Linux operating system I got the exposure to the open source environment as well. And also I got the exposure to SDLC , agile methodologies with tasks assigned for me. I also got the opportunity to learn new technologies through Virtusa tech talks, meetups and knowledge sharing sessions we had in our team weekly. Also I got the opportunity of learn and being adhere to best coding practices since our product ERA-Insight was emphasizing on code quality and being ERA-compliant all the time.
  • 40. 40 3.1.2Non-Technical Experience Blending with the Corporate Culture The friendly and warm environment received from the Virtusa and our team is unbelievable. Despite being an intern we could enjoy almost all the facilities and benefits a normal employee enjoys. In the training period I could gain the real life experience of software engineer as responsibilities were assigned. And everyone in the team treated us with no difference and we could work with them hand in hand, discuss issues, give suggestions anytime. That was a really good experience for us to step in to corporate world with much confidence. I got the opportunity to join the organizing committee of Virtusa Big data meetup and contribute to make it a success. We joined the ERA-Insight cricket fiesta and spent a whole day with much fun and joy with the team mates. In team we were working with such a team spirit and everybody treated everyone with much respect and care. So that working was not stressful and I enjoyed my work and I think that is the reason I could complete my tasks successfully within time limits. During the training periods we were lucky to participate in treats organized by our team members for celebrating their birthdays, promotions. We were fortunate to witness the moment of ERA-Insight being awarded at NSBQA 2014 and to share the moments with joy. We are proud to have being a part of a award winning team and have contributed a award deserved product. Training and Knowledge Enhancement Software engineering is a field which is so dynamic and new technologies are coming to the industry. So especially a IT person should be able to gain the up-to-date knowledge. Virtusa organizes comprehensive set of training sessions, tech talks regarding new technologies. Also we had knowledge sharing sessions in our team weekly so that members can share what they know and what they excellence in to others.
  • 41. 41 Presentations We had ERA-Insight presentation sessions in team for interns to improve their soft skills. In my turn I did a presentation on “Sustainable Tourism” and team commented to good things I showed in my presentation skills and also suggested me several areas where I should consider and improve on. Also I had to do presentations and demonstration on the project background knowledge that I researched on and after that POC. It was a good opportunity to improve my soft skills as well as knowledge. It also improved my creative skills when arranging the presentations. Also we were engaged in a full day session of presentation skills building workshop done bt Training and Development division where I got the opportunity to improve my presentation skills more with their guidance and suggestions. Interacting with experts Within the training period I got the interaction of many respected expertise who are leaders of Virtusa who steer it towards success. The HR team gave us this opportunity through monthly meetings with leaders at Virtusa. We were really inspired on their individual stories of success and as well as success story of Virtusa. The friendly nature of them while help us in technical matters were amazing to be considered. I got the guidance of well experienced technical people such who are with the designation of senior technology consultants, technology consultants, senior engineers, software engineers and associate software engineers. Roles played by University, NAITA and Virtusa When the overall training program is considered the National Apprentice and Industrial Training Authority (NAITA) and Training Division of the University of Moratuwa have done a great job to make this training a successful one. The guidance and help they provided throughout the
  • 42. 42 placement is remarkable. It was a honor and great pleasure for us the presence of Dr. Lochandaka Ranathunga and Ms. Ashika Fernando on graduation ceremony at Virtusa. We believe that we maintained the faculty standards and showcased values at our working place, So that the recognition we had will thrive for our next junior batches as well. 3.2 Conclusion During my training period I have got a good technical knowledge regarding Information Technology. The concepts, theories learned in university were used in real life projects. And most importantly I learnt how to pickup things fast and practice. I understood how software engineering process and project management happen in the industry. I got knowledge regarding many non-technical matters such as how corporate culture works. I could improve my interpersonal and soft skills as well while being involved in the activities, doing presentations. During the 26 weeks in the industry I am very satisfied with the overall training I went through. The experience I gained throughout this period has been a great time period that has brought much value to my IT career