NCompass Labs Inc.

Co-op Work Report

Name:

Nick Bilogorskiy

School:

SFU

Department:

Computing Science

Work Term:

1

Semester:

Spring 2001

Permission to view:

Yes


Company Background

NCompass Labs Inc. was established in 1996 by the founder and former employees of ExCITE Lab at Simon Fraser University, Canada's first multimedia research and development center. The Company's first product, ActiveX plug-in for Netscape, brought Microsoft's OLE technology to the Internet and became the industry standard for ActiveX Netscape integration. NCompass now focuses solely on providing Web content management solutions for the Microsoft platform.

Based in Vancouver B.C. with U.S. headquarters in the San Francisco Bay Area and regional sales offices in major U.S. cities, NCompass is a privately held company.

NCompass Labs concentrates all the development effort around one product: Resolution. Resolution is the premier enterprise Web content management solution designed with the business user in mind. The product provides e-businesses with a powerful set of Web site design, content authoring, publishing, and site-management capabilities that are seamlessly integrated with Microsoft technologies.

Content management is a growing industry at present time and NCompass’s key competitors include: Interwoven, Vignette, Eprise and Broadvision. What makes NCompass standout is its tight alliance with Microsoft, while all the competitors are targeting IBM, Sun, Java and Unix platforms. This close partnership, great marketing strategy and extremely talented development team make NCompass a key player in content management. NCompass has about 200 employees, with about 150 of them based in the Vancouver office. It serves about 200 customers around the globe, including Microsoft, Toyota, Hitachi, Fujitsu, Marriott, Texaco, Verizon, McGraw Hill, Telus and many more.

NCompass consists of Professional Services, IT, Sales, Marketing and Development departments. Development in turn contains UI, Documentation, Testing and Product Development units. Product Development is made of Server, API, Installation, Integration and Applications teams. Although everyone works on Resolution here, there are also tools and utilities being developed for it. They include Site Stager (to generate a static file-based site from the Resolution database-driven site), Site Deployment (to backup, transfer and add content from one Resolution Database to another) and Content Connector (to integrate with Microsoft Commerce Server).

My role was to come in for an 8-month term as a junior software developer in the applications team. I was to contribute to the WBC (Web Based Client) development. WBC is a large (over 500 files) ASP system that ties into Resolution server and database infrastructure to provide easy web site editing online. It enables the end user who has the author privileges to create, modify, approve, reject and delete content live online.

My Projects

When I started in January NCompass was already in the end of their development cycle. Chilko was code complete and ready for feature and system testing to be released in the end of March. Since there were no coding tasks, not surprisingly I have been put on testing different features and familiarizing myself with Resolution both from the user and developer point of view. I attended a company sponsored 2-day training course at SFU Harbour Centre where a trainer did an excellent job at getting me up to speed on Resolution 3.0. So by the time I finished testing and training I was closely familiar with WBC as well as other features like Installation, DCA (Database Configuration Application), Versioning, Multiview, Placeholder, etc.

Apart from fixing bugs in WBC I have completed a couple of internal projects for NCompass.
First, there was the Site Deployment test framework to automate regression testing of Site Deployment. This project was done entirely in VB. My responsibility was to make every individual test case (implemented as a VB class file) in Import and Export Test Suites components work correctly, as they were broken by the changes in the 4.0 version of Site Deployment. Among features I added to the test framework application were tracking of the test results in XML and displaying them in the browser with XSLT stylesheets.

Then I was tasked with making our time-tracking system simpler to use by adding dropdown boxes and VBA code to insert the timecodes from the database automatically versus typing them in manually. I got to design a relational database from scratch in Microsoft Access, and then use Excel OLE Automation, VBA and ActiveX Data Objects to connect to it. Later on, my manager suggested that I improve the application by moving all the code from individual timesheets into one shared VB component DLL. It was a great chance to learn programming COM in Visual Basic, and since I had no prior experience with COM it was rather challenging, yet even more rewarding when the application finally worked the way I wanted it to.

Shortly after Resolution 4.0 was released we had an entire company meeting where Gerri (CEO) announced that Microsoft is interested in acquiring NCompass Labs.
Needless to say I was very excited about it. Everyone was…

The acquisition didn’t affect me much directly. I was still going to work until the end of my term and go to school afterwards. Nevertheless, it mattered a great deal to me.
It meant regularly working with Microsoft employees for the duration of my co-op as we had some of the legendary industry pioneers from Microsoft come in and consult us. It meant that friends and contacts I had made here would now work for Microsoft and that could prove extremely valuable when I get my degree. Finally, it meant that my work on Resolution would not be forgotten but rather exposed to enormous amount of users worldwide, when our product is released as part of the Microsoft family of .NET Enterprise Servers.

After the announcement I worked mostly on WBC critical bug fixing and NCompass Resolution to Microsoft Content Management Server rebranding changes.

Overall Experience

I worked mostly independently, meeting with my manager a couple of times a month but in close contact with my fellow co-workers. I had a ‘buddy’ assigned to me who addressed all of my questions about the company, helped me fix problems with my computer and software on numerous occasions and even took me to a ‘welcome lunch’ on the company!

My manager James Waletzky deserves a separate paragraph. James was the one who got me interested in and excited about this job in the first place when he interviewed me for it. He asked tough and relevant questions about object-oriented concepts during the interview. From the very first moment I had an impression that he is someone who likes for things to be done properly, who is very good at what he does and expects the same from everyone else. That impression proved entirely true during my co-op. James wanted nothing less but perfect code written and he got me to write it. He was very meticulous about commenting and writing clear and concise code that is maintainable. Working with him tremendously improved my programming skills and got me to review and improve my coding practices. I am very grateful to him for the amount of time he spent looking over my code and designs, giving me advice and making sure I followed it.

My objectives for this work term were (in this order):

1.       Learn new languages, concepts and technologies and get real-world experience with the ones I already knew.

2.       Meet new people and setup contacts for future employment.

3.       Make some cash and pay off my student loan.

I am very pleased that they were all achieved 110%.