I typically structure my applications to use a SharedBC and SharedViewController project. I create a deployment profile for each and deploy them on a network shared folder as an "ADF Library JAR File."
Now any developer can create a "File System" resource in their Resource Palette.
After that you should be able to see your deployed libraries when you expand the resource.
If you want you could also set the dependency on the shared VC from the build output of the shared BC and deploy just one ADF Shared Lib. So it just depends on how you modular you want your components to be. Now the shared code is packaged and ready to be consumed by other applications in your enterprise. This will allow your development team to be more productive and allow them to only change code in fewer places. I suggest you start on a small scale to make sure everyone understands the capabilities and the benefits of this before things get a little hairy. I would put together a few POCs using this method and do a write up explaining why and how to use this.
In future posts I'll go into setting up extended base classes in your model application, ADF logging, controller utility examples, binding examples, and some tips and tricks in Skinning/Templating.