I had passed out my masters in Computer & Application and I was so passionate to write source code even without completely understanding and documenting the requirements. Design document and test cases documentation were nowhere in the software development life cycle ....there was direct jump to the coding.
At later stages I found myself in big trouble and soon I realized Documentation is the Key to become successful software developer, tester or architect.
Before you start developing small or big software, you should have answer for the following questions:
Where is the Requirements Specification?
Where is the Impact Analysis Document?
Where is the Design Document?
Have you documented all the assumptions, limitations properly?
Have you done review of all the documents?
Did you get sign off on all the documents from all the stakeholders?
Once you have positive answers for all the above questions, you are safe and ready to proceed for the coding. Many organizations would have strict rules to be followed, but others would not have. Best practice is to complete all the required documentation and take appropriate approvals before proceeding for the software coding.
So, again it is one of the best practices to have documentation as much as possible. Few important documents, which will prepare you for future are:
Keeping documents electronically does not cost you. So let's start maintaining required documentation.