More specifically I don't understand why we're moving the immediate dependencies of the project to the end. E.g. `chef-dk` depends on (in order) `ruby` & `berkshelf` where `berkshelf` depends on `something` and `something_else`. 

With this logic, if `something` is updated, won't we enforce the build of `ruby` since it's an immediate dependency of the project and it's moved after the transitive dependencies of immediate dependencies.