One of the first steps of most software development processes is requirements gathering: learning about and collecting the needed or desired functionality of the software from its stakeholders (often users of the software in some way).

Overview

A few concise high-level overviews of and best practices for requirements gathering:

User Stories

One particular tool often used in requirements gathering is the user story. These articles introduce the concept of user stories and how to use them effectively in project planning: