I am looking for some guidance around model structure changes. We currently don’t use Application Lifecycle Management. Can anyone share some thoughts on best practices please? What's the best way to implement model changes? Can we do it during business hours? How do we ensure no one is working in production at the same time we implement the changes?
So obviously, managing model changes is much easier with ALM as ALM takes a "snapshot" of the model and promotes the changes to Production. If you don't have ALM, you will have to recreate all new objects (lists, modules, subsets, line items, views, actions, dashboards, etc) manually in the production model and make sure you capture all of the development. So, without ALM, it can be very tedious, especially if you miss something. Essentially, this is what we had to do prior to ALM.
As for Best Practices without ALM, the administrator or model builder, will have know and understand everything that has been built and what needs to be recreated, as well as the order it needs to be created in (can't create an action from a view without the view or module being created first). As far as when to do the changes, I would recommend in off hours in case you have a rollback (bad formula) so you don't impact the users too much or you can take the system Offline which locks everyone out except for model builders (workspace admins).
In addition to what Rob highlighted, Revision Tags can be utilized to manage change within a Customers Model Landscape even if ALM is not being used. Along with that and if your IT department doesn't have utilize a code management a separate logging Dashboard can be devised to track detailed change.
Here are some additional details on Revision Tag functionality.