World Congress 2021 Jun 28, 2021

Antipatterns - nemesis of software development

Mustafa Toroman

Is a big ball of mud or toxic leadership silently killing your software project? Discover how to eliminate destructive antipatterns before they paralyze your engineering team.

Pause
Mute Enter Fullscreen
#1 about 3 min

Introduction and definition of software antipatterns

An overview of patterns versus antipatterns and their historical origins.

#2 about 1 min

Overcoming analysis paralysis in software projects

How overthinking and attempting to predict every scenario stalls development progress.

#3 about 2 min

Avoiding the bicycle shed effect in project discussions

Why teams waste time on trivial issues and how to focus on core problems.

#4 about 2 min

Managing a unified vision to prevent design by committee

The importance of strong architectural leadership when incorporating diverse team inputs.

#5 about 1 min

The dangers of using bleeding edge technologies prematurely

Balancing the desire for cutting-edge tools with the need for stable maturity.

#6 about 1 min

Dropping boat anchor code to clean up legacy systems

Identifying and removing unused legacy components to maintain clean source code.

#7 about 2 min

Handling profitable products to avoid the cash cow trap

Strategies for ongoing investment and innovation to prevent sudden obsolescence from competitors.

#8 about 1 min

Prioritizing immediate needs over building the cart before the horse

Keeping startup and MVP development grounded by focusing on immediately usable features.

#9 about 1 min

Recognizing logic failures in escalation of commitment

Acknowledging past mistakes quickly instead of persisting with failed project decisions.

#10 about 3 min

Toxic management styles that harm development teams

How micromanagement, mushroom management, and seagull management demoralize software engineering teams.

#11 about 2 min

Evaluating career transitions and the peter principle risk

Why promoting top developers into management or architecture can sometimes backfire.

#12 about 3 min

Breaking down team silos and overcoming group thinking

Strategies for integrating isolated departments and preventing echo chambers in long-serving teams.

#13 about 3 min

Surviving death marches and understanding delays via Brooks's law

The reality of failing projects pushed past deadlines and why adding resources slows velocity.

#14 about 2 min

Guarding project quality by controlling scope creep

Understanding how adding features affects cost, time, and ultimately product quality.

#15 about 3 min

Avoiding wasted effort with overengineering and gold plating

How attempting to predict future scenarios and adding unnecessary polish detracts from core requirements.

#16 about 2 min

The damage caused by presenting smoke and mirrors

Why mocking up unimplemented features for demos creates unmanageable technical debt.

#17 about 4 min

Refactoring architectural messes like the big ball of mud

Identifying unmaintainable structures such as lava flow, spaghetti code, and lasagna code.

#18 about 2 min

Diagnosing abstraction inversion and circular dependencies

Exposing internal functionalities explicitly and preventing tightly coupled package failures.

#19 about 2 min

Distributing logic to fix god objects and busy waitings

Preventing logic bottlenecks, useless pass-through classes, and continuous resource-consuming polls.

#20 about 2 min

Implementing robust logic to replacing coding by exception

Structuring general exception cases rather than handling each error manually or hiding error messages entirely.

#21 about 2 min

Balancing variable management between hard and soft coding

Utilizing database configurations appropriately rather than embedding assumptions in source code.

#22 about 4 min

Cultivating code comprehension over cargo cult programming

Understanding architectural decisions versus blindly following patterns or copy and pasting snippets.

#23 about 3 min

Exploring right tools to solve the golden hammer effect

Choosing technologies based on the project rather than familiar tools, while managing dependency versions cleanly.

Matching moments

5:00 min

Navigating complexity and anti-patterns in modern software architecture

Mihaela-Roxana Ghidersa · LIVE

2:20 min

How the inevitable march of time breaks software patterns

Peter Kröner Peter Kröner · WWC 2023

4:10 min

Preventing developer burnout by avoiding toxic productivity trends

Katja Träumner

3:40 min

Identifying core challenges in modern software development

Markus Eisele Markus Eisele · WWC 2024

4:11 min

Applying targeted practices to reduce waste and technical debt

Tobias Modig · LIVE

1:53 min

Reducing accidental complications in software architecture

Nadeen Hussein Nadeen Hussein · WWC 2024

Upcoming sessions on this topic

Open session

World Congress 2026 North America

Designing APIs That Survive AI Agents at Scale

Phani Pendurthi

Mastercard, Principal Software Engineer

Phani Pendurthi
Open session

World Congress 2026 North America

When Humans Stop Writing Code: Rethinking Languages, Compilers, and Responsibility

Simon Auer

Organizer of flutter vienna meetup and CEO of marqably

Simon Auer
Open session

World Congress 2026 North America

The Broken Rung: How AI is Rebuilding Software Development from the Ground Up

Tomislav Tipurić

Chief Technology Officer, Nephos

Tomislav Tipurić
Open session

World Congress 2026 North America

Your Brain Is Lying to You: Cognitive Biases in Development

Kate Astrid

Senior Product Engineer

Kate Astrid
Open session

World Congress 2026 North America

Practical Threat Modeling for Software Developers

Mudassir Syed

Lead Security Software Engineer

Mudassir Syed
Open session

World Congress 2026 North America

Agentic Drift: keeping pace with your agents

John Coghlan

Senior Director, Developer Advocacy at GitLab

John Coghlan