The Pitfalls of Blindly Following (self-called) Software Engineering “Gurus”

David Garcia
3 min readJul 24, 2023

--

Expertise and the Illusion of Knowledge @ theness.com

As a software engineer, I’ve often encountered articles and talks that confidently present specific methodologies or opinions as the ultimate truth.

However, my perspective on mindlessly following such sources drastically changed when I met experienced programmers who challenged these prevailing beliefs. This led me to question the credibility of these individuals and their approach.

In this article, we will explore the significant problem caused by unquestioningly accepting anyone’s writings or talks without considering the appropriateness of our projects or the potential dismissal of well-established methodologies advocated by software engineering titans like Robert C Martin (aka Uncle Bob) or Martin Fowler.

The Illusion of Expertise

One of the main issues with mindlessly following (self-called) software engineering gurus is the assumption that their expertise guarantees the correctness of their ideas.

While these individuals might possess extensive knowledge and experience, it’s important to remember that software development is a complex field with diverse requirements.

No single person can be an authority on every aspect of software engineering. Relying solely on their opinions can lead to narrow thinking and a limited understanding of alternative approaches.

Context Matters

Every software project is unique, with its requirements, constraints, and objectives. What works well for one project may not necessarily be the best solution for another. Mindlessly adopting methodologies without considering the specific context can be detrimental.

Evaluating an approach’s relevance and suitability is crucial before incorporating it into your projects. Contextual factors such as team size, project scope, time constraints, and technology stack should influence your decision-making process.

The Evolution of Recommended Practices

As Software Engineers, we should always avoid the misconception of “best practices” and use the “recommended practices” terminology instead.

Software engineering is an ever-evolving field shaped by continuous innovation and discoveries. Methodologies considered cutting-edge in the past might no longer be the most effective or efficient choices today.

Pioneers like Martin Fowler and Uncle Bob have made invaluable contributions to the industry, but even they acknowledge the need for adaptation and improvement.

Mindlessly adhering to outdated practices can hinder progress and prevent the adoption of more refined approaches.

Diverse Perspectives:

The software engineering community comprises diverse individuals with unique experiences and viewpoints. Limiting ourselves to a single source of information denies us the opportunity to benefit from alternative perspectives and fresh ideas.

Engaging in discussions, attending conferences, and participating in open-source projects can expose us to various opinions and encourage critical thinking. Embracing diversity within the community fosters innovation and prevents stagnation.

The Power of Rational Skepticism

Instead of mindlessly accepting or rejecting ideas, cultivating a habit of rational scepticism empowers us to question assumptions, challenge prevailing beliefs, and make informed decisions.

We become active participants in the decision-making process by critically evaluating the rationale behind methodologies and weighing them against our project’s requirements.

This approach fosters intellectual growth and encourages us to learn from others while developing our unique insights.

Mindlessly following the writings and talks of (self-called) software engineering gurus can lead to missed opportunities, outdated practices, and a lack of critical thinking.

While we should value the expertise and contributions of industry pioneers, we must also recognize the importance of questioning, evaluating, and adapting methodologies to suit our specific projects and contexts.

By cultivating an open mind, embracing diversity, and engaging in rational scepticism, we can confidently navigate the ever-changing landscape of software engineering and drive meaningful progress.

Further reading

--

--

David Garcia

Senior Software Engineer, Backend, NodeJS & Symfony developer, workaholic, passionate for new technologies and OSS contributor. https://linktr.ee/davidgarciacat