Requiring Fields at a Certain Opportunity Stage

Throughout the sales cycle, there may be certain fields that you would like to required by stage.  There are different ways to do this, for example changing record types by stage and having required fields or using validation rules to require fields if the stage is equal to a certain value.  Each way to do this has its own benefits and also its own negatives.  I had this need come up with a specific caveat, that it should be very easy for someone who is an admin be able to manage it with ease, as well as show users what fields would be required when the stage was selected.  My first thought was to use a Flow that would walk the users through the fields that would be required at that stage and at the end of the Flow, update the stage to the new value.  Although this sounded great, it would require someone to update a Flow to add new fields to the requirement.  Flows are great for requiring fields to be entered through required fields on a screen, but managing a change in a picklist value, with record types, as well as adding or removing required fields as the business dictates, makes a Flow a lot to manage.  Enter another level of Salesforce adminvelopment.  (Yes, I saw on the community someone posted, adminveloper, and adminvelopment is a byproduct of adminveloper.)
Continue reading