Startrekzky commented on code in PR #634:
URL: 
https://github.com/apache/incubator-devlake-website/pull/634#discussion_r1312979449


##########
docs/_temp/Installation.md:
##########
@@ -0,0 +1,64 @@
+---
+title: "How to Organize Devlake Projects"
+sidebar_position: 1
+description: >
+  How to Organize Devlake Projects
+---
+
+## 1. Introduction
+A typical team of developers works with `pull requests`, `deployments`, and 
`issues` (a.k.a. Bugs for deployment).
+
+Based on such, we want to measure their productivity and stability. This is 
how [DORA](docs/DORA.md) does that:
+- Productivity:
+  - How many times does the team `deploy`? (a.k.a. [Deployment 
Frequency](docs/Metrics/DeploymentFrequency.md))
+  - How fast are the `pull requests` resolved? (a.k.a. [Lead 
Time](docs/Metrics/LeadTimeForChanges.md))
+- Stability:
+  - How many `issues` per `deploys` does the team have? (a.k.a. [Change 
Failure Rate](docs/Metrics/CFR.md))

Review Comment:
   Can we use incidents to replace issues here and in the following sections?
   
   I want the users to understand that the real entities being measured in DORA 
are `incidents`, a specific type of `issues` according to DevLake's abstraction.



##########
docs/_temp/Installation.md:
##########
@@ -0,0 +1,64 @@
+---
+title: "How to Organize Devlake Projects"
+sidebar_position: 1
+description: >
+  How to Organize Devlake Projects
+---
+
+## 1. Introduction
+A typical team of developers works with `pull requests`, `deployments`, and 
`issues` (a.k.a. Bugs for deployment).
+
+Based on such, we want to measure their productivity and stability. This is 
how [DORA](docs/DORA.md) does that:
+- Productivity:
+  - How many times does the team `deploy`? (a.k.a. [Deployment 
Frequency](docs/Metrics/DeploymentFrequency.md))
+  - How fast are the `pull requests` resolved? (a.k.a. [Lead 
Time](docs/Metrics/LeadTimeForChanges.md))
+- Stability:
+  - How many `issues` per `deploys` does the team have? (a.k.a. [Change 
Failure Rate](docs/Metrics/CFR.md))
+  - How fast are these `issues` solved? (a.k.a. [Median Time to 
Restore](docs/Metrics/MTTR.md))
+
+All these questions/metrics are based on either `pull requests`, 
`deployments`, or `issues`.
+
+But when we scale this up, few problems arise:
+- A team usually works with multiple repositories
+- A team also might work on different projects, and we want to measure these 
projects separately (e.g. it is not the same to work on a big old legacy than 
on a greenfield)
+- There may be multiple teams
+
+This is where the `project` concept comes to play.
+
+## 2. What is a DevLake project?
+In the real world, a project is something being built and/or researched to 
solve some problem or to open new grounds.
+In software development, a project is just a grouping of something. In 
DevLake, a `project` is a grouping of `pull requests`, `deployments`, or 
`issues`.
+
+![](project_simple.png)
+
+## 3. As a team lead, how many DevLake projects do I need?
+
+Because of its simplicity, the concept is flexible: you decide how to arrange 
`pull requests`, `deployments`, and `issues`
+either by your specific projects, by teams, technology, or any other way.
+
+Let's consider an example:

Review Comment:
   Shall we make the structure as use case 1/2/3 and etc., so that we can add 
more in the future? For example:
   - use case 1: the one you wrote, each team has `1 Jira board`, `x Git 
repos`, and each deployment is performed within a repo
   - use case 2: a more complex combination, 
      - each team maintains `X Jira boards for requirements`, but also shares 
`Y Jira boards for bugs and incidents`.
      - each team maintains `X repos for mainapps`, but also shares some `Y 
repos for libraries`.
      - each team maintains their own deployments for mainapps
    - use case 3: a case that incidents and deployments are both from Webhook
    - etc.



##########
docs/_temp/Installation.md:
##########
@@ -0,0 +1,64 @@
+---
+title: "How to Organize Devlake Projects"
+sidebar_position: 1
+description: >
+  How to Organize Devlake Projects
+---
+
+## 1. Introduction
+A typical team of developers works with `pull requests`, `deployments`, and 
`issues` (a.k.a. Bugs for deployment).
+
+Based on such, we want to measure their productivity and stability. This is 
how [DORA](docs/DORA.md) does that:
+- Productivity:
+  - How many times does the team `deploy`? (a.k.a. [Deployment 
Frequency](docs/Metrics/DeploymentFrequency.md))
+  - How fast are the `pull requests` resolved? (a.k.a. [Lead 
Time](docs/Metrics/LeadTimeForChanges.md))
+- Stability:
+  - How many `issues` per `deploys` does the team have? (a.k.a. [Change 
Failure Rate](docs/Metrics/CFR.md))
+  - How fast are these `issues` solved? (a.k.a. [Median Time to 
Restore](docs/Metrics/MTTR.md))
+
+All these questions/metrics are based on either `pull requests`, 
`deployments`, or `issues`.
+
+But when we scale this up, few problems arise:
+- A team usually works with multiple repositories
+- A team also might work on different projects, and we want to measure these 
projects separately (e.g. it is not the same to work on a big old legacy than 
on a greenfield)
+- There may be multiple teams
+
+This is where the `project` concept comes to play.
+
+## 2. What is a DevLake project?
+In the real world, a project is something being built and/or researched to 
solve some problem or to open new grounds.
+In software development, a project is just a grouping of something. In 
DevLake, a `project` is a grouping of `pull requests`, `deployments`, or 
`issues`.
+
+![](project_simple.png)
+
+## 3. As a team lead, how many DevLake projects do I need?
+
+Because of its simplicity, the concept is flexible: you decide how to arrange 
`pull requests`, `deployments`, and `issues`
+either by your specific projects, by teams, technology, or any other way.
+
+Let's consider an example:
+- There is 1 team working on 2 projects
+- The first project consists of 3 repositories with one of them worked most of 
the time
+- The second project only has 2 repos worked equal time among them
+
+![](projects_scaled.png)
+
+Note that:
+- If instead there were 2 separate teams, the structure would remain the same. 
The only thing to consider changing is the name of the project
+- The same applies to any other way of arranging the projects
+- It does not matter if a particular repository it touched more than the 
others. Why? The answer is in the section below
+
+### 3.1. What am I looking for with DORA?
+TODO: explain right and wrong ways to use DORA
+
+## 4. How do we organize projects when there is data from multiple 
connection(s)?
+TODO
+
+### 4.1. Webhooks
+TODO
+
+## 5. How do I know if the data of a project is successfully collected?

