The catkin and bloom tools developed for ROS (robot operating system) go a long way toward mitigating this pain— they make it much, much easier to maintain a source workspace of multiple federated packages, build them all together with dependency resolution and a single command invocation, and switch between the released (deb) and source version of a particular package.
Unfortunately, there isn't a good page which explains this all for the benefit of someone who doesn't care about ROS or robotics specifically, or who doesn't care about how catkin compares to the legacy system it replaced. But this is a start: http://wiki.ros.org/catkin/conceptual_overview
Unfortunately, there isn't a good page which explains this all for the benefit of someone who doesn't care about ROS or robotics specifically, or who doesn't care about how catkin compares to the legacy system it replaced. But this is a start: http://wiki.ros.org/catkin/conceptual_overview