There are lots of software development methodologies. I’ve voiced my opinions over the years on how to create great software, and these three small statements sum up a pretty large part of my software development philosophy.
Document your code. Standard javadocs are fine. Stick to method/class level docs with none of that body comment crap. Give a humane overview of what you’re trying to accomplish with the block of code. This is also a great place to drop references to external documentation which may back up why a certain approach is being used.
Write your code. Keep it clean and concise. Only do what you said you’re going to do and nothing more.
Unit tests. I don’t believe you did what you said you were going to do without tests.
Traditional TDD heavily emphasizes writing unit tests which can be used as a form of documenting what you’re going to do, but I still find it valuable to have some level of documentation within the code itself (especially for interfaces).
Honestly, if more developers would just keep to these simple tips, we’d be a lot better off.