So what is it you do, anyway?

I get this question a lot from people currently enrolled in coding boot camps or those wondering if they should take the plunge.

For the most part, I write scripts to automate software testing.

I am on a retail team for PNC and we are delivering a product that will be used internally by bankers. I work on a team with eight other people– six developers, a scrum master, and a product owner. There is a developer who is designated as the tech lead and there are two other developers who head the front end and back end of the project.

At the beginning of the project I was doing some straight development with Angular and learning how to build endpoints with Java, but at this stage the testing workload has really taken over. When a developer finishes a ticket, thereby adding new functionality to our project, I test that functionality, first manually by clicking through on my own, and then through writing code.

On the front end, I test using a software tool called Cucumber. You write scripts for Cucumber with a language called Gherkin (Yes, gherkins are little pickles. Ha, ha.) For every functionality of every page on our project, I write a test to mimic a user.

For the API calls, I use a similar software tool called Karate. Karate is also written in Gherkin, but is a lot more flexible, as it allows you to write JavaScript methods and other little tricks that Cucumber cannot do. For the most part, I make ‘get’ calls and post calls using Karate, but there are times when certain validation is needed and I break out the JavaScript.

I also attend all of my team’s ceremonies. When running Agile, teams call their meetings ceremonies. Our team has decided to run from Wednesday to Wednesday, rather than Monday to Friday. So, on Wednesday, we do our Sprint planning. Everyone looks at the tickets available and decides what type of workload they can handle. We assign tickets and begin the sprint. Every morning, we have a fifteen minute stand up where we briefly discuss what we will do that day and any problems blocking our work. On Thursday we have backlog refinement. We talk through the work that needs done in the upcoming sprints and create tickets to reflect that work. Friday and Monday are straight development days (Most of the team works from home on these days). Then, on Tuesday, we have a demo where everyone shows what they completed, not only to the team, but to stakeholders further up the bank’s food chain who are interested in our progress.

What I have just described are the bones of my job, but many other things arise during the week. For instance, I’ve come to realize that I will need a mock database to run my Karate tests against, so I am working with another team in PNC to get this accomplished. There is a long string of emails and meetings associated with getting the mock database built and this workload gets added with tickets to my sprint.

I don’t know if this sounds fun to you, but it is. Yes, there is stress, but working with a team has been an enjoyable experience. Everyone has a good sense of humor, works hard, and goes out for happy hour at least once a week.

I like to learn and I’m learning every day. The pace is not the ludicrous speed at which a boot camp runs, but now I can learn things, practice them, and retain them. In the six months that I’ve been at PNC, I’ve learned not only about programming, but how to get things done when working in a large company in a business software setting.