During upload of plugin files, WordPress is coded to first check if it can write to wp-admin and wp-content. If this check fails WordPress will fail and provide the unhelpful message that it requires ftp credentials.
This kind of check is a good, but the current (as of May 16, 2013) code to perform this check is not well written.
The "check" looks at the process id running WordPress (in our case www-data) and determines if it is equal to the directory owner id. Anything else, such as having the owner id be serveradmin and granting group www-data write access will not work.
In the BonsaiFramework WordPress Simplified process we compromise and set the user id specifically for wp-content and wp-admin. However, some administrators will want to be more consistent granting serveradmin as the user id and www-data as the group id with group set to also have write access as shown below,
drwxrwx--- 9 serveradmin www-data 4096 May 16 16:07 wp-admin drwxrwx--- 6 serveradmin www-data 4096 May 16 22:01 wp-content