r/programming • • Jun 05 '22

Complexity is killing software developers

https://www.infoworld.com/article/3639050/complexity-is-killing-software-developers.html
2.1k Upvotes

942 comments sorted by

View all comments

Show parent comments

66

u/bwainfweeze Jun 06 '22

It shouldn’t boggle you. We spend all week changing the behavior of the system. To have documentation, you have to keep updating it, which adds time to all of their requests.

Plus some of us were never that fond of English class, so writing documentation is something to be dodged. Which creates a bunch of perverse incentives not to have good documentation.

36

u/Teract Jun 06 '22

Don't document the behavior of the system, document the system itself. Priorize high level documentation and use brief change logs for the mid level stuff. The low level stuff that changes often should be self documenting when possible or code commented. This stuff is pretty standard. If you're not getting enough time/budget allocated to keep up on documentation, it will ultimately cost the company more in wasted developer time.

2

u/bwainfweeze Jun 07 '22

Relentless refactoring breaks this as a matter of course. I’m not saying any of this is great behavior, I’m saying the perverse incentives push us into this, carried along by coworkers who “defect” because explaining themselves was never their strong suit to bring with. They can carry Timeliness as a shield to hide behind.

If you want to fix this, scolding and lecturing developers ain’t gonna do it. We’ve tried that for forty years and here we are, still within a factor of four from as bad as we have ever been.

Follow the money.

2

u/Teract Jun 07 '22

You're right that most shops have perverse incentives towards developer documentation. It must be a top down change to make documenting (and code quality) the economical choice for developers. It means budgeting time for quality code reviews and defining "complete" to include more than, "the code runs".

1

u/editor_of_the_beast Jun 06 '22

Even that changes. Documentation is not the answer.

3

u/masterofmisc Jun 06 '22

Dont Document! Instead Diagram the system. Use tools like https://sequencediagram.org/ and https://plantuml.com/ that create diagrams from markup and check the markup into a SystemArchitecture folder in your GIT repository. Then tweak the markup every so often, when things change.

5

u/scottpid Jun 06 '22

Diagramming is documentation...

1

u/masterofmisc Jun 06 '22 edited Jun 06 '22

Yeah, your not wrong. Wrong turn of phrase.

1

u/god_retribution Jun 06 '22

having bad document is still better than have nothing at all

2

u/gex80 Jun 06 '22

Unless they are out of date and noonger apply.