The Developer Marketing Game
In addition to that, there are new platforms, iOS, Android, Windows, Linux (Pick your flavor), and now Rasberry PI, IoT devices, Arduinos, Smart TVs.
It creates a sense of burnout. We get overwhelmed by all the technology that we feel the need to keep up with. What if we stopped, what if we got really good at a technology that does what we want? I'm not saying we should all be assembly coders, but rather than jumping on the latest trend, the next easiest thing, and simply get great at one technology that handles what we want.
Great example, I can write c# code that will handle 100% of webapi cases, it can scale easily on Azure, and it is an api, so it can handle any front-end framework out there. Why should I move to Python or Node or Java?
The better example, I love React and then got introduced to Vue. Vue is amazing but why? I can do it in React, why angular? I can do it in React? Honestly, why React? I can do it in Vanilla JS.
The main reason that I keep hearing on why switch to "your favorite framework" is, "it makes it so much easier and is more maintainable". Is it? Is it really easier to learn a new framework that may go away in a year, or have features deprecated in 3 months, is that more maintainable?
How much easier do we want coding to be? I have seen developers move from objective C, to Swift, to React Native to Xamarin back to Swift to Ionic back to Swift. The time they spent learning all of that, they could have released 3 products.
What is the actual goal of development?
The goal of software development is to deliver software that solves a problem.
The next goals are to make the software secure, easy-to-use, and maintainable. (Not necessarily in that order). If you do that, in any language, you are actually contributing to the greater good of software development.
Enter conferences with eyes wide open
As a developer, I never realized how much I'm marketed to in very egregious ways. We attend conferences to network, learn new techniques, and learn about new technologies. We then return to our company with a new drive and passion and how we need to redo everything in this amazing new technology. NO WE DON'T! What we have is working well, don't break something that is working.
Conferences are really fun and I love meeting the people there and watch how they use their tools in a coding scenario (as contrived as it is for demo purposes). Enter those conferences with eyes wide open. Those vendors are not showing you the best technology, they are selling you THEIR technology.
Let's talk about the cloud. What is it really? Can you define what the cloud is? Isn't it just a bunch a servers somewhere eventually? Well with the virtualization of everything, it may not even be a real server, it may be an instance on a real server that spins up so fast that you think it is real. What about the original host providers? Hostgator, BlueHost, and even GoDaddy. Are they selling the cloud? I'm sure that is a marketing ploy to some, but the real cloud providers are the big 3 - Amazon, Microsoft, and Google. That's pretty much all you will hear about thanks to amazing marketing. Do you even need the cloud? Or are you jumping on that to say you are supporting PaaS or IaaS in a cloud environment with dynamic scalability for global support across a cloud-backed CDN. How awesome does that sound? Translation? We host on Azure and set a threshold for scaling.
Marketing people have so many buzzwords and they infiltrate areas you think are "pure", they are in reddit talking about the latest buzzword, they pay "influencers" to write blog posts about their technology, they create campaigns to create a "technology awareness" which leads to higher adoption rates, and make you feel like you NEED that technology. Angular 5 is out now, what happen to angular 1,2,3,4? Most places I know are using Angular 1.x still. Are they missing out? It is getting insane.
Stop chasing the latest and greatest, figure out what the problem is you are trying to solve, and use the technology that is correct. I wouldn't recommend building a website in Cobol, that is what HTML is for, and build mobile apps for iOS in Swift and for android use Kotlin. That's it. For webapi, I love C#, you can use Python, Java, or even Go, but don't jump on a bandwagon because of some reddit article, some facebook post from someone you admire. Do what is right and stop selling us additional technologies that we don't need yet.
Robotics is a whole different world and some of those technologies are new... because they need to be.
Project Management is another soapbox discussion, but I've written enough about Agile and Common Sense in a previous post (you can see it here)
Go build something amazing!