Developers and non-technical stakeholders often underestimate the complexity of software development. As features accumulate in an application, complexity grows exponentially rather than incrementally.
Matt Haugey posted a popular tweet earlier this year saying that when he hears developers say "I could build that app in a weekend" he thinks of a flow diagram (shown below) which outlines the logic of when Slack's app should send a notification to a user.

Premature implementation without thorough design thinking produces poor user experiences. Slack's notification system illustrates how "seemingly simple features" demand substantial forethought to avoid creating frustrating user experiences that necessitate costly rewrites.
"Most people overestimate what they can do in one year and underestimate what they can do in ten years." — Bill Gates
This principle applies to app development, where creators often underestimate modest projects. Established applications like Evernote and Trello represent thousands of development hours — yet creators frequently misjudge their own five-screen projects as achievable in weeks.


