Overengineering: The Developer’s Syndrome

  • By Boris Eibelman
  • 12/22/2020
  • 0 Comment
  • 3458 Views

I’d like to start with what I call the “developer’s syndrome.” This is basically loving tech, innovation, and new trendy tools. Sounds harmless, huh?

But it isn’t. Don’t misunderstand me; I’m not saying that developers shouldn’t fancy the cutting edge; it’s their essence, and often the reason they have become programmers in the first place. But using the latest trends shouldn’t be the whole point of developing a digital product for a client.

The number one objective of developing a site or app is its utility. A working web app should do its job in a fast, accessible, and secure way, aiming to create a seamless user experience. But sometimes developers, perhaps because of their passion, can lose focus and put their own “developers’ experience” ahead of the user’s. This is, of course, a mistake: users’ and clients’ needs should always be the top priority.

 

Unpopular Opinion:

Newest isn’t always best.

This is precisely what happens with the newest programming languages and frameworks, which are, of course, fantastic and highly usable for some digital products. But let’s face it: even though they are shinier and more enjoyable, they are not always necessary.

Remember the base technologies? I’m talking about PHP, Apache, MySQL, and jquery. What about native javascript over the HTML and CSS? They don’t sound as trendy as others, right? But they provide quality results for clients. It’s true, Angular, React, Vue, Laravel, Symfony, Webpack, Gulp, Babel, and other kinds of technologies are great and add lots of value through cleaner code, documentation, and maintenance. Libraries allow us to save time by reusing code. Still, these newer programming languages often include plenty of unnecessary functions we don’t really need to make users’ and clients’ happy (in fact, they might slow the products’ performance).

So let’s say we’re creating a landing page or any simple web. Do we need to set up a React.Js project with a custom Webpack configuration, tests, styles libraries, libraries for a simple function, libraries for SEO, and sitemaps, just to show one page of content? No, we honestly don’t.

 

What are the pros of using the newest technologies?

Base technologies are often the ones you should be using. But that doesn’t mean you should discount the newest technologies. Let’s go through some of their pros:

1. More time-efficient and agile development
2. Easier to find libraries or code that cover the functionalities you need to develop
3. More convenient for collaborative development
4. Potentially easier to maintain
5. Good development practices using patterns

How should you face your “Developers’ Syndrome”?

1. Only create code that addresses the specific challenges you face.
2. Look for simple solutions.
3. Only switch to the newest and trendiest technology if it truly adds value to the end product.
4. Before defining the technologies you’ll use for a new project, understand the projects’ scope, and discuss your alternatives with other teammates.
5. Stick to the requirements.
6. Make sure your code is as simple and clear as possible.
7. Don’t use extensive libraries for simple solutions. This will affect UX by slowing down the site’s speed. Libraries like Bootstrap are sometimes used just for a single feature which can be programmed in just three code lines.
8. Only implement best practices if they help you achieve your objectives.

All in all, even though it’s essential to keep up with new technologies, it’s also fundamental to understand the clients’ and users’ priorities and the scope of the project before making any decision. And it’s key not to underrate base technologies, in the end, they are the foundations of everything we can build.

If you’d like to learn more about how to create your own solution or develop an MVP for your startup idea, please reach out to our experts.