As people who work in the IT industry, our jobs often require us to evaluate and use a variety of tools and technologies on a regular basis. I would guess that all of us have our favorites that we reach for when we’re given a new task to perform. I use Linux as my desktop OS, vim for nearly all of my text editing needs, Python for my general purpose programming language (scripting and otherwise), and SQLite and MySQL for a database. When I am given a task to accomplish, I reach for the old faithful, well-worn tools in my toolbox. It’s not just that I’m proficient with them and can get the job done fastest with them; I enjoy using them. Often, our choice of tools to use goes beyond reasons of comfort and productivity and can border on fanaticism. That’s an inclination that I try to avoid. I’ll outline some reasons why I avoid this mindset as I’m going along.
As we’re trudging along, doing our normal job, evaluating some new tool or technology, we occasionally stumble across something new and different that catches our attention. It has obvious benefits over anything that we’ve used before. We quickly develop some affinity for this fresh, new piece of tech. Often, we even begin to promote or evangelize this new technology. Then we use it for quite some time, become more familiar with it, learn new features and even some warts, and the affinity remains. At that point, our attachment to it and comfort using it can become the reason we keep using it and we can lose sight of what drew us to it in the first place, which was that it helped us do our job better. When that happens, we can become so technology and tool exclusive in our thinking that we can pass over opportunities to learn and use new technologies.
I’ve probably come pretty close to being that way with the Python language and *NIX operating systems. I’ve passed over job opportunities at least partially because they didn’t involve using Python and the OS wasn’t some UNIX variant. To be fair, the language and the OS weren’t the only considerations in those instances; perceived work environment and current job situation had quite a bit to do with it as well. Interestingly, in the position that I’ve been in for the past 4 or so months, I’m finding my time nearly equally split between FreeBSD and Windows, and Python and C#. And, honestly, I’m not minding the shift as badly as part of me feared.
I had a couple of realizations that keep me positive about this job shift and interested in trying and using other new technologies. My first realization was that doing the job is not about using a tool; it’s about me. Yes, that sounds gratuitously self-centered and arrogant. But it’s true. The tool is just an instrument in my hands. I get paid, not for the tool that I use, but for how I use it and what I can do with it. The first reason that I try to avoid the technology-exclusive mindset I mentioned above is that it can keep me from exploring areas of myself that I might not have discovered otherwise. Note, I said might. You can stay on top of your game using the same tools and techology, but it’s easy to just cruise along and not give new thought to what you are doing or how you are doing it. At that point, you can become reliant on some tool and less so on yourself. My second realization is an extension of the first; with any tool or technology that we use, there are opportunities to come up with creative solutions. The hacker spirit within all of us has a drive to figure things out and creatively solve problems. Even with Windows and C#, I have to exercise that hacker within me every day. The second reason I try to avoid the technology-exclusive mindset mentioned above is that it can keep me from exploring alternative solutions that I might not have explored otherwise. This sounds really similar to the first reason. The difference is that the first deals more with who you are and the second deals more with what you do. Again, note that I said can.
So, what’s the point of this post? First, it’s to encourage diverse use of technology. There is no reason to be afraid to try new technology. So what if you actually like it and it finds its way to becoming a new favorite? Your old tool is just a tool, not a person. Next, I wanted to emphasize that your usage of technology is about you, not the technology. Your choice of which technology to use says more about you than it does the technology. You should feel good about the job you do regardless of the tool you do it with. Your accomplishment is yours. (Granted, the tool creator had something to do with it, but you were the effective means of accomplishing the task). The final point of this post is to encourage acceptance of diverse technologies in others. Yes, those Perl people are freaky (::grin::), but the hacker spirit within them is the same one that is in you. And it’s that which we should be looking to embrace. So, while I have favorites, I don’t want to “pledge allegiance” to any of them. I’ll keep trying new tech, embrace what I like and discard what doesn’t work as well. And I believe that I’ll be better for it.