Home > NCR 2023

NCR - 2023 Work Term Report

The logo of NCR

Introduction

From May to August 2023, I worked as a coop for NCR (external link) . My work involved fullstack development and manual testing to ensure the company produced quality products for its clients. The variety of work I performed allowed me the opportunity to increase and expand my skills and knowledge in the workforce.




About the Employer

Back to top

NCR is the National Cash Register, a global Financial Technology (FinTech) company. The company is, as of 2023, almost 140 years old. Its values can be summarized as "Customer FIRST":

NCR focuses on providing its clients with a unified source for their data rather than the older siloed structure commonly found in banks. It also seeks to provide software as a service (SaaS) and develop versatile, useful tools to anyone interacting with the financial sector. Each customer is treated as if they're the only customer to ensure they receive the best services possible from NCR.

Within the company, employees are given a positive, collaborative work environment. Since NCR provides a hybrid structure, employees can work from home if necessary and come to the office for more direct collaboration with their teams. My impression from within NCR is that employees' attitudes and productivity are improved with the ability to choose between working in-person or remotely.

NCR fosters community by organizing events for the employees so that they can socialize and get to know their coworkers within the office. They also provide activities for more day-to-day socializing. During my time at NCR, I experienced the positive results of these efforts.

The social events provided by NCR allowed me more opportunities to meet and interact with other employees and co-op students. I also volunteered for a couple events: serving ice cream after the lunch hour and helping set up and take down activities for the NCR barbecue. As I had to be in-person and work with other employees, it allowed a more structured way of getting to know my coworkers. Even after the events, I was able to keep socializing and getting to know the people I had met.

Image from the NCR barbecue on July 12, 2023. An employee wearing a pink inflatable shark suit is sitting in a dunk tank. The barbecue was one of multiple events NCR hosted to encourage socializing amongst employees.

Many of the employees at NCR are returnees, which shows that the company fosters a positive work environment. At least two of my team members were former University of Guelph students, and a few other employees I have spoken with started as contractors who eventually returned to NCR as full-time employees. There are also employees who have worked for NCR for a decade or more. NCR's positive environment encourages employees to return and continue to work for the company.




Goals

Back to top

Learn how to work with JIRA software (as used by NCR)

Action Plan

I will regularly access JIRA daily to practice using its tools (agile board, Tempo timesheets, etc.) and learn its general functionality.

Measure of Success

I require little to no assistance through documentation or help from others to perform basic tasks after 4-6 weeks.

Reflection

While my lack of familiarity with JIRA made it intimidating to use, observing others using JIRA and my own exploration allowed me to learn and adapt to regularly using the tools within it. Such uses include tickets that document stories for new features and bugs that require fixing, and recording time spent working on those various tasks. By the end of six weeks (or sooner), I could use JIRA quite well and knew how to update information as I needed across the software.

Reach out to others for assistance in a timely manner

Action Plan

Evaluate my needs and recognize/acknowledge time already spent on a given issue I am experiencing, and reach out for assistance in a more timely manner when I am struggling.

Measure of Success

The time I take to resolve issues is reduced by the end of the term.

Reflection

I continued to investigate issues I encountered independently by trying various solutions I could find or knew from other previously encountered issues. After my independent investigation, I reached out to whoever I thought would be most likely to either be able to help me or redirect me to someone who could. I would also provide them with the solutions I tried so that it would take less time to help me resolve my issues.

This approach worked well, and I used my time more efficiently as I learned quick fixes or received the help I needed to handle any issues I encountered.

Learn how to effectively use MyEclipse

Action Plan

Find various useful shortcuts and locations of useful or necessary tools to perform tasks.

Measure of Success

I am able to make changes to code and perform tasks quickly while working on a given project.

Reflection

My coworkers provided some shortcut keys, but I also took the initiative to find more on my own that have proven to be useful. I also learned how to use various tools through debugging and adding new features to NCR's CSP Imaging product.

Overall, I would say I became quite capable in effectively using MyEclipse. Being able to call up tools I wanted or remember where they were in the IDE's layout as necessary allowed me to work quicker than before.

Support the documentation process

Action Plan

Follow proper structure and conventions with GitHub branches and commits, update JIRA stories/tasks appropriately, and comment code as necessary. Also assist in updating or creating documentation where needed.

Measure of Success

Any work I contribute to a given project is clear and understandable to other developers

Reflection

Activities I performed that assisted with documentation included:

  • Logging issues found during regression testing
  • Recording my solutions to issues I fixed
  • Documenting new features I added to the software

When logging issues I found, I did my best to provide details so that the issue could be reproduced, then fixed as necessary.

Some of my documentation included comments in code I wrote, or even deleted, with my reasoning in case an issue were to reproduce itself.

I believe I accomplished my goal. Logging and fixing issues in the code provided me with a less formal understanding of what to do before I documented any new features. My team was also able to provide guidance to ensure I documented any changes and issues properly.




Job Description

Back to top

Overview

My position started off with setting up my developer environment. Once I was set up, I handled a few bugs in the software as a way of familiarizing myself with the code structure. I also learned how to use the various tools NCR used, including JIRA and Confluence.

My team focused on work within the NCR Channel Services Platform (external link) : the NCR Remote Deposit Capture, also known as Passport, and its interactions with other NCR products.

Passport is, as described, a remote deposit capture software. Instead of physically depositing cheques, the software uses photos of the cheques to deposit them into a bank user's account. This is to make the process of depositing a cheque as convenient as possible.

NCR Remote Deposit Capture - Passport

Our work focused on developing new features either anticipating future demands or in response to client-specific requests, and fixing any issues discovered either by clients or through our internal testing. For the most part, issues were found internally, so we were able to fix them before clients encountered them. As for new features, we would figure out how to add them into our existing software, then other team members would review our plan (and later, our implementation) to ensure our work wouldn't introduce any problems to the code.

Unique Parts of the Job

While working at NCR, I found the workday to be both structured and flexible. With core hours, I could work around them as necessary for my personal needs. However, my work was still structured as I knew what tasks were assigned to me and the expectations of when I would complete them. This allowed my team and I to have an informal environment to assist each other as necessary and perform our work however we found best for ourselves.

Skills on the Job

I learned several new tools and resources on the job. In general, I worked with JIRA and Confluence. JIRA is a software for logging and recording work done on development stories, bugs, or other tasks, while Confluence is a platform for creating, editing, and using documentation.

As a developer, I learned how to work in MyEclipse (an IDE) for development in Java. I also learned how to use ReactJS, a JavaScript library, for the first time. Since ReactJS is a popular resource, I also took some of my own time to learn more about it.

Alongside developing new features and fixing bugs, I also wrote unit tests using JUnit (for Java) and Jest with the React testing library (for JavaScript). The existence of these tools encouraged implementing tests that could prevent future developers from reintroducing bugs into the software.

While working at NCR, I also worked on some test stories. These were manual tests written in HP ALM (Application Life Cycle Management), a software for testing stories/performing Quality Assurance (QA). I would read the test steps, then perform them. Whenever I encountered a situation where I got an unexpected result, I checked with other testers to confirm that what I found was indeed a bug and not a misconfiguration of the test environment on my part. In the cases where I had found bugs, I would then record each one as a JIRA ticket for developers to work on in the future.

Learning all of these tools and resources was useful, since they each support agile development in its various stages. I also expect to encounter most of them again in the future.




Conclusion

Back to top

As a coop student working at NCR, I had a positive learning experience while contributing to actual products delivered to NCR's clients. My work was varied, and everyone in the Waterloo office supported and encouraged my participation in the work and social aspects of the company.