OpenText: May 2019 - December 2019

11 minute read

I was hired to work as a Quality Assurance Technician at OpenText from May - December 2019. In this section of my website, I am going to talk about those two terms. I will go over OpenText as a company, my job description, and my goals for both semesters. I hope this report will give you insight into how good OpenText is as a company, and my personal experience learning and growing over the past eight months.

Information about the Employer

OpenText logo OpenText is one of the largest software companies in Canada. OpenText was founded in 1991 by University of Waterloo professors Tim Bray, Gaston Gonnet, and Frank Tompa. They created the company after building a search index for a school project. Since then, it has become a global industry leader in Enterprise Information Management. OpenText employs approximately 12,000 people at 95 office locations in 31 countries across six continents.

Despite its size, OpenText is often unknown to the general population because its customers are typically other businesses. You may or may not know of OpenText if your job uses one of their many products. Some products are meant to be used entirely in the backend, others in the front end. OpenText manages how data is transferred, analyzed, and stored in three aspects: between customers and businesses – between employees working at one physical location, and between employees working for the same company between many different locations. OpenText can be used by almost any business, some examples are grocery stores, law offices, file sharing companies, and pharmaceutical companies.

Content Server is over 20 years old. The software is used for uploading, managing, and sharing files. It creates workspaces for individual employees and for the entire company to access. The software was built primarily with OpenText’s internal language, OScript. It is fitted with internal tools for data analysis and workflow. Content Server has a powerful search engine, capable of searching through hundreds of millions of documents quickly. It is also integrated with external tools such as SAP and Microsoft 365. Content Server can be used in ClassicUI mode or SmartUI mode. SmartUI is the newer version, which relies on the classic technology with a more modern look. Content Server Smart UI mode

Job Description

My primary tasks were based around fixing, developing, and maintaining an internal performance tool for Content Server named CaveBasin. The tool installs both branches of Content Server daily and runs tests. CaveBasin uses Hyper-V for Virtual Machines; Jenkins for its pipeline; JMeter for performance testing; Perforce for source control; Windows PowerShell, cURL, and python for additional integration; and OpenText’s other product System Center for the installation of Content Server from an existing MS SQL database. Because of its complicated pipeline, a lot of my job at the beginning of the summer term was learning how CaveBasin’s technologies worked. I would learn the overarching technologies in isolation, then try to get them to work together. I learned the other technologies only when I needed to fix an error in the system. Additionally, I had to learn how the underlying product — Content Server— was used, so I could test it efficiently. I spent a lot of time doing tutorials of Content Server. As a 20 year old software, it has many features to understand. A lot of my job was trying to wrap my head around the pipeline. While I picked up most knowledge during my time working, I used many strategies that I learned in school to assist me.

After I understood them, my job was to develop and fix the existing system. It was only ever developed by co-ops, and it is a hard system to set up. One thing that helped me was deciding to set up a sandbox machine to use for testing. The main system would run for about five hours to get the performance data. I added a lightweight mode to the sandbox so I could test things in much less time. Whenever I was fixing something, I would try it out on the sandbox machine first. After resetting baselines and doing a lot of tinkering, the machine was functional and giving performance data.

Once everything was working, I had to maintain CaveBasin. I had to check it every day to see if anything was broken. Sometimes, the builds would slightly change and would cause an error somewhere in the system. After fixing it, I would often add functionality to automate the solving of that problem in the future. A large part of maintaining this system was in maintaining the documentation as well. I had to update existing documentation, explaining how I changed the system. I also wrote new documentation for new features.

Halfway through my eight-month term, I shifted my focus to working on automating security scanning. We had a machine that was also running Jenkins and used for security testing. I learned how to use the scanning tool Fortify with different components of Content Server. I then wrote scripts to automate pulling source code, scanning it, then uploading the results. These scripts were put into Jenkins jobs so you can run them with one click. They were usually parameterized, so you could test different branches. Jenkins logo While working on security scanning, I was also checking CaveBasin frequently. The machine found some performance degradations. Whenever I would notice something, I would report it to the appropriate team and make a ticket online. Developers and QAs would ask me for more information or ask me to test different changes. We were able to fix many degradations. As the system found and fixed degradations, people got more interested in CaveBasin. I added testing for developers and QAs who were working on new features.

Near the end of my term, I worked on setting up resources for full-time employees and new co-ops to help them work on the system. I presented a PowerPoint for 20 full-time employees where I walked through how to add testing to CaveBasin. I wanted to make sure that many different full-time employees were well-versed in the relevant technologies. Additionally, I made sure that the documentation was helpful and informative, so new co-ops would feel more comfortable working on the project. Hopefully, having good resources in writing and knowledgeable full-time employees will help future co-ops to succeed.

