There seems to be something deeply effective about setting arbitrary constraints. Obvious examples abound: haiku, twitter, 80-char code, screenplays in fixed-width Courier, 25-minute pomodoro, text-only man pages. Also, the metronome of practicing music (cadenzas don't count), the fixed 8 hour workday, the 12-tone music temperament..
I've wondered what a piece of software could look like with each function/codeblock written on 1 index card each. Linus seems to prefer one-page functions for C, but I like the extreme of the index card.
My first CS teacher in high school required index-card size functions (actually procedures because it was Pascal). It's helped me immensely over the year, because those 5-10 line functions end up growing into 100 line behemoths as features get added.
Starting with smaller bits gives you a longer mean-time between refactorings.
I've wondered what a piece of software could look like with each function/codeblock written on 1 index card each. Linus seems to prefer one-page functions for C, but I like the extreme of the index card.