Suppose you've been working on a huge messy codebase for a few months. You don't know yet everything about how that code works.<p>You get a task to add/modify some functionality estimated for an hour. At first, you have no idea how to do it.<p>What would you do:<p>* Go through all of the code related to that functionality, learn by yourself what it does and how it works. In this case you spend a day maybe learning the code.<p>* Ask somebody to explain what you have to do in this task, how things related to that functionality work, what code you can reuse, what code you have to develop from scratch. In this case you spend 20 minutes talking to your colleague and about hour modifying the code in exact places your colleague told you