4

My thoughts on how progression goes from top to bottom:

I'm going to use the terms all wrong because I don't know correct terminology but this is just how I make sense of a good workflow in programming.

From top to bottom:
Hard coding
Variablizing (is this a word? I use it to myself)
Functionizing
Abstracting the function
Adding an interface to the abstracted function (another layer of abstraction saves so much effort later)

Testing each step if possible.

Then when I feel a bit of code is good, giving it some more time and more testing then finding bugs I didn't see before and improving things.

If I get tripped up and spend too much time on some issue, I'll just let it sit for a little bit and take a walk or think of something else. The problem is still being worked on subconsciously and when I return after a rest usually is more apparent.

Testing, testing, testing and more testing!

Comments
  • 1
    I would go exactly the other way round:

    * Create a test and an interface
    * Code interface implementation until the test runs
    * Change the test if the interface changed (add params for example), then test until test is successful
    * and so on...
Add Comment