📜 ⬆️ ⬇️

Hype driven development

image

Software development teams often make decisions about the software architecture or technology stack, based on erroneous opinions from social networks and everything that is more fashionable than well-studied, without a serious assessment of the possible impact on their projects. I call this trend “Hype Driven Development (HDD)”, I consider it harmful and advocate a more professional approach. Let's see how things are going and what we can counter.

New technologies - new hopes


Have you met with like? The team chooses the newest, hottest technologies for use in the project. Some of them are reading a blog post, a trend on Twitter, or have just come from a conference where great things have been said. And now the team uses this brilliant technology (or a new paradigm of software architecture), but instead of the promised high speed of work and high quality of the product, they get in trouble. The pace of work slows down, motivation disappears, difficulties arise with the release of the working version. Some teams get stuck at the bug fix stage instead of adding new features. They need "a couple more days to clean up everything."

Publication support is Edison , which is developing an SDK for tracking geographic objects and a system of online accounting for the Furniture for Home store chain .
')

Hype driven development


Sources of such hyip may be different:



HDD - a sentence that programmers make themselves


The problem is that bad decisions are made in the heat of passion. And the consequences can haunt the development team for months and even years. In the worst case, they will lead to a total edition. Which almost never succeeds.

The root of evil is the media in which the idea spreads faster than it is tested, faster than people manage to understand its advantages and disadvantages.

Anatomy of HYIP


Most HYIPs have a similar structure:

image

Step 1: The Real Problem and Solution


In some companies face the problem. The team responsible for the decision determines that the problem cannot be resolved within the framework of the current architecture or technological processes. The company creates a new framework, library or paradigm and soon the problem is over.

Step 2: Announcement, Vanity and Keywords


The team is excited to see a chance to show their work to the whole world, and now they are writing on blogs and speaking at conferences. Often the solved problem was non-trivial, so they feel pride in describing the non-trivial solution they found. The audience learns about new technology with admiration. However, the admiration of the audience does not imply that all its members fully understand what the problem was or do not go into the details of the solution.

After all, it was still a non-standard task with a non-standard solution. And for clarification, you need a little more than tweet, a couple of lines in the chat, or even a blog post. In modern media, the message may easily become fuzzy and blurred as it spreads.

Step 3: Madness begins


Shortly after the news went through blogs and conferences, developers around the world are starting to get acquainted with the new technology. And some of them, due to the vagueness of the information, make a hasty decision to use the described technology, even if it is not able to solve any of their current problems. But they believe in it.

image


Step 4: Disappointment


Despite the desperate efforts, technology does not make life easier for people, but, on the contrary, delivers a lot of additional worries - a huge amount of rewritten code and time spent on learning. The work team is slowing down, the management is extremely dissatisfied. People feel cheated.

Step 5: Implement!


Finally, the development team, reflecting on the past, is aware of the purpose of the technology and in what cases it will be most suitable. They become wiser ... until the next such hype.

Examples of HYIP:


Example 1: React.js




Example 2: TDD is dead due to DHH




Example 3: Micro Services




Example 4: NoSQL




Example 5: Elixir and Phoenix (or any other favorite language / interface pair)




The list of examples is endless


In our densely populated circle of computer developers there are a lot of areas where HYIP is a common thing. In the JavaScript world, new frameworks appear every day: Node.js (keywords: event-oriented programming), reactive programming, Meteor.js (keywords: shared states), front-end MVC, React.js. Give yourself an example. In the field of software development, new architectures appear: project-driven development (Domain Driven Development), Hexagon, DCI. What hype do you like most?

Fair practice


If we cannot rely on the Internet and the opinions of other people, then how can we make smart decisions? Here are some practical tips.

Test and research before making a decision.




When?




Hire the right people:



image


Translation: Sergey Danshin

Source: https://habr.com/ru/post/316668/


All Articles