I was really surprised by the article, I assumed it was going to be the same as my experience which was amazement at having the ability to write instructions that caused the system to do stuff, like make dumb games initially in basic and then better games in assembly.
> Some of the least comprehensible functions I’ve deciphered had quite low cyclomatic complexities.
In agreement with your post, this research that measures cognitive load via EEG and time spent shows that the metrics we use for complexity and readability are only partial matches to what is going on:
https://pmc.ncbi.nlm.nih.gov/articles/PMC9942489/
> I've never experienced a situation where a software design document meaningfully improved the overall process.
If you don't have a document, then how do you make sure that internal team A and internal team B and internal team C and external vendor D and external vendor E all create the correct things so the entire system actually works?
I don't think you can learn without doing the actual work where normal constraints apply so you can test and see the pros and cons of different approaches to different aspects of the problem(s).
You need a limited budget, limited timeline, limited capabilities in team and software tools+systems, and you need to be on the hook for support, maintenance and long term extensibility.
Software engineering is an optimization problem balancing all of the above and much more. There is no one answer to any problem, but more of a general sweet-ish spot (or more like region than spot) of balancing the competing priorities.
I built a little front end that allows me to group stuff easily so I can visit the site for short durations during the day without having to repeat sorting through items.
I have some checkboxes on articles and a couple manual buttons to trigger movement between groups when I'm ready.
Groups:
New - Not seen by my utility yet
Like Group A - Definitely want to come back to it later (maybe didn't complete, or has interesting comments still active)
Like Group B - Maybe want to come back to it later (maybe it's done, or maybe I'm only partially interested)
Old Group A - Most recent group of links pushed from New - separate from Old Group B to reduce volume of stuff to wade through if I change my mind about something
Old Group B - Older/definitely no longer interested stuff
I was really surprised by the article, I assumed it was going to be the same as my experience which was amazement at having the ability to write instructions that caused the system to do stuff, like make dumb games initially in basic and then better games in assembly.
reply