this post was submitted on 14 Aug 2023
23 points (100.0% liked)
Programming
13375 readers
1 users here now
All things programming and coding related. Subcommunity of Technology.
This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Not a direct answer to your question but here's what I've learned and am learning:
It all boils down to "finding the right balance between the costs of implementation, the value the implementation offers given the circumstances and constraint." Essentially, the foundational guideline of engineering across all engineering principles.
Usually every decision brings about about a series of advantages/improvement but it's important to remember that "one must lose in order to gain."[1] That is, every improvement (value) comes at a price (cost). Unlike other principles of engineering (which are closer to bare maths), software engineering more closely resembles something intuition-based like art. That is what makes it difficult to see the values and costs and measure them. It takes lots of practice and introspective and extrospective (!) effort; doing things and potentially making mistakes and learning from them is as important as observing others do things and make mistakes.
In other words, it boils down to honing your intuition to "do the right thing, at the right time, the right way."
PS: Please note that I used the word "right" and not "correct."
[1] Dialectically speaking, every material good contains w/i itself its own seeds of destruction ๐