Recently a senior developer that I work with made a case for requiring that developers get the latest version and compile as part of their project a major internal library. This stands in contrast the the counter argument that project teams should be working off a stable version that they get from an internal Maven repository to which the developer argued that having the source code available on the developer machines saves time as they can read the libraries source code to determine if required functionality is available. Does the senior developer have a valid argument? Or is requiring developers to read the libraries source code run counter to the basic philosophy of encapsulation and even having the library in the first place?