Why software can be so difficult to write for us the humans?
Only software writers will know “Bad software is a bad software”.
Why software can be so difficult to write for us the humans?
Software is system of heavily interconnected dependent nodes, you pull one connection or node and many other will fail. You make one connection right and you will struggle to fix thousand issues. If the interconnections mesh strangled badly, bringing order to it is not a repair or refactoring, it is a brain transplant surgery. It is making B (the mess mesh) to become A (modular order). This like taking an approach where a complexity is squared. In fact with fresh rewrite you can simply build to desired implementation A with steadily improving final desired system.
Software is system of heavily interconnected dependent nodes, you pull one connection or node and many other will fail. You make one connection right and you will struggle to fix thousand issues. If the interconnections mesh strangled badly, bringing order to it is not a repair or refactoring, it is a brain transplant surgery. It is making B (the mess mesh) to become A (modular order). This like taking an approach where a complexity is squared. In fact with fresh rewrite you can simply build to desired implementation A with steadily improving final desired system.
And we humans have only a limited short term memory. It is just like a scratch pad very very short. Apart from your ability to solve things, the major limitation still is limited short term memory. Which makes it difficult to fit a complex thing in your creative mind while you write code. The way you achieve is think through completely through multiple iterations, revisits to the same core and its part again and again to keep adding to its fabric to make the picture complete in passes…
Greatest ability for any coder is to consider is ability to “deal with complexity”.
Software is inherently complex beyond humans can perceive it completely at once in their little gray matter.
Coding is output in action, of a thorough thinking process, that has answer to, how something will work by implementing it in the code.