I am a QA Automation Engineer working for a IT Company. I usually do only automatic tests in JUnit or Selenium, which I say I'm pretty good at. Keeping the story short, couple of months ago my boss thought it would be a great idea to have me work under a developer teamleader to learn how to make automatic tests more efficient.

Most of my tasks were that , just automatic testing, nothing really different from before, just a bit harder which was fine. Besides those tasks I have received a programming task. Now, I did accept the task beforehand, but it was never mentioned to me how hard the task would be for me considering I have never done programming. It was merely presented to me as a JUnit test which I had to only use already created methods by other programmers, but after all I found out that I have to do some programming besides the JUnit test.

I have been trying my best at it for the past 2 weeks, but it just seems out of my league and out of my knowledge in any way I try to approach it. There's about 6 weeks left until the final release and I do not know how to proceed further with it.

I know it won't look good for me saying that I am not able to do it, but it also wouldn't be good to keep the task even more weeks without accomplishing anything . Any suggestions on what should I do? Should I tell this temporary teamleader or talk with my boss about it? Thanks

  • 11
    You should talk to your team leader as soon as possible. It does not look bad not knowing things. Especially things you are not hired for. What looks bad is an employee not being proactive in seeking help. It seems your boss understood this would be a learning process for you. He wants you to understand the development side of it a bit better so you can write more efficient tests. Or do I understand the reason wrong why you became part of this development team? – Jeroen Feb 6 '18 at 7:54
  • This was the reason indeed, of becoming better at writing automatic tests, that's the reason my boss lent me to this other team, not to learn programming. Should I talk to my boss or to the teamleader of this developer team first? – Robert Curetean Feb 6 '18 at 7:57
  • 1
    Is it possible your superior is fully aware that your task is on something you have never done before, and they're actually expecting you to ask questions about it? If you accepted the task and have been working quietly for the past two weeks, your superior might get the (for now, mistaken) impression that you're doing just fine. – user34587 Feb 6 '18 at 8:33
  • 2
    Automated tests written in a programming language are production code, too. You're just solving different problems as the regular developers. – simbabque Feb 6 '18 at 13:22
  • 1

You ask a loaded question, friend.

The way I see it your question is not about what you should do, but about what is expected of you to do.

I would split your question into several sub-questions.

The first part is about a team leader or project owner asking a team member to perform a task he hasn't been prepared or hired for.

Is it moral or normal?

No, it is not, IMO.

Is it usual in a lot of companies to use testers as emergency devs?

Yes. The implications here are mostly ethical and usually financial, but let's not worry about those now, shall we?

Still, in a normal Agile team I would have pushed back against the request and have it formalized as a story or an epic. Yes you'll get the usual bs that it doesn't add value to the customer, but your stakeholders are not only your customers. If a stakeholder yields value from a story, it's valid effort.

Assuming you work in an Agile team, I would try to build a story around your assignment that can be tracked, assign it valid Acceptance Criteria, split it into sub-tasks, and time box each task. It should be easier to track all your research, implementation and failures/successes in small tasks that are timeboxed. This way your manager can track progress and you can justify time spent with progress to show.

The fact that you struggled on the task alone without anyone asking questions for two weeks tells me that you either don't work in an Agile team or that no one in your team cares about SCRUM meetings. This is bad for you either way. I'd try to fix this before it gets worse. And by fixing this I mean making sure I have someone to tell I am stuck somewhere and don't know what to do, so a colleague could help me get unstuck.

The second issue with your situation is that the person that asked you to perform the task sold it short.

To you, it should have been a relatively simple task, similar to the ones you were performing before, but it turned out not so simple and not so like the ones before. This alone should have prompted you to raise the issue ASAP to the requester.

"Hello dear manager, you told me this would be nice and simple, a taste of real programming. 
It's not. What do?"

