For new programs, modules, APIs, or other code to be formally part of the project:
Present idea to core team on slashcode-development mailing list
they will know if somebody is already working on the problem, or discuss existing or better ways to deal with it
Present complete specs to core team
best way to do this is take the documentation boilerplate and fill it in.
Announce any changes to (existing) interface
Code review by core team
educational review
Finish it up.
Add to CVS; from then on, bug-fixes go through sourceforge.