I don't understand your first question. How much or little data-driven your application might be, I'm not sure how that determines your object identification settings.
As for your second question, that has been debated lots of times on the forum. Search if you'd like. As I recall, it basically boiled down to:
1. Shared is easier to maintain over the life of an application.
2. Shared has size limits so it's safer to use per-action to keep the OR from getting to big, but that makes it harder to maintain all those ORs over the life of an app.
3. Shared is a pain when more than one QTP user is "sharing" the same OR as one guy records objects and saves the OR, then someone else saves her OR (which overwrites the stuff the first guy saved).
4. Conclusion: best of both worlds. Have a few shared ORs that are specific to certain features or business processes of your application, and have those features/processes assigned to different users so they don't step on each other with their saves.'
Well, at least that's my conclusion, based on my own experiences and mostly supported (or at least not contradicted) by the many discussions here on this forum.
Of course, all of that completely disregards the OR vs. DP argument.
Thanks for the information. Ignoring the fact that the application is data driven, as a best practice, any specific Web object identification settings have to be made before developing any script?
For example: In my script, a webelement is identified by “innertext” and “html tag” properties(mandatory). Apart of “innertext” will change if I run the same script on different ENV making it difficult to identify the same object