Software Agility

Definition

Software Agility indicates the easiness of a development team to understand and maintain an application. This index is derived from technology-specific code analysis which searches for the presence of embedded documentation and code readability good practices.

 

Thresholds

Thresholds used for Software Agility categories:

  • Low/Red: below 54.0
  • Medium/Orange: from 54.0 to 69.0
  • High/Green: above 69.0

 

Code Insights

Find below some code insight examples which contribute to the Software Agility index.

Avoid long ‘if/else if’ chains that could be replaced by a ‘switch’ statement
Read more
Avoid useless overriding method
Read more
The code contains too many uppercase control structure keywords
Read more
The code contains too many functions, interfaces or classes with closing not commented
Read more
The code contains too many functions throwing exceptions that have inconsistencies in “@throws” tags
Read more
The code contains too many functions not complying with naming conventions
Read more
The code contains too many class names that do not begin with an uppercase letter
Read more
Prefer to use an expression body for functions whose body consists of a single expression
Read more
Use short variable declarations (:=) for variables with default values
Read more
Avoid naming unused receivers
Read more
Avoid instantiation with new
Read more
Avoid ‘switch’ with too many ‘case’ statements
Read more
Variables should not be shadowed
Read more
In switch ‘default’ clauses should be last
Read more
A field should not duplicate the name of its containing class
Read more
Use == instead of ?: when dealing with nullable boolean
Read more
Prefer using expression Form for ‘if’ or ‘when’ in place of statement syntax
Read more
Do not use a labeled return for the last statement in a lambda
Read more
Avoid using multiple labeled returns in lambda expression
Read more
Use Elvis operator to avoid unclear syntax pattern
Read more