Quantitative claims about code maintenance from Working in Public, plausibly relevant to discussionof code rot and machine intelligence:
“most computer programmers begin their careers doing software maintenance, and many never do anything but”, attributed to Nathan Ensmenger, professor at Indiana University.
“most software at Google gets rewritten every few years”, attributed to Fergus Henderson of Google.
“A 2018 Stripe survey of software developers suggested that developers spend 42% of their time maintaining code”—link
“Nathan Ensmenger, the informatics professor, notes that, since the early 1960s, maintenance costs account for 50% to 70% of total expenditures on software development”—paper
Does this definition of “maintenance” include writing new functionality for existing applications?
If yes, then I agree; it is a rare opportunity to start coding a non-trivial project from scratch.
If no, then I find it difficult to believe how someone could e.g. fix bugs without ever having written their own code first (the school exercises do not count, because in my experience they do not resemble actual industry code).
At a minimum, [maintenance] might mean keeping dependencies up-to-date, but it also might mean things like upgrading infrastructure to meet demand, fixing bugs, or updating documentation.
So, sounds like the book author isn’t including writing new functionality, but IDK if the term has such a fixed and clear meaning that Nathan Ensmenger and all the respondents to the Stripe survey mean the same thing as the book.
Quantitative claims about code maintenance from Working in Public, plausibly relevant to discussion of code rot and machine intelligence:
“most computer programmers begin their careers doing software maintenance, and many never do anything but”, attributed to Nathan Ensmenger, professor at Indiana University.
“most software at Google gets rewritten every few years”, attributed to Fergus Henderson of Google.
“A 2018 Stripe survey of software developers suggested that developers spend 42% of their time maintaining code”—link
“Nathan Ensmenger, the informatics professor, notes that, since the early 1960s, maintenance costs account for 50% to 70% of total expenditures on software development”—paper
Does this definition of “maintenance” include writing new functionality for existing applications?
If yes, then I agree; it is a rare opportunity to start coding a non-trivial project from scratch.
If no, then I find it difficult to believe how someone could e.g. fix bugs without ever having written their own code first (the school exercises do not count, because in my experience they do not resemble actual industry code).
From when the book introduces ‘maintenance’:
So, sounds like the book author isn’t including writing new functionality, but IDK if the term has such a fixed and clear meaning that Nathan Ensmenger and all the respondents to the Stripe survey mean the same thing as the book.