<human>: I've been working in a software development job in a fairly small (6-developer) group within a university for about 4 years, and it's now time for me to move on.  I generally like my clients, coworkers, and boss, so I want to make this as smooth and amicable as possible.

I'm the most skilled developer in the group and I'm in the process of leading a migration to new technologies (which no one else is really up to speed on).  I've also developed and maintained a number of complex, high-profile systems that will need ongoing enhancements and maintenance, including some major development initiatives over the next 6 months to a year.  These aren't well documented, I'm embarrassed to admit, in line with the general M.O. of the group (it's an environment with very tight budgets and timelines, and corners get cut).

What should I be doing to get the group ready for my departure?  Should I warn my boss/coworkers that I'm looking, and he needs to be more serious about filling an empty developer position?  Just try to document my stuff and let the shit hit the fan when I turn in my two weeks?  I've been screwed by developers leaving with bad handoffs, and I don't want to do the same thing myself.

Thanks for any advice you have.

Condense the text into a few key points
<bot>: How can I best prepare my coworkers/employer to transition my responsibilities when I leave?  Should I warn them that I'm looking for jobs, and they need to get serious about hiring a replacement?