I’m literally taking a class called Fundamentals of Software Engineering this semester for my computer science degree, and the prof has spent the entire semester so far hyping up agile and telling us why it’s so great and how to do it, and then he got to the part where he was like (paraphrasing) “documentation is bad, it’s too expensive to maintain in large and complicated projects, therefore it should be minimized or even eliminated” and I was (internally) like hold up what
Like, yeah, as a project grows the documentation work (and the time your salaried employees spend working on that instead of working on deliverables, which I understand is a problem for capitalists) grows even faster, but the bigger and more complex a system is, the more important it is to document how it works, right??? Or am I insane? Surely a better solution would be to find more efficient ways to keep documentation up to date, like maybe writing tools to auto-generate some of it? We have tools to auto-generate tests to make sure we wrote the code right and wrote the right code, surely we can find a way to automate documentation within a reasonable margin of error.
Like, he gave an example of a project he was on where the (physical, printed) documentation for the project’s code was enough to fill a whole room with stacks of paper, and yeah I agree that’s unreasonable. But surely there’s a middle ground between that shit and “ok we’ve gotta choose between maintaining our documentation and maintaining our project and the correct answer is the latter one,” surely there’s a middle ground where you can reduce it to manageable levels without minimizing or eliminating it?
Large software companies for whom this is an Issue™️ make a much fucking money, surely they can afford to reduce their massive profits a bit to make everyone’s jobs easier in the future? Because I guarantee—my prof has even acknowledged this—eventually a time comes that the original creators of a software are not the ones maintaining it, and if the code isn’t documented at all then maintaining it becomes much harder…and more expensive! And my prof has also said that a majority of all software work done today is maintaining existing systems, not creating new ones! So wouldn’t it be smarter and more cost-effective to incur some extra up-front costs now in order to reduce the long-term costs down the line, over the rest of your software’s lifespan?
insert “I want more software with more documentation that’s released less frequently and is written by people who are paid more to work less and I’m not kidding” meme here
In general my prof has spent a lot of time talking about things in terms of how costly or cost-effective they are. He seems to consider cost to be the primary metric for how good or bad of an idea something is for a software development team to do. The textbook also has extremely “here’s how to be the most efficient money printer for your organization that you can possibly be” vibes. It’s very jarring and makes the material hard to read/take seriously for me.
Am I too leftist for this career??? Have I spent too much time in anti-capitalist echo-chambers to be able to comprehend business decisions? All I want to do with this degree is write code and get paid well enough for it that my family isn’t living paycheck-to-paycheck and has a good padding of money saved up for emergencies… I like coding, that’s why I changed to this major, but I’m literally just trying to provide for my loved ones. I just wanna be a decently-paid code monkey, I don’t want to be a high-powered exec or even a project manager. I’m not ambitious unless you count “wanting to be financially stable” as an ambition. I don’t grok the capitalist mindset and I’m legitimately starting to worry that that will cause Problems™️ for me later down the line.