Trainee report of "Software trainee in a big company project" at MUSALA Soft ltd. (Bulgaria: Sofia)
SOFTWARE TRAINEE IN A BIG COMPANY PROJECT
Learning computer languages and fixing defects.
- 1 AKNOWLEDGEMENTS
- 2 Introduction
- 3 Musala Soft ltd.
- 4 My activity in the ISC team
- 4.1 First steps
- 4.2 Software learning
- 4.3 Language learning
- 4.4 Defect fixing
- 5 Conclusion
- 6 Appendix
First of all, I want to thank Mr. Salfwan El Assad (East European Union Internship of Polytech’Nantes) who helped me to have a contact and find an internship in Bulgaria.
I want to thank the Musala Soft, a Bulgarian company, who took me during my internship of the 4th year in Polytech’Nantes. Particularly, the Team where I was integrated with Mr. Emil Alkalay (Team Leader of the ISC Team and my supervisor in Musala Soft).
Besides, I thank Ms. Magdalena Ivanova the Human Resources Specialist of Musala Soft who hire me and helped for many things during my internship.
Finally, I want to thank Mrs. Velina Slavova (Sofia New University Professor) who helped me to find a flat in Sofia and everybody who helped me to spend a good trip in Bulgaria.
Firstly, I was obligated to do a computing science internship during my 2nd over 3 years of study in Polytech’Nantes and I chose to go in Bulgaria and more specifically in Sofia, the capital.
I spent two months in a computer science company: Musala Soft ltd. I integrated the project team which is one of a big company's project of Musala Soft. Musala Soft is one of the biggest companies of computing science in Sofia which is specialized in software development. It employs almost 150 employees.
My place in Musala was trainee and I had to do the same job as a junior software developer on the Musala jobs scale. My supervisor was the ISC team leader, Emil Alkalay, and my colleagues were the 12th members of the team.
More specifically, I was an entire member of the team and every week I participate to the team’s meeting. Because the team is large, generally I directly work with two developers: Ivan Stankov and Daniel Velev. My tasks were to fix defects of the Integrated Solutions Console software.
To describe the project, it is important to say that the project is a big software developed by one of the bigest company. The development starts in 2002, I work on the version 7.5 which release by the end of this year. This version is built in different teams in the world (India, China, America, Australia…) and one of them is in Musala Soft.
This report will describe in first the company and his know how, in second my activity in the team and to conclude the analysis of past experience.
Musala Soft ltd.
This section describes the company where I made my internship in Bulgaria during the summer 2008. Before to start to present the company, it is necessary to say that Musala is the name of the highest mountain of Bulgaria and “Soft” means Software… Does Musala Soft want to be the biggest software company of Bulgaria?
Musala Soft is a software engineering Services Company specialized in offshore, near shore and local delivery models. The company was built in 2000 and now has extensive experience in organization and execution of geographically distributed projects throughout their lifecycle.
Musala Soft offers flexible arrangements and high-quality solutions, with rapid and cost-efficient development. Musala Soft reputation as a reliable service provider is proven by Musala track record of 100% successful projects and satisfied clients among which are both start-ups and such well-known names as DHL, HP, IBM, Manpower and SAP.
Musala Soft mission is to understand clients' needs, provide effectively high quality solutions that meet client expectations and be a long-term reliable partner of satisfied customers.
Musala Soft acquires resources from the best universities. Members of staff have medals from international competitions in Informatics, knowledge covering a broad range of technology projects, and multiple years of experience in the software development industry.
Musala maintains a focused and flexible organization, and as a result it is able to react quickly to the needs of each client. Musala places developers in project teams that are designed to be efficient and responsive. Team members are committed to non-stop learning, knowledge sharing and a high degree of personal involvement. Thus, each team is able to achieve more than individual members could accomplish alone.
At the heart of any successful project lies an effective methodology, reflected in a well-established software development process. This is especially true for outsourced projects, where time differences, physical distance, and other potential obstacles must be addressed. All of the business activities at Musala Soft focus on outsourced projects, and as a result we are committed to clear communication with our clients.
The company utilizes company-wide business processes to ensure that custom outsourcing service projects move efficiently through to completion. These processes include gathering and documenting requirements early in the project, and communicating regularly with clients to move the project forward.
Musala Soft clients carry heavy responsibilities. They come to ensure that their projects are handled efficiently and appropriately. By calling on Musala knowledge of cutting-edge technologies, the company is able to recognize the specific needs of each project and create suitable solutions.
As part of this ongoing commitment, Musala Soft ensures that people receive training and certification in all relevant technologies, thus Musala pass on a clear competitive advantage to clients.
Musala Soft management and staff are committed to customer's goals and priorities, establishment and maintenance of defined processes, regular communication and reviews, in-time and in-budget delivery of products and services, flexibility and innovation, continuous improvement of processes and people. Proofs are the following process oriented certifications:
- ISO 9001:2000
- IT Mark
- CMMI Level 2 (readiness check for ML 3)
Musala Soft's membership in the partner programs of the world's IT industry leaders give access to the latest technologies and educational resources. Musala Soft is:
- IBM Premier Business Partner for Software
- Microsoft Certified Partner
- Oracle Partner Program Member
- TIBCO Consulting Partner
The career paths
The career paths in Musala define the ways and criteria for changing the position within the career group.
My activity in the ISC team
Musala as you read have many certification so many process. My first task was to read documentations like a new employee.
Quality Management System
What is QMS?
Musala Soft's Quality Management System is result of long experience and research in the software development best practices and models.
The system is very flexible and based on software engineering best practices and combining best of different models like RUP, Iterative, Agile Processes and CMMI.
The objective of Musala's processes is to produce high quality predictable results.
Overview of the project roles and their activities
- Team Leader
- Software Engineer
- Quality Assurance Engineer
- Quality Manager
- Technical Writer
- Customer Support Specialist
This document, of about two hundred pages, enumerates JAVA coding guidelines that should be respected when developing code for the big company. It is intended to be of educational purpose for new developers and as work-of-reference for the experienced developer. The document consists of general-purpose coding rules and company specific coding rules.
Each rule is categorized in one of four levels:
- Must: The rules that everyone must fix.
- Should: The rules that everyone should fix.
- Good practice: These are the rules that are good practices in general.
- Others: These are rules that you might want to take a look if you are interested.
I have not read the whole document but many parts are important and good to know. It’s very important on a large project like ISC to respect these rules.
ISC programming guidelines
This guide is specific for my project to coordinate all teams. Three sections describe programming guidelines:
- Code specific guidelines
- Exception handling
- Logging and tracing
Integrated Development Environment
This project is developed on a specific IDE: Application Server Toolkit (Eclipse based software). Getting the feel of this IDE was not very long but I have had some problem with change deployment on the server Web Sphere.
What is the project?
The project is an integrated web console to manage a complex heterogeneous infrastructure. Each console is integrated in the software with these goals:
- Have a common user interface
- Use open standards
- Have a common runtime technology
- Be a cross company IT solution
- Freeing skilled IT resources
To be productive I read specific documentations and make many test of the software to be more familiar. There is many educational documentation write by the company for new developer. The main goal of these documents is to understand how the project work.
You have exercises, to install the IDE, the server, make a Portlet, build, deploy, undeploy and import sample.
A large project uses many frameworks, it was very important to learn these languages:
- Portlet, specification JSR168
During the build process, many defects are open and must be fixing.
The version control software of the big company is a software package that serves as an object repository, performs software version control and defect tracking system.
To be efficient, I read many papers about defect fixing process. In this chapter a enumerate me own process elaborate from my lectures.
Read the defect description
This description come from the version control software and contains:
- Defect number
- State: open, working, closed, rejected.
- Age: x days.
- Concerned release: isc.next, isc.isclite, isc.ae…
- Add date
- Last update
- Origin information: Name and login.
- Owner information: Name and login.
- Priority: must, should fix
- Notes: this is the most important part; it’s the description of the defect.
- Problem Description
- Scenario Executed: to reproduce the defect.
- Expected Result
- Actual Result
- Maintained Environment: description of the environment to reproduce the defect.
The description is very clear and precise.
During this step I reproduce the defect in my development environment.
Analyze the cause
I need to do some analysis to determine what section of code in which file is failing. On hard defect, I need to use manual debugging… Sometime this part was very long, this comes from the fact that I’m not familiar with the used framework.
Fix the defect
I can now fix the defect, make tests to verify the fix and propose this fix to my colleague.
In my case, each defect was very interesting and a good learning opportunity. I can correct and improve my way to fix the next defect. I can search for other similar defect in the code.
Type of defects
I work on many type of defects during my internship, the main category is a display defect due to a particular browser (IE 6, IE 7, Opera, FF…). Other defects were about translation problem like Arabic language (RTL: right to left), code generation semantic and missing required functionality.
I have written fix in different languages like JAVA, JSP, JS and HTML.
The technical aspect is very good, I have improved my knowledge in J2EE technology and learnt Struts framework.
For the first time I work on a word wide project, in English, in a big team. This international experience was very interesting and will be helpful for my next internship.
Personally, I spent a very good trip in Bulgaria and in Musala. Bulgaria is a good destination, very cheap, people have open mind and the English is common. Discovering of a completely different alphabet was very culturally good.