Humanity, for some unknown reason, is drawn to trends. Remember in the 90’s when flannel shirts were all the rage? Remember how low-rise jeans were the hottest thing around? I knew women who hated this trend; not because they didn’t like the style, but because low-rise jeans were all the stores sold. They didn’t have many options. These days, those fashions have all but disappeared. They weren’t necessarily badtrends… they simply fell out of fashion. Development of a software project can be tempted by the same kind of sparkle and pizazz of whatever is the latest development fashion. I have worked with developers who would intentionally chase whatever the latest and greatest development paradigm was; often to unsustainable results.
Finding out what doesn’t work also takes work.
It’s often that a new flashy means of development requires a lot of discovery to determine if it is actually the best way to develop software.
Me (to a “trendy” developer): “So… how would you like to approach this project?”
Developer: “Well, relational databases are not cool anymore, so I want to go with a ‘no SQL’ solution like Mongo or Couchbase.”
Me: “Hm. Okay.”
Developer: “I think the whole thing needs to be done as microserviced API calls to a java back end.”
Developer: “Then we use a middleware messaging queue like Pub/Sub, or Kafka, or RabbitMQ to connect it to the Angular front end… or maybe React. Or Vue.”
Developer: “Well, what if the APIs themselves were created as Lambda functions on AWS… or maybe Azure?”
Me: “Okay? Stop…”
Developer: “Wait… I just read an article on Ars about this new design pattern that looked interesting and I’d love to try it out…”
Me: “Please stop…”
Developer: “Then we containerize the whole system…”
Me: “Dude… seriously. STOP.”
Me: “It’s a ‘contact us’ form, brother. You’re overthinking this.”
Developers love to work in new and exciting technologies.
I know this because I’ve fallen into this trap myself. And the approach we discussed is 100% possible and viable. It’s over-architecting the application, but it’s viable. It’s also 100% falling into the trap of trendy development.
New isn’t always better. Ask any scotch drinker. Ask anyone who just saw the prequel trilogy. (Or the final trilogy.) There are tried and true, tested and proven methods for developing software. Yes, these ways adapt over time, and they grow and change, but they’re sustainable. They last. Developers can use these technologies and almost guarantee the success of the project.
So be careful chasing trends. I would hate to see your software project wearing the equivalent of JNCO jeans.