"A practise of developing by understanding and building on the research and works created by others"
I firmly believe that good/happy developers can use this process as well.
Processes, in my opinon seperate the good/happy developers from the bad/unhappy ones.
A process is simply a serious of steps you do to complete a given task. One task - one process. It should simply be a discipline you adpot in order to make your life easier.
They shouldn't be restricted by just being 'tools' (IDE's or frameworks). It should incorporate the following:
More than just a source control package. Improves workflow and eases in communication between team members.
I don't use one. I flip between macvim, vim and Sublime Text 2 depending on my mood.
https://github.com/swmcc/dotfiles - if you are interested...
TDD - 80% of the time
In my opinon - its a waste of time to have 100% coverage, usually.
First thing I do when looking at new code is (after the README) is look at the tests. Test code doesn't lie.. Note I said code not tests ;)
"In the zone" programming is (in my opinon) good if you have good processes to catch you out when you do something daft. Coding is a highly CREATIVE activity, if done right. If you live in a good eco system you can go "in the zone" without fear.
Not just confined to your work.
Play time can be productive. One to two hours on a Friday morning I try and improve something that annoyed me this week. I keep a file somewhere of the annoying things I have or want to learn and try and incorporate that into my workflow. Sometimes it works, sometimes it doesn't - main thing is that I learn from it.
Doing new things in your own time leads to other things - for instance I am doing a talk on neo4j to Belfast Ruby soon.
I feel privileged to be able code and build something from nothing. I could talk about the any one of the previous topics at length. I love processes.
I read somewhere (can't remember so typing it out from my head):
"You can teach the theory behind programming but you can't teach the discipline, practises and skills of it. These things are aquired through maturity, practise and mentoring..."
To me that's what the 'dwarves' represent. They are stacked high to enable us to deliver better software so then we can build better code and enable us to build better applications/sites.