01. The problem to solve
Describe who faces the problem and when it occurs. A real situation and use case are often more useful than naming a specific technology.
02. Essential functionality
Separate the features needed in the first version from those that can follow later. Clear priorities give you a foundation for discussing scope and timing.
03. Existing materials
Gather sketches, reference products, drawings, existing code, and equipment specifications. You can start a conversation without them, but available materials help the review.
04. Timing and budget range
Distinguish fixed deadlines from flexible milestones. Even a budget range helps you discuss a suitable scope and development sequence.
05. A definition of completion
Identify the conditions the system must work under and the documents, source code, or drawings you need. Agree on deliverables and acceptance criteria before work starts.