View on GitHub

kospex

Tools to help know your code and know your developers

Identifying developer and the technology landscape

For many organisations, some fundamental questions can be elusive to answer. Such as

Identifying Key Person Risk and Managing off boarding knowledge Transfer

The approach for key person and offboarding is the same, one is proactive and one is reactive, but the data used is the same.

The idea is the files with the LEAST amount of “active other committers” is a starting point for handover or knowledge transfer. The code “value” depends on whether that code is still in the organisation, which could be identified using the “Identifying aging and unmaintaned code” process below.

If someone’s leaving, what should we know, what do they need to hand over?

Identifying aging and unmaintained code

Older code is likely to be harder to maintain, invoke fear of change, and add to conceptual load because “it’s something we should look at, but not now”.

There are two ways of identifying aging and unmaintained code:

Bearing in mind, older code can just mean “feature complete” rather than unused (E.g. a datetime or file format utility may not need to change every year).

(Derived) Code Ownership

A simple “calculatable” code owenship can be performed by looking at:

This ties in with the maintenance view, where if there is no one in the organisation in either of these use cases, your organisation lacks “working knowledge” of the code.

Generate automated training lists for compliance and capability development.

Some organisations require developers to undergo security training annually for their languages, or provide material for new starters on technology used. We can identify the developers and the languages and technologies they’ve worked with by simply looking at code changes over the last year.

Even a comparison for broader snapshot to say, we are currently, based on last 180 days, developing mostly in Python, and modifying Docker and Terraform files.

For a leaving staff member, you can also view that technology or languages they’ve used over time for identifying “replacement skills”. E.g. Jane is leaving, what has she committed