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]