Mandaris Moore

I woke up from a dream this morning feeling conflicted and sad. The dream was about being offered a job working at Apple making tutorial videos and applications for others. It was my dream job and -although I had doubts about my ability- I wanted to pursue it.

The drawback is that I'd have to leave my relatively secure position working for the state. I spent the rest of the dream worrying about how I should approach the subject and cleaning up my local neighborhood.

I was recently asked to write a little something about my thoughts on doing QA and some questions about my experience. I was told to only write two sentences but I made three so that I could delete a paragraph later. I thought it would be ok to post them on my site. I hope that you get something out of reading it.

I'm a little bit of a perfectionist when it comes to my work. I find myself agonizing over details and often have multiple drafts and versions of emails, code examples and tutorials that I'm going to publish right after I change that one or two critical things that will make my point. This has been one of the reasons that I've been in Quality Assurance for as long as I have; I don't want people to run into problems.

When I first started working, I was put in charge of creating and automating test suites for an application development tool. The mission was to simulate how a user would create a smaller application using the different components and options available. I quickly learned that automation is only good if you have a clear goal of what you want to accomplish. When the automation breaks, something should happen other than changing the automation. Since then, I've worked with a variety of systems that reported an issue when something goes wrong, either a problem in the build system or a change in functionality. 

A lot of companies are attempting to be agile and it is important that a QA engineer keep up to date with where the company wants to go with the product and have an idea for how people are actually going to be using it. I've been in a couple of situations where companies have been so focused on the features of the product, that they loose track of how everything is supposed to come together for the user. There can be difficulty in communicating (development in remote parts of the world or just don't see it the same way), but I feel that I've learned a lot of different ways of getting my point across (detailed bug reports, screenshots and videos) and understanding where other people are coming from.

In your current role, what is the end product? How do you test it?

In my current role, I test two products. One is a web portal that I test using selenium for regressions and manual testing following test plans that I've developed. The other is an IDE based off of eclipse which creates smaller applications that I do manual testing using test plans that I've created.

Do you have experience with imbedded software? Please describe?

No, the closest I've come to a truly imbedded system is when I was working at Intel and I had to run data through a simulation of the graphics chip.

What is your experience with programming?  Languages? Years of experience? What have you programmed for?

I've always been active in keeping my skills up. I've been doing java for about 8 years now and use it mainly for creating examples for customers and components within my test plans. I've used objective-c for 4 years and use it for my own personal applications. I've been getting more and more into python for the last 2 years as a way to automate my mac, generate test data and small web services. 

Have you been a member of a SCRUM team? Describe your sprints

Yes, most of them are related to creating and merging a major feature into the software. The team had to design and implement new features that could make the software unstable, I was in charge of merge conflicts and regression testing.

What is your experience with defect tracking systems. Where did you do this and what was the project?

I can't imagine a world where there isn't some kind of defect tracking system! I've used RedMine, Jira, Salesforce and a couple built by the the company (Intel and Apple). At Unify, we used Salesforce to track customer issues and information. If there was a real bug or enhancement, we'd put it into Jira or a terminal based bug tracker and each person was told to make sure that all the information needed for a bug was completely documented and were to place test artifacts. At Intel and Apple, we used a custom built solution that required us to put the examples and test artifacts on a shared drive. At Intel, we also had to schedule time on simulator in order to reproduce and debug problems. At Starview, we use RedMine to document and prioritize issues as they come up.

Describe your experience with source control systems

I've used CVS, RCS, Subversion, git and mercurial. At intel, we used subversion to branch and merge bug features and bug fixes. It was my primary duty to handle these merges. The most difficult merge had to do with over 25 files and thousands of lines of code. At Starview, they use mercurial and I use the command line to interact with that. I use git to check out source control from Github. 

Describe your experience with automated testing tools. What have you used? Where? For how long? In what context.

The first tool that used was SilkTest as Unify, I used it for 2 years. At Intel, they had a system called Tambor that ran tests in an emulator (not to be confused with the simulator from earlier) part of the regression testing was running Tambor. Currently, I've been using Jenkins to start automated tasks when there is a change in source code. Jenkins kicks off tasks such as selenium to test how the application respond to user input.

regression testing

Usually, we add a test to the automated suite based off the the severity of the bug and all critical issues are added to the test plan for manual testing. Usually, this is broken down as use cases and there is a lot of over lap. For example, a new feature might be introduced (i.e when users click and hold a button a different event is triggered) and we have to make sure that the new functionality doesn't change how it used to work unexpectedly. I've had to write the plans that describe how it is supposed to be used and the code that would actually do it.

