In my test edition of APM, I have servers and agents set up for Staging, Test, and Development. Is it better to have one system profile labeled Staging, one for Test, and one for Development...OR....have one profile with different agents and servers?
In general you'll want all agents that communicate with each other as part of an application to be in the same system profile so that all of data and information shows up in one place. If agents are across profiles all of it will still be tied together but configurations will be across profiles which can lead to confusion.
In your case it sounds like you would be best creating separate system profiles if they are in their own environments and no or very little communication occurs across agents in the different environments (i.e. dev agent never talks to QA agent). This will let you more easily manage the different needs for things like sensor detail more easily. However, if there is significant communication you can place them all in one profile and then define individual 'applications' based on things like url patterns or the web application ID. This will make it easier to logically separate the different levels in the one profile.
Those are my thoughts - personally and in my experience I would have separate profiles but in some cases it may make sense to have one profile and define your applications to break it up.
We take the approach of putting all our Nonprods into the same system Profile and just use agent group names with a unique environment qualifier (e.g. _dev, _stg) to manage them. This way we can easily filter on those agent groups for the specific environment as needed.
Also if you go the many system folder way, we have found and I believe it started with 6.x, that if one application is in one system profile and another application that it hand shakes with is in a second system profile that you will still get your end-to-end purepath, transaction flow, etc. As long as the two system profiles are on the same dynatrace server.
From peoples comments here I am not seeing a downside for either way. Unless there is a limited number of system profiles you can have or a limited number of agent groups per system profile. I don't know the answer to that.
The downside of having multiple system profiles in a setup where cross-system-profile Purepepaths may occur is that the Purepath is only stored and analyzed in the system profile that contained the entry point even if there are agents from other system profiles contributing to it. This can create big confusion and was the main reason why in our case we decided to go with "bigger" system profiles.