How to get more out of your code than technical metrics
GitHub Analytics to Predict the Success of your Application
Traditional Code Analysis (Tools)
Reviews – Internal / External– Pros – Great improvement, learning
opportunity– Cons – Time consuming
Static Analysis – Analyzing Source Code Without Executing
– Pros – Scans entire code base– Cons – Rule based, false positives
Focus on Technical Metrics
But what is the business impact?
What else can you get from your repos that helps you with business decisions?
Your repos contain a wealth of information and value, in addition to code storage!
• Product• People • Process
$ curl https://api.github.com/repos/coreos/fleet{ "id": 13512328, "name": "fleet", "full_name": "coreos/fleet", "owner": { "login": "coreos", "id": 3730757, ... "events_url": "https://api.github.com/users/coreos/events{/privacy}", "received_events_url": "https://api.github.com/users/coreos/received_events", "type": "Organization", "site_admin": false }, ... "collaborators_url": "https://api.github.com/repos/coreos/fleet/collaborators{/collaborator}", "teams_url": "https://api.github.com/repos/coreos/fleet/teams", "hooks_url": "https://api.github.com/repos/coreos/fleet/hooks", "issue_events_url": "https://api.github.com/repos/coreos/fleet/issues/events{/number}", "events_url": "https://api.github.com/repos/coreos/fleet/events", ... "updated_at": "2015-03-04T08:09:16Z", "pushed_at": "2015-02-27T22:09:53Z", ... "size": 11543, "stargazers_count": 1594, "language": "Go", "has_issues": true, ... }, "network_count": 166, "subscribers_count": 122}
Product
Focus of code reviews & static analysisBeyond Code, you can extract info from your repo:• Total # Lines of code• Change in the # of lines of code over
time• Size (roughly, server side disk usage)• Programming Languages Used
People
• Collaborators / Active collaborators / Contributions
• Stars• Followers
Process• All of the push/pull/clone/fork/branch
artifacts that we normally associate with Git repos
• Issues / Problems• Commits - seeing the history and correlating
to milestones• History of events that occurred on the repo
How will this help me?
- Rebuild or continue maintenance?- Outsource or in house?- Add team members or downsize?
- Specific skills- Personalities
- What technologies?- Will I make delivery date?- Will this satisfy my users?- Will I run over budget?
Success
• You can leverage data about code, people and process info to make better decisions
• Data driven decisions will help you to consistently meet your business objectives
Machine Learning, Analytics, Simulation
• Deep insight into success factors like resource allocation and sprint planning
• Predictions from our AI• Minimize uncertainty
Can’t I just do this myself?
Could track it all yourself, but w/ Grip you’ll get:• Visual presentation -> improved perception• History -> trends & inflection point• Benchmarks -> compare with other efforts