acceptance testing

At my current position, we noticed a problem where things started to feel slower when using the application. We didn't have any real data on how to see if there was a problem other than noticing that our automation suite was taking longer to run. I took it upon myself to learn and implement jmeter and look at serval plugins for jenkins so that we can look at the performance of different test from one build to the other.

risk based testing?

I usually see this as part of regression testing because of time and resource limitations. If you are able to grow your suite of tests, you can focus on making sure that new features and bug fixes get higher priority for test creation. That being said, the new stuff is usually tested manually so that I can get a feel for what it is doing versus the documented requirements.  

Today is the second day that I've been without a job.

Although it's due to the end of the contract, I still feel kind of lost. That was my first contract, and it's weird to look back and think that even though I knew it was going to end... it still ended.

Honestly, if you had asked me last week whether or not I was feeling confident about what my next step was going to be, I'd tell you that I'm walking forward to the next phase in my career, but --thanks to a lot of little doubts placed by those closest to me-- I no longer feel so warm and fuzzy inside. I constantly hear "It's hard out there", "What's your plan?" and even the contractor who is replacing me was out of work for a year before he found something1. Which has caused me to stay up tonight to write this down, get it out of my system and onto my filesystem.

The fear

The fear is that I won't find some kind of employment soon. In my mind, I have constant questions floating around.

What if I could never find someone to hire me again?
What would I do to make income?

The parent in me jumps up and screams "I'd do anything to make sure that my family is happy and well taken care of", but I can't feed a family on good intentions and I'm not the kind of person to go out and rob others. Although, I have started looking around the house for things that we can sell.

The Plan

The plan or desire at this point, is to take the next couple of days thinking about what I really would like to do if I wanted to run my own business. In case, I don't get a phone call on Monday-Tuesday, what would I like to do to bring in the money. I'm not going to fool myself that I'm going to make something over night, but I'd certainly like to spend more time on making something other than comments on other people's blog.

Ultimately, I want to move from wantabe to somebody in a lot of areas in my life.

  1. At first, I thought the idea of being a contractor was awesome. Employers like to think of you as kind of a hired gun; you come in do the job and leave. After doing it a year and talking to the other contractors and some of the people who used to be contractors, I now think of it as being a prostitute with the old joke that you don't pay a prostitute for sex, you pay them to leave. A lot of people seem ok with the idea that we are hired with the idea of being replaced and with the economy and globalization being what it is, I can't find too much fault with companies doing that. 

I'm not going to lie. I'm nervous. Today, I had an interview and it was really very difficult for me to express myself in the most positive light. The guy kept asking me questions about where I stood as far as the support structure at my last place of employment.

It really brought all those old feeling all over again.

What did I do wrong?
Why did this happen to me?
Where am I going? Who am I now that I can't provide for my family?

Despite all that I tried to find the best answers for the problems and finally I said that if they truly wanted to know how I was as a worker they can contact some of my references.

My wife says that was a good answer and I honestly believe her because the guy stopped asking questions after that and we moved on.

Last Days

Today was also the beginning of the last week working at Intel and -to tell the truth- the last month has been really difficult for me. In addition to the stress and worry of finding another source of employment, I've had to spend all of this month training the person who will be replacing me. Honestly, I've been trying to get him up and running but he's been running into a number of problems related to permissions and other little gotchas along the way.

I wish him the best and I see a lot of new and exciting opportunities for him going forward.

In the past, I've thought about becoming my own boss and running a small business where I make up the rules and direct my energy and focus on something that I enjoy. True, starting out, I would probably have to submit myself to the whims of whatever customers I'd potentially have, but I have a desire to have more control over my career. Not saying that people who work for others don't have that kind of control, so much as to say that I've met more than a few people who want have expressed thoughts of "why did they do this or that" at all the companies I've been at1.

Recently, I've come across a job posting for a programming position at Intel and wanted to apply for it. If I get selected for an interview and get past that there is a programming test with a catch2...

... IF I FAIL, not only will I not get hired. I won't be able to interview with Intel again for an undefined time.

Now, I understand why Intel has done this there are a lot of people out there looking for jobs who look good on paper and may do well in an interview. How do you reduce the amount of people you have to look at if there is a chance that someone who bubbled up from the heap comes back?

It is making me pause.

But my final thought is, I could apply and not get the job or I could sit here and do nothing garuntee I won't get it.

  1. I know that sometimes this is because the people running the company have a wider vision then those in the the trenches. Still, we shouldn't blindly trust that the ones steering the ship can see the reefs below. 

  2. From a little birdy.