How to install tryton for customize

I want to run the project from the source code, I need to modify the source code. For example, I want to add some input fields into the product editing form, remove variants from the product editing form, re-layout the form, update the database writing and reading…etc

download the trytond module source code first, then downland other modules source code into trytond/modules folder??

What are the right ways to customize tryton? (without losing upgrade)

So far I installed an tryton instance, I checked the functions of the modules. Now I want to customize it.

It is by creating a custom module which will extend existing model (adding new fields, modify method behavior etc.) and inherit views.

If I extend the product Template class with the new fields, The tryton will create a new table or add the new fields into existing template table?

New fields will be added in existing template table.