Initial announcement on mailing list
Before starting, make an announcement on the developer mailing list to see if another developerm is already working on the same feature. Also contact the technical advisor of the project steering committee (PSC). If the new feature requires any changes to the QGIS architecture, a request for comment (RFC) ist needed.
Create a branch
Create a new svn branch for the development of the new feature (see UsingSubversion for the svn syntax). Now you can start developing.
Merge from trunk regularly
It is recommended to merge the changes in trunk to the branch on a regular basis. This makes it easier to merge the branch back to trunk later.
Documentation on wiki
It is also recommended to document the intended changes and the current status of the work on a wiki page.
Testing before merging back to trunk
When you are finished with the new feature and happy with the stability, make an announcement on the developer list. Before merging back, the changes will be tested by developers and users. Binary packages (especially for OsX and Windows) will be generated to also involve non-developers. In trac, a new Component will be opened to fill tickets against. Once there are no remaining issues left, the technical advisor of the PSC merges the changes into trunk.