Before you write your first line of code, you write your tests. Before you write those tests you think of the behavior of an app and write your acceptance tests. Before that you should have also written the README Nevertheless, you may still have this nagging feeling you're doing it wrong. I've been there, and I've discovered the remedy:
Before you do all those things, you should first make a conscience effort to
In STFUDD or "Shut the Fuck Up Driven Development", you don't write
anything at first. You just STFU.
Not only must you stop yourself from talking to the people around you,
but more importantly you must stop
all those other voices in your head from talking. The voice that
says "do it this way" because its the latest
and greatest. The voice saying "you can't do this" or "that
isn't profitable" or even the voice saying "that IS profitable!".
They all need to STFU, too.
If the Buddha stands in your way to enlightenment you must slay him. Likewise, if a methodology stands between you and your masterpiece it must STFU.
There's a deep reason for this: for everything we know there exists a context in which that thing we know is wrong.
For the math nerds:
Given T(x,y) means "Truth of proposition x in context y"
∃ {C(x) : x is a context}
∃ {K(x) : x is a thing I know}
∀ K(x) ∃ C(y) s.t. T(x,y) is FALSE
(For all things (that are things I know) there exists a Context in which that thing I know is false).
So there it is in cold, hard logic: everything you know is wrong and by corollary everything everyone knows is wrong, at least some of the time.
That is precisely where STFU Driven Development shines- the way STFU Driven Development improves your work is that it reminds you we're all full of shit. And that's why you test. That's why you write a README.
STFU Driven Development also ends arguments. Instead of "who's right?" its "How quickly can we Shut the Fuck Up and write something?"
So that's it. Next time you want to do something new and amazing, remember
that while our computers are relatively new our brains relatively aren't.
If you're going to do it right you need some calm, you need stillness, you need quiet.
And you bet your ass you
still need tests and documentation if you want other developers to trust
your code.
So that moment before the moment before you start your next project take a minute and remember the way of STFUDD: Shut the fuck up and write something.
Check that - STFU and write something beautiful. Something you want to look back on and smile at because in a way, it is smiling back at you. That's your signal. The rest is noise.
c2