In my production environment the developers have db_datareader permissions only. The higher management approved that they could now have “view any definition” permission on the production environment. Here is how I granted them the view def. permissions.
USE master GO GRANT VIEW ANY DEFINITION TO [domainname\developers]
Here is the code that allows a group or a user to view Sql Server Agent jobs
use msdb EXECUTE sp_addrolemember @rolename = 'SQLAgentReaderRole', @membername = 'domain\developers'
Hope this helps.