About FGM
Employer
This summer I interned at FGM, Inc., which is headquartered
in Dulles Virginia. The initials stand for the three founders of the
company: Mike Fortier, Scott Gessay, and Mike Morehouse. I typically
worked a 40-hour workweek. FGM offers flex time, which means that
employees may work at any time of the day as long as they meet their
40-hour workweek requirements, and are in attendance of any meetings
in which they are needed. My schedule was Monday - Friday from 7 A.M.
to 3 P.M. This gave me the opportunity to arrive at work early and
leave work early in order to avoid the dreaded Northern Virginia rush
hour traffic. This also allowed me to have my afternoons open in order
to workout, run errands, or simply relax.
There are five separate teams at FGM: Shadow, Stealth,
Helix, SWAT, and Base Camp. Each of these teams maintains separate
responsibilities and may be assigned to a number of different projects.
While at FGM I worked on the Shadow team and was assigned to the Global
Combat Support System (GCSS) project. This project is used to migrate
combat support systems to the Common Operating Environment (COE) in
order to provide integrated combat support. Basically, this project
converts data from many different sources into relevant and coherent
information that can be used to support combat efforts.
The Shadow team is comprised of about 70 employees.
Because FGM is a relatively small company the responsibilities of
each team member can have great range. Many employees were accountable
for not only one primary job function, but rather a host of different
job functions. A few job functions of the employees in my section
included testing, development, design, configurations management,
network configuration, and project management. Employees in my section
ranged from very skilled veterans to entry-level employees like myself.
The main customer for the GCSS project is the Defense
Information Systems Agency (DISA). DISA is a combat support agency
that helps plan, develop, and operate combat information systems needed
by the Executive branch of the U. S. government. Other customers of
FGM include the Veterans Affairs Administration, the U.S. Space Command,
and Lockheed Martin.
My immediate supervisor was Jack Wilmer. Jack is a project
manager and software developer who has been working at FGM for three
years. He is a 2000 graduate of Princeton University.
The atmosphere at FGM is very relaxed. The people at
FGM are very friendly and very willing to help if you need to ask
them a question. Everyone seemed excited about having interns in the
office. Most employees were very enthusiastic about sharing their
knowledge of not only a variety of computing topics, but also of what
it is like to work in the “real-world” corporate environment
as well. There is no dress code at FGM so employees may wear whatever
clothes they feel comfortable in. I typically wore jeans, a button
up shirt, and tennis shoes to work.
My Job
While interning at FGM I worked on and completed two
separate projects. The first project I worked on was a web-based application
to be used by FGM’s software developers. This program allows
employees to log onto various development and testing machines in
order to access important information about the software on each machine.
The program centralized this vital information and made it possible
for the configurations management team to assess the various software
products on each machine. This was helpful in allocating resources
for different projects. I employed a variety of skills to implement
this program including PHP, SQL, Korn Shell Scripting, Java Script,
HTML, and Cascading Style Sheets.
Before working at FGM I had no previous experience of
working with PHP, Unix, or SQL, but I was told that I would need to
understand these technologies in order to complete my project. So
for the first week or so of my internship I was allowed to sit in
my office and study tutorials on these technologies. Most of the tutorials
I used were found on the web; however, fellow employees also offered
advice and gave me books to aid in my studies. Once I felt comfortable
with the technologies I was able to begin work on the project. My
first step was to create a design for the project. I sat down with
my mentor for about two hours and we designed various use cases for
the project. I also sat down with the resident database guru and he
helped me design a database that would fit my project’s needs.
Many problems arose as I to worked on this project.
To begin with the requirements for my project were not comprehensive
or cohesive and I was often confused about the direction I should
take my project. In order to solve this problem I sat back down with
my mentor and reworked the design. Through an iterative process we
were able to work out a suitable design and I was then able to begin
working on my project with a strong sense of direction.
I created a few prototypes of what I envisioned the project to be
and discussed the strengths and weaknesses of my work with my co-workers.
I followed their advice and continued to improve my project until
it was complete. After I was finished with the project requirements
I created and implemented a user interface so that the program would
be easier to use. When the coding for my project was done I began
to test it thoroughly. During testing I found and corrected numerous
bugs. Once I was satisfied with my project I placed a link to it on
the team web page and allowed other employees to take advantage of
its services.
The second project I worked on was another web-based
application that automated the company’s weekly status report
process. Each member assigned to the GCSS Project must fill out a
status report weekly. These reports explain what type of work that
employee completed that week and also what type of work they planned
on completing the next week. Currently, this process is done by email.
Each employee emails the deputy team leader this information and he
must then compile it into a coherent report. This is a very time consuming
and tedious task. In order to make this process easier I worked on
a team with another intern to automate this process. We created an
application that allowed employees to log onto a website, access information
relevant to the work they had been doing that week and fill out the
report. After the workweek was over, the deputy project manager could
compile all of this information easily into a Microsoft Word document
using our program. The technologies we used to develop this project
were Java, JSP, Oracle, HTML, and Java Script.
I used the same steps to develop this project as I
did in the first: design, develop, test, deploy. This project however
was very different because I was working on it in a group. The group
consisted of another intern, a full-time employee, and myself. This
made the project much more interesting but also made it much more
difficult because ideas and work needed to be shared. In order to
coordinate our efforts we held meetings to discuss our ideas. We also
used the CVS file sharing system, which allowed all members of the
team to have access to all of the project files at any time.
Good communication skills were needed in order to make
this project work. In the beginning of the project this was a slight
problem. We were each working on our own different sections and were
not coordinating our work very well. After our first few attempts
to compile our project failed we realized that we needed to work more
as a team. We began to communicate more effectively and as a result
we were able to complete a prototype of our project. Unfortunately,
the summer and our internships ended before the project was completely
finished. However, I believe that we completed enough of the project
to allow another developer to finish it with ease.
When I was hired I was not expected to have a specific
set of skills but I was required to have the ability to program in
a high level programming language such as Java or C++. I was also
required to possess good communication skills, the ability to work
in a team, and the ability to solve problems independently.
During my internship at FGM there were many training opportunities
that I had the chance to take part in. One training seminar focused
UML training. A fellow employee who is also a part time professor
at Johns Hopkins University instructed the seminar. I was also able
to sit in on many lunchtime seminars. These seminars were held every
Thursday and hosted by a different employee each week. The topic of
these seminars was chosen by the seminar host and varied from situational
leadership to espionage. One seminar was even held on how to make
ice cream with liquid nitrogen.
The people at FGM are what make working at the company
so special. Everyone I had contact with was extremely friendly and
always willing to lend a helping hand. Many people were very eager
to take time out of their busy schedule to help answer a question
that I may have had or to help me work through a problem. The other
interns I worked with were also very nice people who attended universities
all over the country. Two interns (including myself) attend universities
in Virginia, one intern attends school in Florida, and the final intern
attends school in Colorado.
Tools I Used This Summer:
GVIM Editor
PHP MyAdmin
Xmanager
PHPDev
MySql
Eclipse
Dos
Dreamweaver MX
CVS