I used to code like I was playing Tetris. Drop a function here, squeeze a feature there, hope everything fits together without breaking. My GitHub ...
For further actions, you may consider blocking this person and/or reporting abuse
I have often noticed that the longer I can keep my fingers out of the code, the better it is when I do start to implement.
This sounds like what I've been doing for the past few months. About 60% of my development process is spent figuring out how and why a feature should work, and 40% of my time is spent actually implementing that feature.
That’s such a sharp observation.
The longer you hold back, the more clarity compounds, so when you finally touch the code, it’s with precision instead of trial-and-error.
Great read and a great technique. I'm generalizing here but I think that as developers we "think" in code so reflexively that reaching for the keyboard feels like the natural thing to do. I'm recognizing more and more how this tends towards a code first solution rather than a problem first solution which is what we really should be trying to do, isn't it?
Exactly Patrick. Coding is a reflex, but problem-solving is the real leverage.
The best devs I’ve worked with treat the keyboard as the last step, not the first.
When you slow down to define the problem clearly, the code almost writes itself.
Back in the old days, this was called "being a programmer" and "knowing what your code does". Every kind of engineering, and in fact, every kind of production, involves thinking through what you're doing and knowing how your implementation works. We never predicted that someday there would be programmers who don't do that. It's an interesting sociological question, why many programmers nowadays think they're exempt from knowing what they're doing. Pretty much every other productive discipline still requires it (with some exceptions, e.g., politics).
Yes, often the time taken for architecture is greater than the coding time. By the time you start coding, everything is already in your mind, so you just type it out.
Thank you for sharing this great post. I'll write those steps down and put them in front of me to keep myself aware of the procedure I should follow to develop a good piece of software.
Love that approach, Borzoo. Writing it down makes it tangible and keeps you honest. It’s amazing how much more intentional your coding becomes when you follow the process rather than just winging it.
One of the best articles I read in a long time. Thanks a lot.
Insightful read! It helps a lot of devs. Keep going and keep writing