last day (15 days later) » 

16:47
103
A: I'm a web developer but I am being asked to automate testing in Selenium

josh3736Before I jump in to an answer, background about me: I've been coding for 30 years, 20 professionally in startups, and have been in roles everywhere from myself as a solo engineer to the head of a big engineering team. I don't know everything, but I can assure you the following is decently well-i...

Anecdote for your first point: My first job out of school was as a firmware engineer, basically writing an embedded operating system from scratch. I was also in charge of packaging, shipping, customs, and customer service - because I was the new guy and someone had to do it.
I concur, knowing web automaton tools like Selenium and Playwright is a very useful skill for SWE, even if you don't do frontend development for a living.
I'm curious, Joel talked about how programmers hated testing (and probably aren't that good anyways) more than 20 years ago and emphasized the need for specialized testers. What do you think about that?
@Fattie Selenium is a web tool that allows designing tests and automatic testing. I worked with it years ago when was in an Agile team. We applied TDD (Test Driven Development) so tests were really the starting point / specification of the code. Overall I quite enjoyed using Selenium. I guess it must have evolved much since then.
+1 Being asked to do something new is a compliment. They think you have the ability to learn it quickly and hit the ground running, or they wouldn't have asked. It's an opportunity; seize it.
16:47
@PasserBy When Joel talked about testing, they were talking more about acceptance and user acceptance testing, stuff that can only be tested by an actual person that understands how the product will be used. Selenium is more used to write unit testing and the like, which you really shouldn't use a dedicated tester for.
@PasserBy I hated testing when I thought that my job was to generate code. When I see my job as solving problems, testing is a mandatory part of the job. Clients don't want to see bugs; they want working software that solves their problems. But that does not mean that I see the software in the same way as the client does. So, I work with them the first few days to make sure that I see things their way.
@Fattie: To be specific, Selenium is a software library that allows you to write tests that test websites, often using a WebDriver library itself, as if you were a user using a browser. They're great if you want to write Integration and black box tests that say "Great, the server is up at <URL> - if I input this data into the text field and hit submit, the user should be able to see this at this location on the page. Do they?" In particular, the WebDriver part means that you can sometimes do this consistently for any set of browsers, with some additional annotations and related work.
@AlexanderThe1st , makes sense. I think in terms of the brouhaha at hand .. my answer is very simple, don't get pigeonholed in a field you do not want to be pigeonholed in - the field is irrelevant to my thoughts on the matter.
@Fattie: I think the main issue with why this stands out as being important here and not something you will be pigeonholed into - it's often the way to help a developer onboard onto a project, because it allows them to become familiar with how the back-end and front-end code actually interact relevant to the user. You can be a dedicated QA tester or SDET, but if that's not your title, using Selenium here is about getting used to how the tool you will be developing is meant to function. Once some Selenium work has been done, you will be doing feature development - Selenium automates tests.
"your boss wants to pay you to learn how to use Selenium and write tests" - when you get an opportunity like that grab it with both hands.
16:47
Devil’s advocate here: I don’t think you have to take all work packages eagerly. I think it’s great to be open and gather new experience, but if you really hate a workpackage you can try to tell your manager (you should probably phrase it differently) or change teams. Worst case of course you can always look for a new job. But don’t tough it out and keep doing stuff you hate for years.
@AlexanderThe1st and others - it's pointless discussing as comments are being deleted
@AlexanderThe1st your comment just above - that is hugely technically niche specific. If someone came on here and said "I engineer suspension bridges, the company that I work for also does some freeway crossover ramps. I'm being asked to work on the ramps for a year. What should I do?" The answer would be RUN AWAY. To get your foot in the door of an elite field, takes careful building, six months by six months, a track record of having done that. You have maybe five years to establish a career so you don't throw away a six month block on something irrelevant.
Laf
Laf
As a hiring manager for software developers, I'd say this answer is pretty on point. If I'd happen to find out during the interview process that the candidate will absolutely refuse any job that is not exactly in line with their career objective, I would not hire them. I know my team would not want to make an ounce of effort for someone who'd refuse a job simply because they think it does not align well with their personal goal. Being a great teammate is worth so much, I would not dare add a disruptive member in this context.
This answer feels VERY condescending. It makes a lot of assumptions about what OP is saying, and frankly I don't get most of those impressions from the question.
@Parrotmaster it's not, it's based on a very accurate experience about junior team members in any and every field of engineering (and probably everywhere else), pretty much worldwide.
@Parrotmaster it's not nearly as condescending as it probably should be. OP has chosen the name "Fullstack Geek" and then written a post whining about being assigned to work on a part of the stack. This answer is very well written and even offers a note of encouragement that OP should "Use this as a chance to knock it out of the park".
16:47
I would add to this: You can't ever move up to doing architecture (which is a core skill for any senior software engineer) if you've never done testing. A design that's high performance and easy to code is worth nothing if it is not also straightforward to verify (and maintainable, etc). That testing experience is invaluable when it comes to structuring code that needs to be tested (which is all production code). Even if someone else is going to do the testing.
3
 
6 hours later…
22:43
@Fattie: The problem here is that in your analogy, the question being proposed is "I engineer suspension bridges, the company that I work for also does some freeway ramps. I'm being asked to work on on-ramps and off-ramps to freeway ramps leading to and from a suspension bridge for a year. What should I do?". The work may seem unrelated, but it's deeply related since how it's done will absolutely affect how the suspension bridges are made.

last day (15 days later) »