I spent an hour this evening circling some code while trying to write an abstracted base class. I was taking the wrong approach.
Even though I need the base class, trying to start by creating it before creating a simple working prototype is a recipe for going in circles and fumbling about.
Build a simple, working prototype for one situation first. Then think about a second, then you start to get the mental models right.
I expect to make better progress tomorrow.
Side note: this is the first post I’ve written entirely on the iPad.
Abstraction just for the sake of abstraction is the perfect cause for wasted time and failed projects.
The moment I have an idea, I’d venture immediately and directly into writing working code that DOES the job to see if the core functionalities can be decently accomplished within the time frame and budget I have in my hand. I don’t care if it’s crap code, as long as it works, I’m fine with it.
This approach has proven to be a golden one for me. If you are experienced enough, writing code fast on impulse and spontaneous joy often results in better work than you’d expect from working slowly and carefully.