I currently work for a MSP that has contacts for thousands of PCs.
Some of them require a standard image that can be imaged and deployed with minimal hands on interaction.
Many others require specialized software individual to the user, multiple profiles to be transferred, network printers to be installed, some are going from Windows 7 to 10, and future state there will always be a refresh cycle where upgrading will be done between Windows versions.
Currently we image based on the type of worker and location individually on a build shelf with multiple PCS hooked up to a KVM. The requirements for the build will have been previously obtained by an on site technician that physically logs into the machine and documents installed applications and printers.
We then drop it off to our field technician who drives to the location, performs a Windows Easy Transfer (can take up to 3 hours) of all profile data to the new PC, and has the user test that all is well.
I feel a lack of efficiency in the build, deploy, and possibly the requirements gathering. If it were possible, I'd like to connect both machines to the network, and perform a copy of all installed apps, profile data, network printers etc, with minimal downtime for the user, which could be utilized for deployments with dissimilar Windows versions. I'm just unsure of what tips or solutions exist.