Wicked Features

2025-11-21


What I call wicked features in software engineering are features that horizontally interact with all your other features.

For example: say that you're building an app, it currently only works on your phone, but you want to add a "web client" feature, so that it works from a laptop browser. Now you have to change everything to support multiple clients and a web stack. For every existing feature you must answer and implement: "how would this work on the web?".

Another example: you are building an app that is targeted for consumers. It's B2C. But leadership wants to expand into the B2B market, so now you have to build a client for businesses. For every existing feature you must answer and implement: "how would this work on the web?".

Non-wicked features don't interact with other non-wicked features. A non-wicked feature is a vertical slice of the app. For example: if you're building an app with an accounts profile page, you could add a new feature to allow users to make the background of their page their favorite color.

Be very careful to identify wicked features when requirements arrive. You'll need to put a lot more work in for them than non-wicked features.

Sources

Probably from Hacker News at some point. Re-found: recently.