> In some ways, rewriting a piece of software is the best way to understand it deeply, and/or to uncover the gaps in one’s understanding.
Fine, so long as your rewrite is not checked in. Otherwise, this approach will surely lead to chaos when prior developers who figured it out now have to re-learn your version, resulting in the exact problem this article is addressing.
I explicitly mentioned this is in situations where the original authors aren't around anymore, and hence you're on your own figuring out and maintaining the code.
It is the case for most code that the original author is gone. However, there are likely to be other developers around that have encountered the code or maintained it in the past.
Rewriting and submitting code mainly because one does not understand the original version is usually not a good idea; understanding the original code should typically be a prerequisite to replacing it with other code. Otherwise, how would the developer know that the new code was better?
Fine, so long as your rewrite is not checked in. Otherwise, this approach will surely lead to chaos when prior developers who figured it out now have to re-learn your version, resulting in the exact problem this article is addressing.