The general approach for rigging a character is to start building skeleton, define how it will move (control system) and then dive into deformation(enveloping process). This approach assumes that the target bind skeleton driven by the control rig is going to produce good deformation. Usually one should do some deformation tests first to make sure bind skeleton would deform the character nicely and then build the control rig. However if this is not done thoughtfully then you could get stuck with a rig that does not deform well. Of course we have tools at our disposal to correct the deformation if required, however this could significantly lengthen the skinning process and make it tedious.
Another approach is to start thinking about deformation and do the skinning first then build its control rig. I am working
on a realistic character model for studying deformation based on
musculature. Hence the focus is on getting the deformation looking as
good as possible. The first stage is to built the bind skeleton and add
most of the secondary deformation joints along with the enveloping
process. This should give a better idea of how the skeleton would deform
the mesh. We can go on refining the bind skeleton and deformation
weights until we get a solid base. My goal here is actually go get the
skinning closer to the final look and hook up the control rig afterwards
that is created based on the bind skeleton.
Regardless of the approach we take, the goal should be to be
able to focus on both deformation and control rigs while keeping them independent processes. By keeping control rig and deformation rig separate
we can focus on one task without worrying about the other and work on
them in parallel. Generally there will be some dependency between both
rigs, for example matching the pivots for the movement and deformation or a joint driven by a surface that is deforming the mesh . But we
can still decouple both the systems to a good extent. Also, it is
possible to keep the pose based deformation independent of control rig
reducing the coupling further.
In programming it's a good practice to keep the objects of the
system independent so that changing one does not require to change the
others. This is highly applicable to Rigging as well. If you are
more into programming you should read Design Patterns by the Gang of
Four. It's an excellent read.