Let's imagine that you, as a SharePoint administrator or a InfoPath form developer, is in charge of 500 forms. Each form, on average, needs to be changed twice a year. So you need to modify 500 * 2 / 220 (work days) = 4.5 (forms per day).
What would happen if there are 5000 forms?
Based on my experience, most of the changes don't require to change the C# code. From technical point of view, they are just cosmetic changes. However, since C# code is part of the forms, developer have to do the changes! Or, do they?
Below is how I handle this situation. It minimizes the work of SharePoint administrator (or InfoPath developer).
1. Install InfoPath program on business users' computer.
.Net framework support is needed.
2. All forms and C# code are stored on SharePoint development server
3. Move form relevant C# code into a separate project.
Normally we need a dedicated project for each InfoPath system (a SharePoint site collection).
This project is a standard SharePoint feature (solution), which shared by all relevant forms of one project.
4. Share the form folder and C# assembly folder to relevant business users.
Business users can modify forms, but can only view C# assembly folder.
5. In form project, call the methods of that shared assembly to implement functionality.
6. Business users can modify the form whenever they want, and then deploy to another shared folder.
They can change all stuff except coding, which include rules, validation, data connection, text, views, etc.
8. SharePoint administrator deploy the new forms, then ask business users to test them.
Normally through PowerShell script.
9. Once the test is passed, these forms are ready to be deployed to Production.
What do you think of this procedure? Any comments are appreciated.