Non-functional requirements: Quality

  • To develop quality code, you should focus on clean code structure, the correctness of implementation and maintainability.
  • Define a company-wide META architecture for every project to follow, allowing more reuse of code. Use the KISS principle and avoid excessive detailing or heavy customizing.
  • To keep clean code, always activate the compiler warning, no matter what language you use; define (and monitor) naming, line length, and API documentation conventions like Javadoc; and maintain test coverage of least 85% with not only unit tests but also automated acceptance tests, and regular manual code inspections, especially when working with external vendors.
  • Rather than using pull requests as a quality gate, use a simpler model such as release branch lines and automate visualization of coupling between classes and modules. Light coupling is easier to maintain and lets you reutilize the module/class more readily.
  • Avoid third-party libraries, and try to solve any given problem with only one library/technology to reduce security risks.

Full post here, 10 mins read