We use Ruby extensively in testing and infrastructure and have lost months of cumulative developer time to this attitude. It works for a single user constantly making changes to a small piece of code and prepared to work out the solution to dependency change problems as soon as they come up. However, it doesn&#x27;t scale to a team of people working on very large code bases.<p>One example of this is having a repeatable developer setup guide. If the dependencies might have changed by the time a new joiner starts your setup guide could very easily end up useless or misleading and that&#x27;s without anything at all in your own codebase having changed.<p>Shrinkwrap fixes this, but always gets added after things went wrong several times already. It should be the default.