Summer Goals

  1. Technological Literacy: I would like to be proficient in new software and frameworks, such as Content Server, CaveBasin, MS SQL, Jenkins, JMeter, Hyper-V VM, and System Center
    • Action Plan: I can develop my skills by reading a lot of documentation and experimenting with each program. I will keep bookmarks to relevant information to reference frequently. I will ask questions to my knowledgeable co-workers.
    • Measure of Success: I will be able to measure my proficiency in these programs by how quickly I am able to locate elements and get work done.
    • Reflection: By the end of the term, I felt confident opening any of these programs and solving a problem with them. Communicating with other employees helped with my personal development. I also learned quickly which portions of these programs I would not have to use. If I had a problem with something that I did not understand, I asked for help.
  2. Oral Communication: I would like to be confident in explaining to other people what projects I am working on, as well as any bugs or mistakes I find.
    • Action Plan: I will work on these skills by connecting with my co-workers frequently. The people in my direct area are not working on the same projects all the time, so I will be able to explain and further my own comprehension at the same time.
    • Measure of Success: I’ll know I am successful when I am able to say something to a co-worker and they don’t need extra time to understand, and we can interact efficiently.
    • Reflection: I was successful in this area. I would often ask questions to the people in my room when there were multiple programs interacting. I am confident that I was understood during these interactions.
  3. Problem solving: I would like to be confident in my skills to look at a situation, evaluate it, and come up with a solution.
    • Action Plan: I will act by using my analysis and understanding based on conversations with co-workers, reading documentation, and learned experience to trust myself enough to create solutions.
    • Measure of Success: I will know that I have achieved this goal when I start working on large problems and begin to create solutions. It will be especially important when I am able to look at a result, determine the problem, and then fix it.
    • Reflection: This semester I found that I learned through failure. Since I had to learn the basics of so many different things, I was not able to get a full understanding of everything. I was efficient with my learning time, because I ended up learning things when they did not work. In a way, learning why a program is not working is better than learning why it does work, because you get to figure out both aspects for yourself. I found that finding solutions was more satisfying when you approach them in this way.

Fall Goals

  1. Depth & Breadth of Understanding: I would like to fix bugs quickly on CaveBasin, a system that I am not working on as much anymore.
    • Action Plan: This is going to be difficult. There are many aspects of CaveBasin to consider, so it is hard to work on it part-time. I will need to trust my knowledge from last semester to work efficiently. I also need to recognize when to delegate to someone else.
    • Measure of Success: I will know that I am successful when CaveBasin runs stable consistently, and when it finds a performance degradation, it is fixed quickly.
    • Reflection: I reported problems when they came up. They did not always get fixed right away, because people are very busy. CaveBasin identified many now-solved performance degradations. I communicated issues clearly and gave the appropriate parties the necessary information. Near the end of the term, people started to prioritize those issues more, possibly because they saw issues being fixed.
  2. Personal Organization / Time Management: I would like to improve my working efficiency, and limit days where I am stuck on one thing.
    • Action Plan: I will accomplish this by setting appropriate goals for each day at work. I will use my personal “to-do list” to check off items during the day as I finish them. When I set something up to run, I will start working on the next task; when I am waiting for help in one area, I will start working in another area.
    • Measure of Success: I will know that I am successful when I can come home feeling satisfied with the workday. Additionally, I will see many items checked off my personal “to-do list” from different areas.
    • Reflection: This went well. Working on two different projects was good for my workflow. I would often set up a scan on the security system, then tweak something on the performance system. I divided my work into small tasks so I could complete many each day. This helped me to develop a good flow throughout the day.
  3. Written Communication: I would like to reply to emails and instant messages quickly in ways that helps expedite bug fixes.
    • Action Plan: I will accomplish this by keeping track of my on-going issues on my personal “to-do list” and JIRA. When I receive an email or message, I will review plans for the day, make an accurate assessment of priority, and explain my approach to that person. I will use a balance of professional language and personable language, depending on my relationship with that co-worker. I recognize that professional language is necessary for some scenarios but having a connection with a person may be better to be productive.
    • Measure of Success: I will know that I am successful when my co-workers and I can have back and forth written conversations and end each engagement with a formal or informal goal. I will also know if my relationships with my co-workers are professional but still enjoyable.
    • Reflection: This was a success. I presented a PowerPoint on adding testing to CaveBasin. People were very interested in it, which drove them to send me more messages and emails. On many occasions, people asked for help with adding their own testing or interpreting existing results. I assisted people quickly and got a lot of work done.

Conclusions

Thank you for taking the time to read this report. One of the most important things I learned in the past eight months is that it is okay to not know everything. It is crucial to recognize when a 20-minute problem for you is a two-minute problem for someone else. You can learn a library’s worth of information from saying “I don’t understand, can you explain it to me?”, because everyone has a different knowledge bank. OpenText gave me so many opportunities to grow. I am glad that I was able to work there for eight months. I would love to return in the future! brainstorm art

Acknowledgments

  • Eric and Steph Duncan for mentioning me to the R&D team last winter.
  • Scott McKnight for the advice and the good chats.
  • Adam Kotowski for showing so much interest in working with CaveBasin.
  • The summer co-ops Alex, Jon, Parampreet, and Tobi for ranking food trucks with me.
  • The fall co-ops Alex, Bogdan, Connor, Franklin, Heesue, Joseph, Mariana, Nikola, Patrick, and Sarah for playing games with me during lunch.
  • Dave Tausky for being very encouraging and an excellent mentor.

Thank you all!