Your App Has One Feature
blog.benroux.me
blog.benroux.me
Still, a program needs a guiding light to its design. It has at least one purpose, and that purpose should be the central focus of its design. That doesn't mean there can't be ancillary features, of course.
Over the next two weeks we visited dozens of Excel customers, and did not see anyone using Excel to actually perform what you would call “calculations.” Almost all of them were using Excel because it was a convenient way to create a table.
Okay, maybe a lot of people do use it for formatting tables.
But what do people who do tabular calculations use?
98% of the time, Excel.
A big block comment in common.h containing the Hail Mary intercession prayer.
For all the other things (syntax highlighting, VCS integration, debugger, test framework, compiler shortcuts), you can take away two or three of them and still have a worthwhile program.
But if the text editing part is non-existent or painful to use (think only emacs bindings to a vim user, and vice versa)? It's game over.