Whenever I start a new job as developer at a customer (I’m a freelance C# developer) the first thing I do is analyze the code / architecture. Since I’m mainly working on ERP / Line of Business software I mostly see the same types of software: websites and APIs on top of a database, with a few schedued tasks and a few workers.

This is the list I use to score the software quality:

  • Logs to a central logging system (not to files)
  • Zero errors in the log
  • Uses dependency injection
  • Has a good unit test coverage (subjective what’s good enough)
  • Protects against SQL injection
  • Has constraints in the database (in case of SQL) to protect against data corruption
  • Deployments are automated, including sql scripts
  • Seperation of layers (no SQL queries in UI layer. ASP.Net WebForms is notorious for that)
  • Zero Stored Procedures with business logic
  • Up-to-date technology is being used (for example: Webforms scores negative points here. SOAP/WCF scores zero. REST / gRPC scores points)

What do you use to rate the software you’re working on?

edit: added bullets 8 and 9

edit: added bullet 10

submitted by /u/EquallyDifferent____
[link] [comments]