Skip to content

Instantly share code, notes, and snippets.

@michellini
Created February 1, 2016 23:04
Show Gist options
  • Save michellini/a129118360afc1eefdf4 to your computer and use it in GitHub Desktop.
Save michellini/a129118360afc1eefdf4 to your computer and use it in GitHub Desktop.

Proof of Concept Success Criteria

Administration & Management

GitHub Enterprise makes management simple by providing an easy-to-use Web-based Management Console. Also configuring items such high availability, disaster recover backups, and scripting administrative tasks with the API can be utilized by more mature organizations.

  • Basic: System is ready for use with authentication
    • Measure: GitHub Enterprise configured (including authentication)
    • Measure: GitHub Enterprise backup configured
  • Moderate: Additional tools are connected to the instance, and high availability is working
    • Measure: Applications registered
    • Measure: Integrations
    • Measure: SSL configured
    • Measure: High availability configured
  • Advanced: APIs are being used to reduce administrative burden
    • Measure: Usage of API to improve user management

GitHub Issues

Issues are a key piece in workflows and maintaining a history. They are also key in providing metrics relating to commit purpose, code quality, and improvement velocity.

  • Basic: Issues are being used, can differentiate between bugs and features
    • Measure: Ability to differentiate between bugs and features
    • Measure: Measure ratio of commits to issues
  • Moderate: Issues have metadata to make them more meaningful to an organization. Commits are related to issues
    • Measure: Average number of issues that include labels, milestones, assignees
    • Measure: Average number of commit messages that include issue links
  • Advanced: Issues use markdown
    • Measure: Issues include tasks
    • Measure: Pull requests include connections to automatically close related issues on merge

GitHub Enterprise Structure and Layout

GitHub Enterprise is much more than just a Git version control system. When configured, used, and managed optimally, it can support collaboration, discovery, and simplified administration.

  • Basic: Repository visibility is maximized
    • Measure: Organization includes private and public repositories
    • Measure: Repositories include descriptions, README.md files
  • Moderate: Repository visibility is maximized and team @mentions are used
    • Measure: Ratio of Team @mentions to issues and pull requests
  • Advanced: Use additional tools to support discovery and data exposure
    • Measure: Use of GitHub Pages to support improved repository discovery
    • Measure: Documentation is provided that describes different teams, projects, and interaction techniques

Pull Requests

Pull requests are the key to using GitHub to improve code quality and involve more participants earlier in the development lifecycle. Pull requests also can provide background to developer code and documentation about decisions and code techniques.

  • Basic: Use pull requests in everyday development
    • Measure: Number of pull requests
    • Measure: Average lifespan of a pull request from open to first merge
  • Moderate: Make pull requests / GitHub Flow the primary development pattern with widespread adoption
    • Measure: Number of commits not related to a pull request
  • Advanced: Make pull requests useful for more than just code
    • Measure: Use of tasks
    • Measure: Pull requests edit files more than just code (based on file extensions)
    • Integration with outside tools such as CI, static code analysis and lint

Collaboration in Pull Requests

Pull requests are a key feature in building better software and the center piece of the GitHub Flow process. Pull requests provide value to mature and immature teams alike, and a key for the collaboration process.

  • Basic: Pull requests include comments from more than the originator
    • Measure: Average number of comments, unique-users per pull request
  • Moderate: Pull requests include comments and line-comments that cause code to be changed, user @mentions
    • Measure: Average number of comments, unique-users, line-comments, user and team @mentions per pull requests
    • Measure comments / line-comments before the final commit
  • Advanced: Pull requests operate as collaborative code reviews often utilizing outside tools and groups

General Collaboration

GitHub Enterprise supports collaboration in more than just pull requests.

  • Basic: Collaboration is used in issues to @mention users and teams
    • Measure: Number of issues that include user and team @mentions
  • Moderate: Collaboration happens across teams and interests
    • Measure: Teams are created around interests and across projects for better intra-organization communication

Markdown usage

GitHub Enterprise contains native support for rendering GitHub flavored markdown. Storing more than just code (documents, guides, resources) supports the goal of GitHub Enterprise being a system of record for more than just code. Using markdown in issue & pull request comments allows for better communication.

  • Basic: README populated
    • Measure: README.md has content, is valid markdown
  • Moderate: Markdown in use within the repository, issues, comments
    • Measure: README.md has content, is valid markdown
    • Measure: More than just README.md markdown content in the repository (use file type detection or extension)
    • Measure: Issues / comments include markdown syntax including links and tasks
  • Advanced: Repository starting to use markdown as effectively
    • Measure: Use tables, links, tasks, and headers to provide rich documents

POC Results

Practices that the measurable criteria will encourage and improve.

  • Better collaboration for your development team
  • Better traceability for changes made
  • More documentation written by developers (some may be in issues or pull requests, but documentation nevertheless)
  • Using Git LFS to store large files
  • Code discovery and reuse has improved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment