What is JHawk?
JHawk is a static code analysis tool - i.e. it takes the source code of your project and calculates metrics based on numerous aspects of the code - for example volume, complexity, relationships between class and packages and relationships within classes and packages. For a discussion on why static code analysis in general (and JHawk in particular) is a cost-effective means of assessing and ensuring code quality see our latest paper Where's my ROI?
From the start JHawk has been the leader in Java metrics tools. Since our first release over ten years go we have been the innovators - amongst these achievements we were the first to
produce IDE integration (for Visual Age for Java) and the first to provide the CSV, XML and HTML export formats. Our online articles on metrics (read them here) are widely consulted.
What value does JHawk bring to outsourcing?
One of the biggest issues in outsourcing is the assessment of quality by both the customer and the supplier. JHawk can provide that assurance by acting as a agreed source of criteria for assessing quality. The following features of JHawk enable this:
- Acceptable ranges can be set for particular metrics and for packages, classes and/or methods whose results fall outside that range to be flagged in reports
- Changes in metrics over different versions of the code can be reported
- New metrics can be created and included in the JHawk metric set. These metrics can be based on any criteria that can be accessed via Java e.g. database entries, source code repositories, bug reporting tools such as JIRA etc.
- Reports can be output in HTML, XML and CSV
- Reports can be generated using command line sequences (including Ant)
- Common configuration files can be used to share criteria across geographical locations
- Accuracy of JHawk metrics is unrivalled - it has been used in numerous academic studies - See here
From an outsourcers perspective JHawk can provide metrics which an either be used as a basis for a contractual agreement on particular levels or as a way to detect code that may have issues and therefore require further manual investigation. This means that code reviews can be directed rather than the reviewers having to review all of the code supplied. Using JHawks change reporting mechanisms (snapshots and dataviewer) changes in metrics will make reviewers aware of significant underlying code changes - the reviewer then only needs to examine the code that has changed. Ultimately accurate code reviews rely on (expensive) human effort - JHawk can significantly reduce this effort.
Outsource suppliers can use JHawk to assess whether the code meets contractual obligations (if the contract includes specific metric levels) or, as in the case of the outsourcers (above), it can direct pre-delivery reviewers to potential code issues. By having this level of certainty the delivery process becomes simpler and less likely to lead to expensive rework. By using the metrics produced by JHawk delivery efficiency increases as an agreed set of metrics between Customer and Supplier builds over time and the supplier is then in a position to detect issues on their side of the delivery process - rather than having a delivery refused. Ultimately this will build the trust between customer and supplier.
Even at the cheapest rates for offshore development ($15 per hour) the cost of a JHawk Corporate license ($800 or 57 offshore developer hours) is far outweighed by the benefits - even using JHawk just to locate code that may have issues will repay the cost in a very small number of projects. For a single outsource provider the base Professional license represents just over 8 developer hours.
Find out more by clicking on the links below