Have you ever thought that we won't need to code anymore because programs might be generated from specification? The answer can be yes or no; there is still arguing about it.
The programming language is more and more closed to the requirements. The starting is from a very low level as Assembly to a very high level like Python. However, it doesn't make much sense when saying that we will eliminate coding. For me, we currently still need to express our ideas in exact words that tells the machine what we want. Otherwise, I hope in the future the machine is intelligent enough to understand our requirements directly from our words. ;)
Take a look at the famous quote of Robert C.Martin about what I mentioned above:
"Remember that code is really the language in which we ultimately express the requirements. We may create languages that are closer to the requirements. We may create tools that help us parse and assemble those requirements into formal structures. But we will never eliminate necessary precision—so there will always be code."
So there will always be code and we should take care our code - this is all what I want to point out.
Later equals never, it is somehow a fact of refactoring code. I am quite sure that many of us might meet the following situation. At the beginning of building a project, we are just focusing on making a working software and then more and more features are added but we don't care about cleaning up code. It seems we go quite fast until we can not move anymore because the mess is out of our control. And then, we are rolled into a loop; that is: team produtivity is slowed down> increase new team members > increase mess > team productivity is slowed down > ...
Reasons for bad code is because of requirements changes, because of the schedule is too tight and because of bla bla bla. No, don't blame! Just because of unprofessional programmers. So, will we re-design/re-build the system in this case? No, it is too late. It costs too much time and humans to do this. Therefore, the only way to go fast is to keep the code as clean as possible at all times.
Yeah, that is it for my topic. I just want to share briefly my review from the beginning part of the book Clean Code. Check further parts in my next reviews.
Let me know what your ideas down below.
Reference:
[1]. Clean Code: A Handbook of Agile Software Craftsmanship