This is what should have come out of your mouth (in one form or another) at some point in time. Preferably immediately after figuring out you've been duped. I would suggest you make up for lost time and inform your manager that you were both in the wrong about the complexity of the task and do not share a common understanding of the necessary knowledge to complete it. Obviously he thought you were capable of doing it because he assumed you possess the knowledge or are able to acquire it in a reasonable time frame. Obviously you thought the same.

Obviously you were both wrong.

Fixing this problem is a simple matter of re-aligning knowledge. You already spent two weeks finding out you both are wrong. Try to figure out why he was wrong in the first place and then explain it to your manager. Was your manager mistaken about your ability to code? Was he mistaken about your ability to learn? Were you too eager to show yourself? Answer those questions and more like them and you should be able to figure out how you got here in the first place. And what you should do to avoid the situation in the future. And maybe some ideas on how to fix it (assign more time to learning, prepare informal meetings with other devs to explain how they would do it would be a couple of ideas that come to mind).

Coming to the final part of your question: What should you do. Or more accurately, what do these people expect you to do?

The person that assigned you the task might expect different things than just completing the task within the allotted time frame. She might expect your team leader to evaluate your progress, quality of implementation, ability to learn while under pressure, desire to work with new technologies and current skills. She might want to make a developer out of you, should you choose this path. She might just need an inexpensive dev committing code that will be refactored in a few weeks just to do a demo for a client.

Your team leader might expect other things. She might care about how well you worked within your team while performing the task. If you asked for help when you got stuck. If you were able to recognize possible risks and handle them in a proactive manner. Or she might expect you to fail so she can hire a real dev.

I don't know, these are just speculations. You can find out how true they are by asking either of those persons what is expected of you before you take on the task.

It's not too late to ask now, either IMO.

  • And since we're on the topic of automated testing: please don't be mad at me, but this guy thinks it doesnt exist and I agree. – BoboDarph Feb 6 '18 at 15:10

When you get assigned a task and have trouble fulfilling it, you should notify the person that assigned you that task as soon as possible. You should show a real effort to solve it on your own, though. It also helps to be able to articulate what you need/ where you are stuck. Maybe you can get a Mentor assigned to you, or get additional Research time.

Avoid any indication of "that's normally not my duty" kind of thinking. You should concentrate on getting the task done, and if you discover that you you don´t like that as a direction of your career, have that in a different talk.

Side note: If you want to be a good (software) tester, understanding programming is something you will have to learn. So be grateful you get the opportunity to learn it under paid and supervised conditions. Seems like your employer is investing into you.

  • 1
    As a tester, I must point out that your assertion in regards to my profession is incorrect. Understanding "programming" will not make you a better tester. It might teach you common error generating patterns in development but will not make one a better tester. We might not share a different definition of what "programming" is and what it requires to be successful. Secondly, even if we do come to common grounds, you do not share my knowledge of testing and what it requires to be successful. Thirdly neither possesses the knowledge of what OP is expected to "program" and "test" to be successful. – BoboDarph Feb 6 '18 at 14:02

Waiting two weeks is too long - especially as that is 25% of the remaining project time.

Ideally, you should have spent one day (maybe two) trying to figure it out alone. Make notes of what you think needs to be done, what you tried to get it done, and what problems you experienced in getting it done. If you succeed, all good - take your work to the person who tasked you and ask for a review.

Now, hopefully you've made notes.

Talk to the person who tasked you as soon as possible - tell them you're having trouble with the task. Run through your notes - this shows them you haven't been sitting on your hands all this time (I'm sure you haven't, but they don't know that). Confirm what you think needs to be done, show them what you tried and where it failed for you and how.

Sometimes, it's simple (missing dependency). Sometimes, not so simple (obscure behaviour of dependency). Sometimes, it needs a lot of thinking. Either way - you taking 15 minutes of their time for a solution or pointer is better than you spending 2 weeks being stuck.

If the tasker is not able to help (too busy) ask if another senior dev can help. If that doesn't happen, talk to your boss and explain the situation.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.