Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

We tend to make complex solutions to simple problems.

The thing about any problem, is that "the devil is in the details." It may seem simple, from a high level, but, once we start to "drill down" into the issue, the "rough edges" appear.

At that point, we start to break out the baling wire and bubblegum, to kludge our original "graceful" design to meet the facts on the ground.

It doesn't just happen for software. Hardware suffers from the same issue, but software makes it easy to start coding before modeling the requirements and context completely.

I actually leverage this, in my own work. I call it "Evolutionary Design"[0]. It's not for the faint of heart, because a big part of it is recognizing when I'm rabbitholing, and tossing out what may be weeks of code, wholesale. I'm actually going through that process right now, with the app I'm developing. I'm working on the final feature set.

[0] https://littlegreenviper.com/miscellany/evolutionary-design-...

"There's always an easy solution to every human problem; Neat, plausible and wrong."

"The fact that I have no remedy for all the sorrows of the world is no reason for my accepting yours. It simply supports the strong probability that yours is a fake."

-- H. L. Mencken

“When the map and the terrain disagree; believe the terrain.”

-- Swiss Army Maxim



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: