Why should you assess the “hype” in Software Development?

Written by reciosonny | Published 2017/10/28
Tech Story Tags: programming | hype | software-development | software-development-hype | hype-driven-development

TLDRvia the TL;DR App

Just as an Intelligent Investor should not follow the hype that’s going on in Stock Market because his financial investments could be in vain, you would be smart enough as an Intelligent Software Engineer not to follow the hype of latest technologies that will cost a lot of missed deadlines and budget for the client as well (or worse, render your hours of studying the new hype for nothing)!

Just as you don’t get yourself get caught up in the ups and downs of Stock Market and just focusing on the rate of inflation as an investor (oh, renewable energy is going to be the next big hype! Let’s invest on it now!), getting caught up in the sea of ushering technologies (which naturally come and go at an incredible speed!) could do more harm than good on your career and your team. Knowing to control your impulses and let your rational thinking do the decision could save you and your team a lot of time especially when none of your team knows how to set up the stack you’re trying to implement in the next big project that could potentially sabotage it due to some newer stacks not functioning very well.

I came from the back-end background of using MS technologies such as C# back in the day of developing winforms as an in-house developer in my first job. I kinda missed the simplicity of working on back-end back then. I just need to know how C# connects everything and how event handler works, as well as I just have to worry on using Entity Framework for handling my persistence layer and basically I’m good to go.

Now it’s different. Setting up everything in web applications took a lot of time. Some javascript framework versions are introducing lots of breaking changes. It’s almost impossible to ship the products at the scheduled delivery with all these tedious setups!

Whatever your reasons are in following the latest trends and hypes in Software Development, I’m pretty sure 99% of the reason is because it’s “cool”!

Despite of the warnings of not just simply jumping from one tech stack to another, especially when you don’t know anything about it yet. I’m sure you’re still gonna jump to see what this new “hype” is all about.

So what I did in this article is provide appropriate solutions for each problems in jumping in such hype(or new/cool tech stack you’re planning to explore and jump in) in any event you still try these out in your new project.

Anyway, without further ado, here are the reasons why you shouldn’t just simply follow and better assess the “hype” first in Software Development:

Following the hype could be a recipe for disaster than increasing efficiency

Some “hype” cycle application development

Following the hype might lead your team in unnecessary disasters and delays in project delivery than increase their efficiency. Thus, it is not a good idea all in all to let the latest trends and hypes drive your team in important and critical decisions unless if your team is composed of passionate developers who can adapt quickly in trying those stacks out.

Just because it introduces a lot of “cool” features doesn’t mean you can simply jump your team in the sea of uncertainty without even trying those one out. Remember, you have no evidence whether you need those features in the first place as of the moment.

Solution: Choose specific stacks of your liking, forget the rest. Stick with it FOR A LONG TIME

Researching and hacking some tech stacks you want to use first could be the smartest move you can do as the lead developer. Even save your butts in future disasters in the long run.

If you want to follow the latest trends and hypes of technology stack as Web Developer, carefully choose the stack you’re going to use. And stick with it for a long time. Almost no developer existing today makes use of almost all tech stacks that exist as we speak. You only have limited time and as short as 24 hours per day. Make use of your time wisely.

Front-end JavaScript frameworks - GitHub Collection_While the number of ways to organize JavaScript is almost infinite, here are some tools that help you build single-page…_github.com

In web development nowadays, we have bazillions of frameworks that we don’t know how they get this many in just a short period of time. Or if it was really necessary to reinvent the wheel that does the same thing at all(thanks for a lot of trouble in web development, javascript!).

What ultimately matters is if it helps you find the ideal job you’re aiming for, or it helps you build better Software products for your next MVP in your startup or on your own, then you’re better off picking the latest hype out there. For example, if your ideal job is to use ASP.net core along with Angular 4, then focus your attention and time on that stack. Never lean on other stacks until you reached a certain degree of mastery and built products around that stack.

It is always a mistake to jump from one tech stack to another without actually producing an output the companies or startups were yearning for you as developer. If you just wanted to try those tech stack up for the sake of hobby, I suggest you find another stable profession and do programming as a hobby on the sides.

Following the hype could introduce potential issues that will be too costly and time-consuming

http://www.ihaveapc.com/

Since your team just started exploring the tech stack you’re planning to use (say, new cool frameworks like React with Redux and Node.js), and your team’s tech stack is more on ASP.net side, you could’ve introduced some issues that neither of your team can solve since their stack is different than what they used to do.

I’m not dismissing the passion and desire of your team to use these newer cool stuffs they can hand themselves on. But you must also consider the current project you’re doing and it’s constraints.

Solution: Research some critical features you’re going to implement ahead of time using that stack. Or stick with the current stack of your team

Try to know whether it will cause some obstacles in the features you’re trying to build. Or the smartest decision you could make is just stick with the current tech stack your team is comfortable with.

I’m a big believer and advocate of change. Believe me. But in the quest for change, you must also have passionate team who desires the change you’re trying to achieve. As they say, “It takes team to a tango”(it could have been ‘two to a tango’ though).

Try to consult this with the team first before making such decisions, or are they willing to cooperate with the tech stack you impose upon them.

The learning curve might not be worth it at all

Wrong frameworks? Exactly! Credits to http://www.flubu.com/

When I was starting to learn Angular 4, I got pretty confident that it was easy to learn and apply in my personal projects that requires little to no effort to code at all just how I learned their AngularJS like a breeze.

The problem started when I struggled in the most trivial of things when trying to add a global event to the component and accessing the textbox of another template from bootstrap-ng built for Angular 4. I didn’t knew it was a struggle to just manipulate all those stuff that it requires you to learn some things such as ViewComponent, ViewChild, TemplateRef. I just want a simple DOM manipulation and attach a global event to one of my controls just as how I attach global events using plain old javascript:

