What you need to build a great website is restraint.
But! The problem with working on large-scale projects with hundreds of people is that saying “no” can be political suicide. Instead, you have to learn how to say it without sounding like a jerk. You need to educate everyone about performance, responsive design, and accessibility. You’ll need to explain to folks what front-end development even is.
And that’s because the hard part is that saying “no” requires justification—even mentorship—as to why something is a bad idea when it comes to building a website.
Robin is pretty spot on about how being a “senior developer” needs to involve pushing back on “bad ideas.” I would put more emphasis on mentorship for senior devs, but this post giving attention to saying “No” is worth adding to a library on dev career growth.
Honestly, pushing back on things may be one of my top strengths as a developer. Possibly (probably) to a fault. For example, I recently shared this joke tweet in our company Slack:
Me reviewing pull requests pic.twitter.com/s4Zddh1X1Z— Ricky (@rickhanlonii) November 16, 2019
Alt text: a video of a stadium security guard barely checking people before ushering them through ridiculously quickly.
My team enjoyed it, but with one dev responding, “this is absolutely not you.” I’m proudly a pain in the ass when it comes to code reviews, flagging as many opportunities for improvement as time allows. That last bit is crucial, though. When we’re in a crunch, or the return on the time to make an improvement isn’t worth its value, I (usually) let it go, maybe with a comment for next time.
I like to think I similarly bring a critical eye to design hand-offs and scoping discussions. All are opportunities where you need to either use the experience you’ve gained to make the outcome better, or you might as well not be there.
But being a pain in the ass isn’t enough to be in a leadership position–and being a senior dev, or otherwise advanced in role, is definitely that. You also have to be able to bring a critical eye to your own work, and your decision-making. If I request a change on a code pull request and the dev responds with solid reasoning for their choice, I can’t have such an ego to keep pushing the issue. Same goes for a design review or other discussion. Being a senior dev means being an active, critical, and cooperative part of a team.
The final thing I’ll note, in addition to another suggestion to read the original post, is that pushing back is a skill. I guess that’s the whole point of the post, but in addition to knowing when to, simply understanding that you can say “no” doesn’t happen automatically. I distinctly recall my boss at 1Sky, my first job out of grad school, telling me I needed to get better at saying “no” since I was agreeing to help with too many projects.
Pushing back on ideas and requests for your time are then both crucial, and related, skills for anyone as they advance in their career. Protecting your time and the quality of the team’s work are valid pursuits, and definitely are steps on the way to team leadership all careers, devs included.