It may sound too brave (or stupid) to have so many releases for a service that has 300k users.
Fortunately, today there are so many great tools which make this possible and even safe. The secret is having a system that runs hundreds of tests and deploys software on servers. All being done automatically in a matter of minutes.
In the old days, releasing software took great deal of work and time. You developed for months, run tests mostly manually and deployed software and database changes manually. Today all of these aspects can be automated. This is a great change for software development.
It increases productivity, reduces mistakes and keeps us agile.
Every Commit is a New Version
All of our developers have a version of JotForm running on their computers. When they complete a new feature or a bug fix, they commit the changes to our source control system.
This is amazing. It takes less than 5 minutes for a code change to become live on our site. Everything is automated.
So, how can we do this reliably without breaking our site? Basically, we stop a deployment even if one of the hundreds of tests fail. Our tests cover pretty much every scenario so it is almost impossible for a problem to be live without being detected.
If one of the tests fails developers are notified about it and all future deployments are prevented until the problem is fixed by the owner of the code.
What if we need to develop a feature that will take many code commits or if we are not sure about the change?
In those cases, special conditions are added to the code so that they are only visible to developers who are logged-in as admin to the site. Those changes are not visible to the regular users of our web app.
This might sound too bold and believe me I was pretty skeptical about it at first, but after many months of experience I can tell you it really works and it works well.
Enjoy your freshly served JotForm!