3 ms·
Ask HN: How do you deal with complexity in general?
Do you have a general approach? Any method? Do you measure it somehow? How do you know software is making things more complex than they need to be (aside from a feeling most of us have from experience)?
- jkantz 8y agoLots of good advice on this topic here: https://homepage.cs.uri.edu/~thenry/resources/unix_art/ch04s01.html https://homepage.cs.uri.edu/~thenry/resources/unix_art/ch04s... Especially further in on the topic of how there's a sweet spot for total logical lines of code and manageable complexity.
- thecupisblue 8y agoDo an churn vs complexity analysis, talk to devs who work on the project, find those areas, write unit tests, refactor into simpler, smaller units.
- mabynogy 8y agoReduce the problem to something simpler. If it's a project for someone else I'll do my best to change his mind about his problem.
- tonyedgecombe 8y agoPick off the smallest piece that can do something useful then iterate from there.
- segmondy 8y agoBy understanding it. Complexity will manifest if the software is complex enough, but where? You can have code that's easy to read and complicated to change. Or you can have code that's complicated to read and understand but easier to change. Perhaps it's easy to read, and change but complicated to scale? I like to shove the complexity into areas I don't care about. If I'm building a system that doesn't need scale, I'll take readability and easy to update over scalability. It's a balancing act.
- tmaly 8y agoI came across this post by Kent Beck the other day on dealing with complexity. I think the TDD method definitely helps break it down into digestible chunks. https://www.facebook.com/notes/kent-beck/one-bite-at-a-time-partitioning-complexity/1716882961677894/ https://www.facebook.com/notes/kent-beck/one-bite-at-a-time-...
- LarryMade2 8y agoI think good part of complexity is not understanding something as much as you could. On projects Ive worked with for a long time they don't seem as complex as when I started them, And when I refactor or rewrite, I am usually taking a more streamlined approach as I now understand the what it is I am actually tracking.
- m0llusk 8y agoMake lists. Try multiple approaches, especially with the observation and framing that must precede decisions and actions.