Three developers—The Good, The Bad, and The Ugly—each handle change in their own way. What does it take to become The Good, to ride off into the sunset with the gold?
Change is inevitable. Time is all we have and it's constantly moving on, transforming the world around us.
Everything is constantly changing, and web development is no different. Consider this awesomely-alphabetized list of popular tools that didn't exist in 2005:
And who knows what this list will look like in another 15 years. In 2034, there will be a new (long) list of tools that we can't live without. And yet, right now, those tools don't even exist.
There is no comfort at the top when it comes to web development. But, while we know change is inevitable, it's not always easy to deal with. There can be a significant investment of time, energy, and money to learn any one of the tools mentioned above. To simply discard one tool in favor of another can feel like abandoning all the effort put into learning.
But I don't think that's how we should feel about change. And that's why I want to talk to you about three developers—The Good, The Bad, and The Ugly—and how each of them handles change. But, for the sake of story, let's change the order—The Bad, The Ugly, and The Good—even though (I know) it doesn't have the same sort of ring to it.
The bad developer is resistant to change. They learned something once and they want to stick with that because that's what they know. They feel efficient and comfortable with that language, tool, or framework, and deviating from that thing means the process of writing code will slow down until they learn the new thing, and that's frustrating.
The bad developer is at risk of using technology as its support fades.
The ugly developer doesn't just accept change, but seeks change with an undisciplined desire. They never really stay comfortable with one particular language, tool, or framework because they are always moving on to the next best thing. And we all know there's enough out there to try something new on every project without ever running out of new things to try. While the ugly developer claims to be an expert at many languages and frameworks, they may not be very good at any of them because they haven't spent enough time in any single space.
The ugly developer is at risk of using technology before its community of support is established and grounded.
The good developer accepts change. They understand change in the web development world is inevitable. They are willing to try something new in hopes that it could be better in some way, whether that's developer experience, speed to market, application performance, or any other among an array of improvements. The good developer is also willing to accept that learning is always valuable—that moving on to something new doesn't mean they've wasted time and effort. Education is all part of the process of becoming a better developer.
The good developer takes a balanced approach to new languages, tools, and frameworks. They know which tool(s/) to use for each project. They are measured (eager, but patient/) in discovering new tools, and understand when it's appropriate to use those tools in production.
On the flip side, the good developer understands when it's time to leave something behind. They understand technology grows stale and better approaches emerge. They see the value in their past education and will use what they've learned to learn the next thing faster.
I've spent much of my development career as The Bad and The Ugly. Especially when I was just starting out, it was difficult to move on from something I had learned, knowing it'd feel like starting over. But it was also super enticing to learn about and try new things, even if they weren't really ready for the production market just yet.
It takes experience to become The Good, but it doesn't come naturally to everyone. It's acceptable to spend time as The Bad and The Ugly while getting ramped up in your development career. It makes sense, too—your code will be bad and ugly (just like mine) as you learn so many new things so quickly.
But, eventually you will become The Good. Embrace that. Thank your past self for investing the time to learn the tools you've put in your toolbox. And take that education into the next thing you're going to learn. Know that in the developer life, you are always a student. The more you can learn, the better-equipped you'll be to make good decisions about what, when, and how to move on to new technology.
You'll be a good developer.
A handyman (or handywoman) has a toolbox full of tools for any job that comes their way. What should be in your toolbox? And when should you open it?