Use well commented clear code. On top of it use technical notes to explain the design and implementation of the system at a moment in time along with the requirements at that moment in time.
Concerning UML, there was a recent thread on slashdot: Is UML Really Dead, Or Only Cataleptic?
In my opinion good properly designed software has to do a lot with "who" and less with "process and how". If you look carefully you will see real people behind good software.
You should try to find out how these real people think and work, what are their values.
If you consider for example the most important programming languages as examples of well designed software (sometimes debatable, I know), you could try to read more about them: The Creators of 30 Programming Languages: pages, biographies, blogs, interviews
Use well commented clear code. On top of it use technical notes to explain the design and implementation of the system at a moment in time along with the requirements at that moment in time. Concerning UML, there was a recent thread on slashdot: Is UML Really Dead, Or Only Cataleptic?
Or at least they are very smart: Grace Hopper mother of COBOL...
In my opinion good properly designed software has to do a lot with "who" and less with "process and how". If you look carefully you will see real people behind good software. You should try to find out how these real people think and work, what are their values. If you consider for example the most important programming languages as examples of well designed software (sometimes debatable, I know), you could try to read more about them: The Creators of 30 Programming Languages: pages, biographies, blogs, interviews
You can start by reading what people who have written good software have to say: The Creators of 30 Programming Languages: pages, biographies, blogs, interviews