These days with the shared pool area getting so large many people ( including me ) tend to think of reserving/pinning plsql code into the shared pool as an old school "probably no longer necessary" approach. Of course many 11g systems are now running with 4 gb shared pools ( and much more sometimes ).
In my recent hotsos session I polled the attendee's and ( kind of as expected ) confirmed that most people are not doing this any more.
However after I finished someone came up and recommended that I add in as material to my presentation taking a look at an oracle provided toolkit ( PIND ) that accomplishes this for you. He noted that oracle ebiz suite deployments are perhaps particularly significant in maybe still needing this kind of setup. ( So this information has been added to my presentation ).
Of course dbms_shared_pool.keep is the way to do it yourself and no shortage of web posts about doing this stuff yourself.
If you want to look at this oracle toolkit look at oracle doc ids 301171.1 and 311689.1