document.addEventListener('click', function(e) {alert(`I'm done here!`);});

Like what the heck has happened to Angular these days? I have no problems with them using TypeScript, but the amount of time I needed to learn this framework is just plain ridiculous. They literally got stricter and it feels like there’s no trace of javascript when I tried to use Angular 4 anymore.

Update: It was my fault though. It’s not Angular’s fault. I just didn’t get the general philosophy of the design behind Angular since I come from the background of jQuery that DOM manipulation was sort of a breeze to do. Once I got the hang of the full MVC framework, I understand and continued my learning pace as much as I can. At the end of the day, frameworks standardized the structure you have to use in the project. In the long run, this can save time rather than waste. Good thing about fully structured framework is you don’t need to reinvent the wheel and restructure everything on your own. There’s a lot of design considerations if you want to structure javascript on your own such as: Dependency Injection, SOLID principles, Domain-Driven Design, Design Patterns, Microservices, Functional Programming, RESTful services architecture considerations….and so on and so forth. *sigh*

So this is the problem when we’re trying to learn the “new, cool” stuff. The learning curve and time to spend on some frameworks might not be worth it.

Solution: Play/Hack around with the tech stacks first. See how they play and mix well with each other. And how much time do you need to grasp the basic fundamentals of the new hype

While I go back with my previous advice: Do the due diligence to research the tech stack you’re going to use for the project, it’s also important to play around with tech stacks you’re gonna use with the team so that you get to discover the advantages and disadvantages of each of them. Nothing beats experimenting it on your own than just simply learning and researching in other people’s findings.

It’s important, and efficient way to discover some breaking issues that might hamper your team. This will save you an extra time of actually implementing the framework you’re planning to use in your next release and prevent you from making the worst decisions in the team.

Of course, you can’t find out the pros and cons of each stack by just simply playing around with them within 24 hours. There’s never enough time to discover them until you get them implemented in the real-world project and see how they play well. But at least you get the feel if it’s worth taking risk or pointless at all. After all, it’s how we end up with bazillions of frameworks altogether in web nowadays. It’s getting more and more complicated.

Lastly, try to estimate the average timeframe you need to master the stack. If the stack will take you more than the estimated timeframe you have to grasp the basics to apply in a project, then I think it would be wise to try other newer stacks you wanna try out that suits the project and your team.

Whenever you feel tempted to jump from one stack to another and you just feel like you’re not making any progress in what you’re doing because you constantly follow the “hype”, try to pay attention to these things:

You learn to code to solve real-world problems through technical skills

It’s obviously to solve problems that can’t be solved alone by people.

So now, how does technology play a big part of solving it? In terms of communication? In terms of entertainment? In terms of storing our memories through photos? What’s the main role of technology? Where does technology fit in?

Sometimes we get a little bit misleading upon the things we do as a developer. Sometimes we learn new programming languages because “it’s cool” without putting any emphasis in the value it brings to the table. I also am a victim in an endless spiral of tech advancement in such a way that I wanted to learn new programming languages that’s “hot” in the market.

Finally, I got tired and that became the turning point of why am I learning programming languages everyday. Why am I doing this anyway?

Sometimes I’m compensating my love of learning new skills in programming through solving real world problems. Something that could bring value to people. It might be an app that could improve their workflow or enhance their thinking, or some app that enhances their experience of doing business. Either way it should be solving some of the world’s existing problems.

Sometimes you have to be skeptical on some new quirks or features the programming language of your choice has. For example, what’s the purpose of asynchronous in solving real-world problems? What does multithreading or non-blocking operations solve? Where do you implement it?

You learn them to provide for your own and your family needs financially; as well as make an impact

You also need to take a look whether the tech stack you’re trying to learn has ROI or a good amount of Return of Investment since you’re basically using your time to learn all these things. You must be compensated accordingly in the things you’re trying to invest into. For instance, are learning these new tech stacks will allow you to find jobs and projects that you like? Are learning these will give you a sense of financial stability in the long run? How many gigs can you catch learning these new tech stacks? And how much impact are you gonna make in learning them?

Realistically speaking, you learn them to survive. Fill in your basic needs. It’s the most fundamental thing you need to think of.

You learn them not just for trying out the new hype, but to look at the bigger picture

While I know for certain that we have different reasons for learning how to code. For the people who learn for their professions, take note that we’re responsible in what we build and what we write.

While making your profession as a hobby seems not bad at all to make it more exciting as well as entertaining, sometimes we need to limit and need to reflect whether you’re solving anything or nothing at all.

We even need to look at the bigger picture as what business models are applicable in every app that we do, or what features are useful to people. We need to take a look at it and bring value in every critical decisions we make.

If you love my stories, follow me on Twitter and let me know your thoughts!

Sonny R. Recio (@YellowFlashDev) | Twitter_The latest Tweets from Sonny R. Recio (@YellowFlashDev). 10% Entrepreneur / Fitness Junkie / Software Engineer / Full…_twitter.com

P.S. Here are some reference links to prevent you from always riding the “hype” train:

Hype Driven Development_Software development teams often make decisions about software architecture or technological stack based on inaccurate…_blog.daftcode.pl

Things I Wish Someone Had Told Me When I Was Learning How to Code_And what I’ve learned from teaching others_medium.freecodecamp.org

Please don't learn to code_There's an idea that's been gaining ground in the tech community lately: Everyone should learn to code. But here's the…_techcrunch.com

Don't Get Attached to Programming Languages | Mike Cavaliere_On programming languages & frameworks It's ok to love the framework or language you use the most. If Python is your…_mikecavaliere.com


Published by HackerNoon on 2017/10/28