Don't Develop in Production!
Sometimes the obvious is obvious. Don't do development in production, even if you haven't deployed yet.
Some shops will do their initial development of a product on the production environment, and then backfill the code to development when it goes live.
This is a horrible idea for many reasons, but the one I like most is that the following principle.
- The first one is the Ugly One
In mathematics, it means the first proof is going to be ugly, not the elegant clear explanation that you find in the textbook. It's ugly because the focus of the first pass is not to make it beautiful, but to make it correct. Once you've made something correct, then you can think about the details and refine it. Each time a product is refined and reviewed to another stage it should get better and better.
That's why we develop in DEV. Then when we have to deploy to QA, it gets a little bit cleaner. We clean up our DEV and deploy to QA again. We test it, clean it up, have our peers review it, and clean it again.
We don't deploy to production until we have a final product and we certainly don't develop in production.