The nature of Smart Contracts is that they can never be altered/updated once deployed. So, you have to thoroughly test the code, get the contract audited and then deploy it. Even if you want to update a specific property of the contract e.g. Initial Supply etc, you have to write a new contract and deploy it to a new address.
Hope this helps!