No one taught me this :)
This post is particularly about developing software or adding a feature to an existing product.
Someone/Yourself comes up with an idea.
You try to understand the idea.
Research about the topic.
Document all the things you understood.
If you have some options, discuss and decide on one and confirm.
Note on what other things might get affected.
Think about all the things/flow thoroughly, document it
Think even about the functions and variables you might need.
Then implement and add unit tests
Unit test locally
See the diff in local
Create the branch with changes
Read the branch line by line and update if needed.
Create a PR.
You are confident about the code you wrote :)
Write a comment ...