...
Metadata Capture and Reporting
Reconciliation
Automation
A generic way would be to base on the way developer has considered the non-functional requirements (listed below) and implemented in the code ( ETL or Report). Also time taken for development and delivery can be considered.
Performance
Re-usability
Scalability
Documentation, for example just enough comments
Modularization
Parameterization
Low maintenance
Simplified
Object arrangement ( ex ETL job flow or Reporting objects arrangement)
Consistent and Standardized naming conventions