This presentation proposes strategies to identify good candidates for re-usability, how to create requirements to make the library useful, and steps to limit scope and ensure the library is useful without getting in the way. The video also discusses the importance of documenting reusable components and treating the library like a client project.
Following the presented strategies for your software architecture, you will be able to ensure that you are not wasting time over-architecting one-time-use components, while keeping your reusable pieces flexible enough to be useful and save time.
Video producer: http://www.droidcon.ca/