Amazing plans
Software Development Planning is a process that aims to improve software delivery predictability and includes requirements gathering, planning and designing the product, and often research and development into the areas that are unknowns or risks to the project. Software Development Planning tools and templates include many kinds of charting software, spreadsheets, or simply a long, horizontal paper that can be drawn on and updated for each of the stages.
The three major areas of Software Development Planning include Requirements Gathering, Planning/Design, and Research and Development.
Requirements Gathering is the first step and requires the team to understand the problems to be solved and meet with stakeholders to determine their requirements for the product. Key stakeholders generally include customers, so focused tests can be a good way to get clarity on key questions when employed with a small sample of a target market.
In the Planning and Design phase, the team determines key dependencies and lays out the order in which features should be developed while taking into account the priorities laid out in the requirements phase by the stakeholders. Features are broken down into smaller tasks so they can be more accurately estimated. In Agile development terms, this approach creates the original backlog.
Somewhat in conjunction with the planning phase comes the Research and Development, or Prototyping stage. When major features are new to the team, critical to the product, and or risky, there should be some research into how they will be implemented to reduce the risk during the production phase where the focus is on building the software. It is good to consider multiple different approaches and determine the one that fits in best with the architecture and product goals.