Giter VIP home page Giter VIP logo

conway's Introduction

conway

Conway's law

Any piece of software reflects the organizational structure that produced it.

A study that has been done at Microsoft concluded that

the prediction models built using organizational metrics against traditional code churn, code complexity, code coverage, code dependencies and pre-release defect measures to show that organizational metrics are better predictors of failure-proneness than the traditional metrics used so far.

This utility tries to measure some of the organizational metrics. Together with a code analysis tool it provides an accurate predictions of failure-proneness in software. It checks all files in GIT repository and show statistics for them.

Usage

To run the script, copy it to somewhere in $PATH and then run it from the directory of your project.

Example output:

app/models/membership.rb
Contributors: 24
Total edits: 83
1st contributor edits: 10
2nd contributor edits: 9

app/models/user.rb
Contributors: 27
Total edits: 164
1st contributor edits: 25
2nd contributor edits: 12

Conclusions

Based on that, one can conclude that there are a few problems with those files.

  • The number of contributors is large, which means that the developer rotation in the organization is also probably too often which usually affects knowledge retention and thus quality.
  • There probably isn't a single person that has the responsibility over those files. (If the code is very clean - this could be a good thing)
  • Large number of total edits suggests that the code is not respecting the single responsibility principle.
  • Large number of total edits may also suggests that the requirements change a lot and/or there is a lack of stability.

To analyze the numbers one need to scale them accordingly to the size of the organization and the project. A project that last a year has different sensible value of total edits than a project that last 10 years.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.