Software projects can get out of hand quickly. Often, the problem lies in the requirements. Functions that were once thought simple and straightforward end up becoming a massive list of confusion, uncertainty, and frustration. These types of problems are easily avoided by striving towards good Agile principles. You accomplish this by building user ...