I like this collection. It's nicely presented and at least at a glance it adds some useful context to each item. While browsing it, I of course found one that I disagree with: Testing Pyramid: https://lawsofsoftwareengineering.com/laws/testing-pyramid/ I think this is backwards. Another commenter WillAdams has mentioned A Philosophy of Software Design (which should really be called A Set of Heuristics for Software De…
Laws of Software Engineering
91–100 of 554 posts
Re: Laws of Software Engineering
#92> This site was paused as it reached its usage limits. Please contact the site owner for more information. Law 0: Fix infra.
Re: Laws of Software Engineering
#93> This site was paused as it reached its usage limits. Please contact the site owner for more information. Law 0: Fix infra.
Re: Laws of Software Engineering
#94> This site was paused as it reached its usage limits. Please contact the site owner for more information. Law 0: Fix infra.
This looks like a static website that could be served for free from Cloudflare Pages or Vercel, with a nearly unlimited quota. And still... It's been hugged to death, which is ironic, considering it's a software engineering website :).
Re: Laws of Software Engineering
#95Earlier quoted context omitted.
DRY is misunderstood. It's definitely a fundamental aspect of code quality it's just one of about 4 and maximizing it to the exclusion of the others is where things go wrong. Usually it comes at the expense of loose coupling (which is equally fundamental). The goal ought to be to aim for a local minima of all of these qualities. Some people just want to toss DRY away entirely though or be uselessly vague about when t…
DRY is misnamed. I prefer stating it as SPOT — Single Point Of Truth. Another way to state it is this: If, when one instance changes in the future, the other instance should change identically, then make it a single instance. That’s really the only DRY criterion.
Re: Laws of Software Engineering
#96"This site was paused as it reached its usage limits. Please contact the site owner for more information." I wish AWS/Azure had this functionality.
Re: Laws of Software Engineering
#97Remember that these "laws" contain so many internal contradictions that when they're all listed out like this, you can just pick one that justifies what you want to justify. The hard part is knowing which law break when, and why
This is doubly true in Machine Learning Engineering. Knowing what methods to avoid is just as important to know what might work well and why. Importantly a bunch of Data Science techniques — and I use data science in the sense of making critical team/org decisions — is also as important for which you should understand a bit of statistics not only data driven ML.
Re: Laws of Software Engineering
#98Since the site is down, you can use the archive.org link: https://web.archive.org/web/20260421113202/https://lawsofsof...
Re: Laws of Software Engineering
#99I did not see Boyd’s Law of Iteration [0] "In analyzing complexity, fast iteration almost always produces better results than in-depth analysis." Boyd invented the OODA loop. [0] https://blog.codinghorror.com/boyds-law-of-iteration/
Re: Laws of Software Engineering
#100Earlier quoted context omitted.
DRY is my pet example of this. I've seen CompSci guys especially (I'm EEE background, we have our own problems but this ain't one of them) launch conceptual complexity into the stratosphere just so that they could avoid writing two separate functions that do similar things.
I think I remember a Carmack tweet where he mentioned in most cases he only considers it once he reaches three duplicates