Review Comment:
   This could be a link to the FAQ you put up earlier.



##########
docs/_temp/Installation.md:
##########
@@ -0,0 +1,64 @@
+---
+title: "How to Organize Devlake Projects"
+sidebar_position: 1
+description: >
+  How to Organize Devlake Projects
+---
+
+## 1. Introduction
+A typical team of developers works with `pull requests`, `deployments`, and 
`issues` (a.k.a. Bugs for deployment).
+
+Based on such, we want to measure their productivity and stability. This is 
how [DORA](docs/DORA.md) does that:
+- Productivity:
+  - How many times does the team `deploy`? (a.k.a. [Deployment 
Frequency](docs/Metrics/DeploymentFrequency.md))
+  - How fast are the `pull requests` resolved? (a.k.a. [Lead 
Time](docs/Metrics/LeadTimeForChanges.md))
+- Stability:
+  - How many `issues` per `deploys` does the team have? (a.k.a. [Change 
Failure Rate](docs/Metrics/CFR.md))
+  - How fast are these `issues` solved? (a.k.a. [Median Time to 
Restore](docs/Metrics/MTTR.md))
+
+All these questions/metrics are based on either `pull requests`, 
`deployments`, or `issues`.
+
+But when we scale this up, few problems arise:
+- A team usually works with multiple repositories

Review Comment:
   I can think of more problems:
   1. A `board` contains issues of multiple teams or projects
   2. A `repository` is managed by multiple teams or projects, e.g. monorepos
   3. A `CICD pipeline or job` can trigger deployments in multiple repositories
   4. Some organizations want to measure DORA based on projects, and some want 
to measure it by teams.



##########
docs/_temp/Installation.md:
##########
@@ -0,0 +1,64 @@
+---
+title: "How to Organize Devlake Projects"
+sidebar_position: 1
+description: >
+  How to Organize Devlake Projects
+---
+
+## 1. Introduction
+A typical team of developers works with `pull requests`, `deployments`, and 
`issues` (a.k.a. Bugs for deployment).
+
+Based on such, we want to measure their productivity and stability. This is 
how [DORA](docs/DORA.md) does that:
+- Productivity:
+  - How many times does the team `deploy`? (a.k.a. [Deployment 
Frequency](docs/Metrics/DeploymentFrequency.md))
+  - How fast are the `pull requests` resolved? (a.k.a. [Lead 
Time](docs/Metrics/LeadTimeForChanges.md))
+- Stability:
+  - How many `issues` per `deploys` does the team have? (a.k.a. [Change 
Failure Rate](docs/Metrics/CFR.md))
+  - How fast are these `issues` solved? (a.k.a. [Median Time to 
Restore](docs/Metrics/MTTR.md))
+
+All these questions/metrics are based on either `pull requests`, 
`deployments`, or `issues`.
+
+But when we scale this up, few problems arise:
+- A team usually works with multiple repositories
+- A team also might work on different projects, and we want to measure these 
projects separately (e.g. it is not the same to work on a big old legacy than 
on a greenfield)
+- There may be multiple teams
+
+This is where the `project` concept comes to play.
+
+## 2. What is a DevLake project?
+In the real world, a project is something being built and/or researched to 
solve some problem or to open new grounds.
+In software development, a project is just a grouping of something. In 
DevLake, a `project` is a grouping of `pull requests`, `deployments`, or 
`issues`.
+
+![](project_simple.png)
+
+## 3. As a team lead, how many DevLake projects do I need?
+
+Because of its simplicity, the concept is flexible: you decide how to arrange 
`pull requests`, `deployments`, and `issues`
+either by your specific projects, by teams, technology, or any other way.
+
+Let's consider an example:
+- There is 1 team working on 2 projects
+- The first project consists of 3 repositories with one of them worked most of 
the time
+- The second project only has 2 repos worked equal time among them
+
+![](projects_scaled.png)

Review Comment:
   Shall we use `incidents` and `deployments` in this diagram to keep the terms 
consistent in this doc?



##########
docs/_temp/Installation.md:
##########
@@ -0,0 +1,64 @@
+---
+title: "How to Organize Devlake Projects"
+sidebar_position: 1
+description: >
+  How to Organize Devlake Projects
+---
+
+## 1. Introduction
+A typical team of developers works with `pull requests`, `deployments`, and 
`issues` (a.k.a. Bugs for deployment).
+
+Based on such, we want to measure their productivity and stability. This is 
how [DORA](docs/DORA.md) does that:
+- Productivity:

Review Comment:
   This is an excellent and easy-to-understand interpretation of DORA. 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to