Skip to content

RFC: Formula needs attention (churn * cost * penalty produces unexpected results)  #41

Open
@etagwerker

Description

@etagwerker

Context

Initially the SkunkScore was calculated as churn * cost * penalty. This made sense based on the churn vs. complexity idea -> https://www.agileconnection.com/article/getting-empirical-about-refactoring

However, I quickly realized that this formula would not work when running skunk -b master -- more here: https://www.fastruby.io/blog/code-quality/escaping-the-tar-pit-at-rubyconf.html

So I decided to change the formula to be cost * penalty.

Alternatives

I think a potential solution is to apply a modified weight to churn, so that the formula could look like this:

skunk_score = (magical_weight * churn) * cost * penalty_factor

That way, the formula could work both as a snapshot and as a comparison between two branches.

Test

Testing this should show that removing complexity in a module, git committing, and then running skunk -b master produces a lower skunk score.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions