Working on a project is a lot like building a house. You can only build one at a time. Each time you build a house you can get better and faster, but you can also repeat the same mistakes.
Creating a product is like building a factory. Every time you create a widget it comes out the same. If there is a problem with the machine, the defect is easier to locate. If you fix the machine, you fix all future widgets.
Software development can be either one. When software development is treated like a project it becomes unstable and requires a lot of manual effort outside of writing the actual code.
When software development is treated like a product, the main focus can remain on features and code quality.