After years of experience in software development, I've not yet come up with a best practice for documenting business & technical decisions and requirements.
For instance, I want to know why we made the decision to implement a module in a way and why we changed it afterwards. This documentation could be used by new comers to the project and also other member of the team to recap the reason behind the decisions.
On the other hand I want to know what business decisions we have made and have a record of the changes with details.
So far I have used typical tools like MS word, excel, having pictures etc.
But I feel there has to be a pattern or practice for medium and large scale projects which could be more maintainable and usable.