A bag ADT interface has been designed but not implemented. What is a good strategy for writing code? 1) Write the code from scratch without any planning 2) Start implementing the code without understanding the requirements 3) Analyze the requirements and design a solution before writing the code 4) Copy and paste code from a similar project