As you learn to develop and/or program, you eventually have to deal with users. You are, after all, trying to create something people will use. When trying to develop a tool for a user they will give you their requirements. This process has been discussed and, more frequently, mocked throughout the Internet universe. Eventually some simple 'truths' are concluded by developers. Generally they are (and I loosely quote): Users Lie Users don't know what they want The accuracy of those statements is debatable. Users don't purposely lie, they want something and they want to make sure it gets done their way and they're gonna tell you about it. Maybe just not up front. Also, they know what they want. So, to boil down to the truth, it comes down to: Users don't know how to communicate what they want. How To Deal With It So, what do we do? In my opinion, the best way to determine what a user wants is to walk through the job they are trying to get a tool for. This is where...