From aa318ceab100b20938219192603004497b02413d Mon Sep 17 00:00:00 2001 From: Hiroyuki Sato Date: Tue, 18 Aug 2020 23:26:36 +0900 Subject: [PATCH] =?UTF-8?q?direction=E4=BB=A5=E4=B8=8B=E3=81=AE=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=82=B8=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/direction/Fulldevops.png | Bin 0 -> 217041 bytes source/direction/Personas.png | Bin 0 -> 32680 bytes source/direction/_categories-content.erb | 29 ++ source/direction/_categories.erb | 14 + source/direction/_contribute.erb | 12 + source/direction/_jtbd-list.erb | 41 ++ source/direction/_okrs-list.erb | 24 ++ source/direction/_other.erb | 16 + source/direction/_workflows-content.erb | 28 ++ source/direction/_workflows.erb | 9 + source/direction/acquisition/index.html.md | 125 ++++++ source/direction/breadth/index.html.haml | 15 + source/direction/breadth/sdlc.html.haml | 25 ++ source/direction/categories.png | Bin 0 -> 115751 bytes source/direction/complex-pipeline.svg | 2 + .../configure/auto_devops/index.html.md | 96 +++++ .../direction/configure/chatops/index.html.md | 47 ++ .../cluster_cost_optimization/index.html.md | 79 ++++ .../infrastructure_as_code/index.html.md | 111 +++++ .../kubernetes_management/index.html.md | 100 +++++ .../configure/runbooks/index.html.md | 59 +++ .../configure/serverless/index.html.md | 84 ++++ .../direction/configure/template.html.md.erb | 260 +++++++++++ source/direction/conversion/index.html.md | 123 ++++++ .../code_review/competitors/index.html.md | 233 ++++++++++ .../create/code_review/index.html.md | 326 ++++++++++++++ .../images/GitLab-designer-workflow.png | Bin 0 -> 72624 bytes .../images/Typical-designer-workflow.png | Bin 0 -> 103401 bytes .../create/design_management/index.html.md | 206 +++++++++ .../create/design_system/index.html.md | 140 ++++++ .../create/ecosystem/api/index.html.md | 141 ++++++ .../frontend-ux-foundations/index.html.md | 116 +++++ .../create/ecosystem/gdk/index.html.md | 149 +++++++ .../direction/create/ecosystem/index.html.md | 157 +++++++ .../ecosystem/integrations/index.html.md | 218 ++++++++++ .../create/editor_extension/index.html.md | 106 +++++ source/direction/create/gitaly/index.html.md | 225 ++++++++++ .../create/gitlab_docs/index.html.md | 110 +++++ .../create/gitlab_handbook/index.html.md | 68 +++ source/direction/create/gitter/index.html.md | 97 +++++ .../create/live_preview/index.html.md | 32 ++ .../direction/create/snippets/index.html.md | 152 +++++++ .../source_code_management/index.html.md | 254 +++++++++++ .../create/static_site_editor/index.html.md | 75 ++++ source/direction/create/template.html.md.erb | 13 + source/direction/create/web_ide/index.html.md | 186 ++++++++ source/direction/create/wiki/index.html.md | 155 +++++++ .../container_host_security/index.html.md | 207 +++++++++ .../container_network_security/index.html.md | 150 +++++++ source/direction/defend/rasp/index.html.md | 75 ++++ source/direction/defend/template.html.md.erb | 303 +++++++++++++ source/direction/defend/ueba/index.html.md | 50 +++ .../web_application_firewall/index.html.md | 98 +++++ source/direction/depth/index.html.haml | 15 + source/direction/depth/sdlc.html.haml | 26 ++ source/direction/designers/index.html.md | 24 ++ source/direction/dev/plans/_create.erb | 38 ++ source/direction/dev/plans/_manage.erb | 32 ++ source/direction/dev/plans/_plan.erb | 33 ++ source/direction/dev/strategies/_create.erb | 47 ++ source/direction/dev/strategies/_manage.erb | 3 + source/direction/dev/strategies/_plan.erb | 3 + source/direction/dev/template.html.md.erb | 177 ++++++++ .../dev/themes/_automated_code_review.erb | 9 + .../_enterprise_digital_transformation.erb | 12 + .../dev/themes/_more_devops_personas.erb | 12 + .../dev/themes/_project_to_product.erb | 14 + .../dev/themes/_remote_development.erb | 14 + .../dev/themes/_value_stream_measurement.erb | 14 + .../cloud_native_installation/index.html.md | 136 ++++++ source/direction/distribution/index.html.md | 54 +++ .../distribution/omnibus/index.html.md | 148 +++++++ source/direction/ee-versions.png | Bin 0 -> 84696 bytes .../direction/enablement/plans/_database.erb | 8 + .../enablement/plans/_distribution.erb | 41 ++ source/direction/enablement/plans/_geo.erb | 65 +++ .../enablement/plans/_global-search.erb | 13 + .../enablement/plans/_infrastructure.erb | 9 + source/direction/enablement/plans/_memory.erb | 10 + .../direction/enablement/template.html.md.erb | 200 +++++++++ source/direction/expansion/index.html.md | 110 +++++ source/direction/fulfillment/index.html.md | 71 +++ .../geo/backup_restore/index.html.md.erb | 196 +++++++++ .../geo/disaster_recovery/index.html.md.erb | 217 ++++++++++ .../geo/geo_replication/index.html.md.erb | 226 ++++++++++ source/direction/geo/index.html.md.erb | 37 ++ source/direction/global-search/index.html.md | 100 +++++ source/direction/growth/index.html.md | 307 +++++++++++++ source/direction/index.html.md.erb | 320 ++++++++++++++ source/direction/kickoff/template.html.md.erb | 158 +++++++ .../manage/audit-events/index.html.md | 138 ++++++ .../manage/audit-reports/index.html.md | 133 ++++++ source/direction/manage/auth/index.html.md | 59 +++ .../manage/code-analytics/index.html.md | 45 ++ .../manage/compliance-controls/index.html.md | 62 +++ .../compliance-frameworks/index.html.md | 47 ++ .../compliance-management/index.html.md | 132 ++++++ .../manage/devops-reports/index.html.md | 53 +++ .../direction/manage/importers/index.html.md | 91 ++++ .../manage/internationalization/index.html.md | 70 +++ .../manage/planning-analytics/index.html.md | 40 ++ .../direction/manage/subgroups/index.html.md | 77 ++++ source/direction/manage/template.html.md.erb | 299 +++++++++++++ .../direction/manage/templates/index.html.md | 44 ++ source/direction/manage/users/index.html.md | 54 +++ .../value_stream_management/index.html.md | 141 ++++++ source/direction/maturity/template.html.haml | 148 +++++++ source/direction/microservices/index.html.md | 28 ++ .../monitor/apm/logging/index.html.md | 58 +++ .../monitor/apm/metrics/index.html.md | 133 ++++++ .../monitor/apm/tracing/index.html.md | 41 ++ .../apm/workflow/instrument/index.html.md | 53 +++ .../alert_management/index.html.md | 73 ++++ .../cluster_monitoring/index.html.md | 41 ++ .../index.html.md | 92 ++++ .../error_tracking/index.html.md | 67 +++ .../incident_management.png | Bin 0 -> 64033 bytes .../incident_management/index.html.md | 95 +++++ .../status_page/index.html.md | 100 +++++ .../monitor/self-monitoring/index.html.md | 37 ++ source/direction/monitor/template.html.md.erb | 230 ++++++++++ .../monitor/workflows/improve/index.html.md | 38 ++ .../monitor/workflows/resolve/index.html.md | 45 ++ .../monitor/workflows/triage/index.html.md | 62 +++ source/direction/monorepos/index.html.md | 41 ++ .../direction/moonshots/template.html.md.erb | 8 + source/direction/operations/index.html.md | 33 ++ .../direction/operations/operationsflow.gif | Bin 0 -> 65821934 bytes .../direction/ops/strategies/_configure.erb | 14 + source/direction/ops/strategies/_monitor.erb | 13 + source/direction/ops/strategies/_package.erb | 16 + source/direction/ops/strategies/_release.erb | 27 ++ source/direction/ops/strategies/_verify.erb | 14 + source/direction/ops/template.html.md.erb | 298 +++++++++++++ source/direction/ops/themes/ops-as-code.erb | 21 + source/direction/ops/themes/ops-for-all.erb | 8 + .../ops/themes/progressive_delivery.erb | 5 + .../ops/themes/smart-feedback-loop.erb | 10 + .../direction/ops/themes/speedy_pipelines.erb | 5 + source/direction/ops/tiering/_configure.erb | 1 + source/direction/ops/tiering/_monitor.erb | 1 + source/direction/ops/tiering/_package.erb | 34 ++ source/direction/ops/tiering/_release.erb | 37 ++ source/direction/ops/tiering/_verify.erb | 25 ++ .../direction/ops/tiering/index.html.md.erb | 23 + .../package/container_registry/index.html.md | 78 ++++ .../package/dependency_firewall/index.html.md | 75 ++++ .../package/dependency_proxy/index.html.md | 108 +++++ .../direction/package/git_lfs/index.html.md | 61 +++ .../package/helm_chart_registry/index.html.md | 70 +++ .../package/jupyter_notebooks/index.html.md | 72 ++++ .../package/package_registry/index.html.md | 92 ++++ .../direction/paid_tiers/template.html.md.erb | 36 ++ .../personas/executives/executiveflow.gif | Bin 0 -> 52215888 bytes .../personas/executives/index.html.md | 34 ++ .../personas/release-managers/index.html.md | 26 ++ .../plan/epics/epicstree-direction.png | Bin 0 -> 123166 bytes source/direction/plan/epics/index.html.md | 69 +++ .../plan/issue_tracking/index.html.md | 281 ++++++++++++ .../plan/jira_importer/index.html.md | 106 +++++ .../plan/kanban_boards/index.html.md | 266 ++++++++++++ .../plan/portfolio_management/index.html.md | 116 +++++ .../project_management/one_year_plan.html.md | 81 ++++ .../project_management/sense-and-respond.png | Bin 0 -> 72053 bytes .../project_management/template.html.md.erb | 63 +++ .../plan/quality_management/index.html.md | 96 +++++ .../requirements_management/index.html.md | 152 +++++++ .../requirements_mind_map.png | Bin 0 -> 577708 bytes source/direction/plan/roadmaps/index.html.md | 52 +++ .../plan/roadmaps/roadmaps-direction.png | Bin 0 -> 109578 bytes .../direction/plan/service_desk/index.html.md | 203 +++++++++ source/direction/plan/template.html.md.erb | 163 +++++++ .../plan/time_tracking/index.html.md | 221 ++++++++++ .../create-preview-drafts-list.png | Bin 0 -> 108524 bytes .../product-vision/create-web-ide.png | Bin 0 -> 561491 bytes .../product-vision/depth/Depth20.png | Bin 0 -> 736726 bytes .../product-vision/depth/index.html.md.erb | 36 ++ .../product-vision/devops-loop-and-spans.png | Bin 23934 -> 71012 bytes .../product-vision/plan-epic-roadmaps.png | Bin 0 -> 26326 bytes .../product-vision/plan-jira-in-menu.png | Bin 0 -> 12297 bytes .../product-vision/product-categories.png | Bin 0 -> 48072 bytes source/direction/productstrategy.png | Bin 0 -> 156328 bytes .../direction/project-managers/index.html.md | 22 + .../project_management/index.html.md | 125 ++++++ .../advanced_deployments/index.html.md | 66 +++ .../release/continuous_delivery/index.html.md | 169 ++++++++ .../release/feature_flags/index.html.md | 119 ++++++ source/direction/release/pages/index.html.md | 81 ++++ .../release/release_evidence/index.html.md | 70 +++ .../release_orchestration/index.html.md | 123 ++++++ .../direction/release/review_apps/image.png | Bin 0 -> 88441 bytes .../direction/release/review_apps/image_1.png | Bin 0 -> 88441 bytes .../direction/release/review_apps/image_2.png | Bin 0 -> 88441 bytes .../release/review_apps/index.html.md | 87 ++++ .../release/secrets_management/index.html.md | 115 +++++ source/direction/retention/index.html.md | 165 +++++++ source/direction/sec/index.html.md | 9 + .../container-scanning/index.html.md | 83 ++++ .../dependency-scanning/index.html.md | 220 ++++++++++ .../license-compliance/index.html.md | 77 ++++ .../dynamic-analysis/dast/index.html.md | 123 ++++++ .../dynamic-analysis/iast/index.html.md | 84 ++++ .../pki-management/index.html.md | 60 +++ .../fuzz-testing/fuzz-testing/index.html.md | 403 ++++++++++++++++++ .../secure/fuzz-testing/index.html.md | 10 + .../secure/static-analysis/sast/index.html.md | 147 +++++++ .../secret-detection/index.html.md | 111 +++++ source/direction/secure/template.html.md.erb | 333 +++++++++++++++ .../security-benchmarking/index.html.md | 60 +++ .../vulnerability-database/index.html.md | 71 +++ .../vulnerability_management/index.html.md | 117 +++++ source/direction/security/index.html.md.erb | 115 +++++ source/direction/security/securityflow.gif | Bin 0 -> 16788963 bytes source/direction/swot/index.html.md | 45 ++ .../telemetry/analysis/index.html.md | 96 +++++ .../telemetry/collection/index.html.md | 124 ++++++ source/direction/telemetry/index.html.md | 124 ++++++ .../accessibility_testing/index.html.md | 68 +++ .../verify/code_quality/index.html.md | 64 +++ .../verify/code_testing/index.html.md | 64 +++ .../azure_devops_detail.html.md | 53 +++ .../continuous_integration/index.html.md | 102 +++++ .../jobs_to_be_done.html.md.erb | 39 ++ .../verify/jenkins_importer/index.html.md | 66 +++ .../verify/load_testing/index.html.md | 70 +++ .../verify/merge_trains/index.html.md | 65 +++ source/direction/verify/runner/index.html.md | 129 ++++++ .../verify/usability_testing/index.html.md | 69 +++ .../verify/web_performance/index.html.md | 55 +++ .../versioned-dependencies/index.html.md | 31 ++ .../viable-categories/index.html.haml | 11 + .../viable-categories/sdlc-viable.html.haml | 23 + 232 files changed, 18720 insertions(+) create mode 100644 source/direction/Fulldevops.png create mode 100644 source/direction/Personas.png create mode 100644 source/direction/_categories-content.erb create mode 100644 source/direction/_categories.erb create mode 100644 source/direction/_contribute.erb create mode 100644 source/direction/_jtbd-list.erb create mode 100644 source/direction/_okrs-list.erb create mode 100644 source/direction/_other.erb create mode 100644 source/direction/_workflows-content.erb create mode 100644 source/direction/_workflows.erb create mode 100644 source/direction/acquisition/index.html.md create mode 100644 source/direction/breadth/index.html.haml create mode 100644 source/direction/breadth/sdlc.html.haml create mode 100644 source/direction/categories.png create mode 100644 source/direction/complex-pipeline.svg create mode 100644 source/direction/configure/auto_devops/index.html.md create mode 100644 source/direction/configure/chatops/index.html.md create mode 100644 source/direction/configure/cluster_cost_optimization/index.html.md create mode 100644 source/direction/configure/infrastructure_as_code/index.html.md create mode 100644 source/direction/configure/kubernetes_management/index.html.md create mode 100644 source/direction/configure/runbooks/index.html.md create mode 100644 source/direction/configure/serverless/index.html.md create mode 100644 source/direction/configure/template.html.md.erb create mode 100644 source/direction/conversion/index.html.md create mode 100644 source/direction/create/code_review/competitors/index.html.md create mode 100644 source/direction/create/code_review/index.html.md create mode 100644 source/direction/create/design_management/images/GitLab-designer-workflow.png create mode 100644 source/direction/create/design_management/images/Typical-designer-workflow.png create mode 100644 source/direction/create/design_management/index.html.md create mode 100644 source/direction/create/design_system/index.html.md create mode 100644 source/direction/create/ecosystem/api/index.html.md create mode 100644 source/direction/create/ecosystem/frontend-ux-foundations/index.html.md create mode 100644 source/direction/create/ecosystem/gdk/index.html.md create mode 100644 source/direction/create/ecosystem/index.html.md create mode 100644 source/direction/create/ecosystem/integrations/index.html.md create mode 100644 source/direction/create/editor_extension/index.html.md create mode 100644 source/direction/create/gitaly/index.html.md create mode 100644 source/direction/create/gitlab_docs/index.html.md create mode 100644 source/direction/create/gitlab_handbook/index.html.md create mode 100644 source/direction/create/gitter/index.html.md create mode 100644 source/direction/create/live_preview/index.html.md create mode 100644 source/direction/create/snippets/index.html.md create mode 100644 source/direction/create/source_code_management/index.html.md create mode 100644 source/direction/create/static_site_editor/index.html.md create mode 100644 source/direction/create/template.html.md.erb create mode 100644 source/direction/create/web_ide/index.html.md create mode 100644 source/direction/create/wiki/index.html.md create mode 100644 source/direction/defend/container_host_security/index.html.md create mode 100644 source/direction/defend/container_network_security/index.html.md create mode 100644 source/direction/defend/rasp/index.html.md create mode 100644 source/direction/defend/template.html.md.erb create mode 100644 source/direction/defend/ueba/index.html.md create mode 100644 source/direction/defend/web_application_firewall/index.html.md create mode 100644 source/direction/depth/index.html.haml create mode 100644 source/direction/depth/sdlc.html.haml create mode 100644 source/direction/designers/index.html.md create mode 100644 source/direction/dev/plans/_create.erb create mode 100644 source/direction/dev/plans/_manage.erb create mode 100644 source/direction/dev/plans/_plan.erb create mode 100644 source/direction/dev/strategies/_create.erb create mode 100644 source/direction/dev/strategies/_manage.erb create mode 100644 source/direction/dev/strategies/_plan.erb create mode 100644 source/direction/dev/template.html.md.erb create mode 100644 source/direction/dev/themes/_automated_code_review.erb create mode 100644 source/direction/dev/themes/_enterprise_digital_transformation.erb create mode 100644 source/direction/dev/themes/_more_devops_personas.erb create mode 100644 source/direction/dev/themes/_project_to_product.erb create mode 100644 source/direction/dev/themes/_remote_development.erb create mode 100644 source/direction/dev/themes/_value_stream_measurement.erb create mode 100644 source/direction/distribution/cloud_native_installation/index.html.md create mode 100644 source/direction/distribution/index.html.md create mode 100644 source/direction/distribution/omnibus/index.html.md create mode 100644 source/direction/ee-versions.png create mode 100644 source/direction/enablement/plans/_database.erb create mode 100644 source/direction/enablement/plans/_distribution.erb create mode 100644 source/direction/enablement/plans/_geo.erb create mode 100644 source/direction/enablement/plans/_global-search.erb create mode 100644 source/direction/enablement/plans/_infrastructure.erb create mode 100644 source/direction/enablement/plans/_memory.erb create mode 100644 source/direction/enablement/template.html.md.erb create mode 100644 source/direction/expansion/index.html.md create mode 100644 source/direction/fulfillment/index.html.md create mode 100644 source/direction/geo/backup_restore/index.html.md.erb create mode 100644 source/direction/geo/disaster_recovery/index.html.md.erb create mode 100644 source/direction/geo/geo_replication/index.html.md.erb create mode 100644 source/direction/geo/index.html.md.erb create mode 100644 source/direction/global-search/index.html.md create mode 100644 source/direction/growth/index.html.md create mode 100644 source/direction/index.html.md.erb create mode 100644 source/direction/kickoff/template.html.md.erb create mode 100644 source/direction/manage/audit-events/index.html.md create mode 100644 source/direction/manage/audit-reports/index.html.md create mode 100644 source/direction/manage/auth/index.html.md create mode 100644 source/direction/manage/code-analytics/index.html.md create mode 100644 source/direction/manage/compliance-controls/index.html.md create mode 100644 source/direction/manage/compliance-frameworks/index.html.md create mode 100644 source/direction/manage/compliance-management/index.html.md create mode 100644 source/direction/manage/devops-reports/index.html.md create mode 100644 source/direction/manage/importers/index.html.md create mode 100644 source/direction/manage/internationalization/index.html.md create mode 100644 source/direction/manage/planning-analytics/index.html.md create mode 100644 source/direction/manage/subgroups/index.html.md create mode 100644 source/direction/manage/template.html.md.erb create mode 100644 source/direction/manage/templates/index.html.md create mode 100644 source/direction/manage/users/index.html.md create mode 100644 source/direction/manage/value_stream_management/index.html.md create mode 100644 source/direction/maturity/template.html.haml create mode 100644 source/direction/microservices/index.html.md create mode 100644 source/direction/monitor/apm/logging/index.html.md create mode 100644 source/direction/monitor/apm/metrics/index.html.md create mode 100644 source/direction/monitor/apm/tracing/index.html.md create mode 100644 source/direction/monitor/apm/workflow/instrument/index.html.md create mode 100644 source/direction/monitor/debugging_and_health/alert_management/index.html.md create mode 100644 source/direction/monitor/debugging_and_health/cluster_monitoring/index.html.md create mode 100644 source/direction/monitor/debugging_and_health/digital_experience_management/index.html.md create mode 100644 source/direction/monitor/debugging_and_health/error_tracking/index.html.md create mode 100644 source/direction/monitor/debugging_and_health/incident_management/incident_management.png create mode 100644 source/direction/monitor/debugging_and_health/incident_management/index.html.md create mode 100644 source/direction/monitor/debugging_and_health/status_page/index.html.md create mode 100644 source/direction/monitor/self-monitoring/index.html.md create mode 100644 source/direction/monitor/template.html.md.erb create mode 100644 source/direction/monitor/workflows/improve/index.html.md create mode 100644 source/direction/monitor/workflows/resolve/index.html.md create mode 100644 source/direction/monitor/workflows/triage/index.html.md create mode 100644 source/direction/monorepos/index.html.md create mode 100644 source/direction/moonshots/template.html.md.erb create mode 100644 source/direction/operations/index.html.md create mode 100644 source/direction/operations/operationsflow.gif create mode 100644 source/direction/ops/strategies/_configure.erb create mode 100644 source/direction/ops/strategies/_monitor.erb create mode 100644 source/direction/ops/strategies/_package.erb create mode 100644 source/direction/ops/strategies/_release.erb create mode 100644 source/direction/ops/strategies/_verify.erb create mode 100644 source/direction/ops/template.html.md.erb create mode 100644 source/direction/ops/themes/ops-as-code.erb create mode 100644 source/direction/ops/themes/ops-for-all.erb create mode 100644 source/direction/ops/themes/progressive_delivery.erb create mode 100644 source/direction/ops/themes/smart-feedback-loop.erb create mode 100644 source/direction/ops/themes/speedy_pipelines.erb create mode 100644 source/direction/ops/tiering/_configure.erb create mode 100644 source/direction/ops/tiering/_monitor.erb create mode 100644 source/direction/ops/tiering/_package.erb create mode 100644 source/direction/ops/tiering/_release.erb create mode 100644 source/direction/ops/tiering/_verify.erb create mode 100644 source/direction/ops/tiering/index.html.md.erb create mode 100644 source/direction/package/container_registry/index.html.md create mode 100644 source/direction/package/dependency_firewall/index.html.md create mode 100644 source/direction/package/dependency_proxy/index.html.md create mode 100644 source/direction/package/git_lfs/index.html.md create mode 100644 source/direction/package/helm_chart_registry/index.html.md create mode 100644 source/direction/package/jupyter_notebooks/index.html.md create mode 100644 source/direction/package/package_registry/index.html.md create mode 100644 source/direction/paid_tiers/template.html.md.erb create mode 100644 source/direction/personas/executives/executiveflow.gif create mode 100644 source/direction/personas/executives/index.html.md create mode 100644 source/direction/personas/release-managers/index.html.md create mode 100644 source/direction/plan/epics/epicstree-direction.png create mode 100644 source/direction/plan/epics/index.html.md create mode 100644 source/direction/plan/issue_tracking/index.html.md create mode 100644 source/direction/plan/jira_importer/index.html.md create mode 100644 source/direction/plan/kanban_boards/index.html.md create mode 100644 source/direction/plan/portfolio_management/index.html.md create mode 100644 source/direction/plan/project_management/one_year_plan.html.md create mode 100644 source/direction/plan/project_management/sense-and-respond.png create mode 100644 source/direction/plan/project_management/template.html.md.erb create mode 100644 source/direction/plan/quality_management/index.html.md create mode 100644 source/direction/plan/requirements_management/index.html.md create mode 100644 source/direction/plan/requirements_management/requirements_mind_map.png create mode 100644 source/direction/plan/roadmaps/index.html.md create mode 100644 source/direction/plan/roadmaps/roadmaps-direction.png create mode 100644 source/direction/plan/service_desk/index.html.md create mode 100644 source/direction/plan/template.html.md.erb create mode 100644 source/direction/plan/time_tracking/index.html.md create mode 100644 source/direction/product-vision/create-preview-drafts-list.png create mode 100644 source/direction/product-vision/create-web-ide.png create mode 100644 source/direction/product-vision/depth/Depth20.png create mode 100644 source/direction/product-vision/depth/index.html.md.erb create mode 100644 source/direction/product-vision/plan-epic-roadmaps.png create mode 100644 source/direction/product-vision/plan-jira-in-menu.png create mode 100644 source/direction/product-vision/product-categories.png create mode 100644 source/direction/productstrategy.png create mode 100644 source/direction/project-managers/index.html.md create mode 100644 source/direction/project_management/index.html.md create mode 100644 source/direction/release/advanced_deployments/index.html.md create mode 100644 source/direction/release/continuous_delivery/index.html.md create mode 100644 source/direction/release/feature_flags/index.html.md create mode 100644 source/direction/release/pages/index.html.md create mode 100644 source/direction/release/release_evidence/index.html.md create mode 100644 source/direction/release/release_orchestration/index.html.md create mode 100644 source/direction/release/review_apps/image.png create mode 100644 source/direction/release/review_apps/image_1.png create mode 100644 source/direction/release/review_apps/image_2.png create mode 100644 source/direction/release/review_apps/index.html.md create mode 100644 source/direction/release/secrets_management/index.html.md create mode 100644 source/direction/retention/index.html.md create mode 100644 source/direction/sec/index.html.md create mode 100644 source/direction/secure/composition-analysis/container-scanning/index.html.md create mode 100644 source/direction/secure/composition-analysis/dependency-scanning/index.html.md create mode 100644 source/direction/secure/composition-analysis/license-compliance/index.html.md create mode 100644 source/direction/secure/dynamic-analysis/dast/index.html.md create mode 100644 source/direction/secure/dynamic-analysis/iast/index.html.md create mode 100644 source/direction/secure/dynamic-analysis/pki-management/index.html.md create mode 100644 source/direction/secure/fuzz-testing/fuzz-testing/index.html.md create mode 100644 source/direction/secure/fuzz-testing/index.html.md create mode 100644 source/direction/secure/static-analysis/sast/index.html.md create mode 100644 source/direction/secure/static-analysis/secret-detection/index.html.md create mode 100644 source/direction/secure/template.html.md.erb create mode 100644 source/direction/secure/vulnerability-research/security-benchmarking/index.html.md create mode 100644 source/direction/secure/vulnerability-research/vulnerability-database/index.html.md create mode 100644 source/direction/secure/vulnerability_management/index.html.md create mode 100644 source/direction/security/index.html.md.erb create mode 100644 source/direction/security/securityflow.gif create mode 100644 source/direction/swot/index.html.md create mode 100644 source/direction/telemetry/analysis/index.html.md create mode 100644 source/direction/telemetry/collection/index.html.md create mode 100644 source/direction/telemetry/index.html.md create mode 100644 source/direction/verify/accessibility_testing/index.html.md create mode 100644 source/direction/verify/code_quality/index.html.md create mode 100644 source/direction/verify/code_testing/index.html.md create mode 100644 source/direction/verify/continuous_integration/azure_devops_detail.html.md create mode 100644 source/direction/verify/continuous_integration/index.html.md create mode 100644 source/direction/verify/continuous_integration/jobs_to_be_done.html.md.erb create mode 100644 source/direction/verify/jenkins_importer/index.html.md create mode 100644 source/direction/verify/load_testing/index.html.md create mode 100644 source/direction/verify/merge_trains/index.html.md create mode 100644 source/direction/verify/runner/index.html.md create mode 100644 source/direction/verify/usability_testing/index.html.md create mode 100644 source/direction/verify/web_performance/index.html.md create mode 100644 source/direction/versioned-dependencies/index.html.md create mode 100644 source/direction/viable-categories/index.html.haml create mode 100644 source/direction/viable-categories/sdlc-viable.html.haml diff --git a/source/direction/Fulldevops.png b/source/direction/Fulldevops.png new file mode 100644 index 0000000000000000000000000000000000000000..a077106728e15d67993f13cdd3c2c32e6e619cb4 GIT binary patch literal 217041 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 z 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 I2CirR4WY_+S^xk5 literal 0 HcmV?d00001 diff --git a/source/direction/Personas.png b/source/direction/Personas.png new file mode 100644 index 0000000000000000000000000000000000000000..f694ab1b7eff19ba329362f97f8e790d386d9b0f GIT binary patch literal 32680 zcmbq)Wl)=4)Gd;h-~@LG?pCZg1lQv3S{w=lcX!v~6!%gn?(Vcmi#x@FJAAx<@BQwt zJDE&o&Y4V3p0m%|Yp=CWl&Z1}Itnog92^|FoGe5Q4h}x}?cEN1|28s}kbDdW7vLlZ z5!ZnJIrc+_rda+6(6nN6t8=U4-VU%jB|9SkC_%17gyJdfM5etuB=A!Qxz2+zl@~MLdh1q zH7bg-gmxT+V0Cr%0A$fexj(<^5B2~q<~kXr_O@< zdf2*6CNLDX^7M)^_R5EhjC>Be4YM7MqSz}TIg;L^ssBqq*dVGDW3G)yS0AicOpO@X zYtLH)C^ZRNe4)UWadA1P{SaH2aBy&t-`C;KVH??d4r^|hvUZ9zwc8)$czUcq4#m$r zYoD~bbh0f0hI0J5s&8OVNJv-=9Q1T=T)xYuorKnoByV(>RtI(ZDxe8Il%(@G{o;_R z2-g%Xwmf4^F!NN7w>H1T(QyoK;ACCC0(E$TWU+;gx|39AstRV&m4GU+@v^<4`t7Rb zYX8pg@vLS&-T-?c1z!5vp#0Y)>1Z*aX~C`|2O*oJ0(q*ZsacV&yH$3DnX{F|cxvJM zn_szvH_y}`7g~+fUKr3Nh?d?_ZRF#r*eu({6fMUMp4+$b1X-35snFAB@rE?>qtg&0 zTW$0N5lR%ye8QsQ;kmZv5Y>*ZHzEN_ygFXi%pUi-=`9lX2z0x-l9Hr;_Qnwk=Wo8< z%I$A@e1x3hN89ryB~c^q@3h=Vnz5 zHCi+s+Nv^9&v@ewT;gPhuf3aieGTz~zS|)jkw<&yjm`7)nz{p-Pf9SEBH{a9i9C0Jnl$J<%%U6`?P8j*P*gV=4-XH^^h z+alwVv0hvM@VN&?=sY$3`BGdMiqv5LZvDsr{5Jr{CAq)K-K&Vbrd1ypZ?k4+6V5-sJVS?|Zs@2==-? zdRw8^T9pkL3j>03a&nnC51y1!1~Zz|ee2A%B&PMRcjZ%Y0M!}FOr1=Vh{Y$kIzQYv zlw1|)6y)yFdhkAc$S#~H_daXL4R$7~4nz)&#&~aopx7fi97{Z^#nPRUCi3{f$7|co zPi;Z8Gn+M6G+}pt_hU-RWL-Zvs`P{iTCf|3CtUvtDL7U^{zGSGn$<_{f#e>m_-O0t zb=-a?a?kah17wY$(uADX(j4=pjxC5*X8xpfEMadti*DbV|D(eX^I?o1uDkNQE^l+H ziNoLGWvx^u;?3L77MsR?e;R;vI9AIk@OI{B+H`=r zG8pOT_V`j&4jP0J=`|0B5=Xmx23Da_BQd4b&;6(o-y83=mmUyl_GSj=M znRBU|P62WV-Q9P7I$pDFV3k@P`q;Gm1-D;z52C*N)Np=d$XwD4o9G~XFDi=p;Dm=Y zN%3&CQCtPknzJCmtDr&0{M?>! z0*iVoNtESk-KHf}_KqGVCZ^2(O_K@6P=V#;ChO()v#xQ+_7h%S?<*T#0MLA`6>`(p z_ja)RKh|3OTd*~}2hc?H2Z#qpSzQhdG?^|VD=TClLgbTeagLKl#ZbIe@wk^+gJ)BB!^B4F9 z>~MVHPVrQ8m46&Rj}^Icx&Yf2I>vc{Jg9q<%>j>t^bk1m#_Q&c|-RP^TsQk%d1e?GpJD#qxYFDsBTuJeqKy?;7i5iBB8)99{}%q;V%u?vkDIeXj+>OwWKuLeM42>q zg8?z7`zPX97jxtD6vG6LsmP{nwc5XN^4_*VRD$|v9})W9Gpe)BXF3vYZ<=CpO(gQVN)?mx~0$_3yUh?42F)TUH2Ibb5Z+FZWI53KUm9t!DL% z=Em)3H5Fzz;0xMe^6>B+r>KaS-mdwu=Wv)JFi%XIF2>87sZ7V18;cg~M;#D{y^C6t zpoKE%_r_$3tn_dcB3p1oTJf8-5@NoTW-1N8#i+ovP|b-4_R?cwJPEDs=(le3uuu7H zXtoJJ4g-yVw&bs(pQfhBM6tD8HzDurDn-O0Gn0@+AcUifvUk!@W}Ji-7QphBb(J{l zlS1Z~H+n;sc@_=&7i#o}$HvBVR5o`;Q|ylxYV2o=r0jP_lI(SY!dCf3k{sG-!%uul znsGH>UQ{NcE#<7h!D5o3So@`AnN!_9Wjk8nZ}{9{O&-m&d)Yn%p=p=`1h5X zRZH5&euKvzf=8?-efMvxtp5HzmA)t@I=r4U?9iSF3(p(5(NhdEQ**R?%TfE|jgq*S z<(0Qb!b$pj8j=lTU~8Il*NyaCH0iaxQ@ z+Z7&qs)_=(kq`u_t#MhF7b2(qT#W#W-q1kP7Ka<W(${x!Yd@vI}`~~F@2NZ@!=Iotjdvuo$2$K=)o{~0Pl@+CJy|VHH9NR z_`m@S=hWl1hqSl!s#O==bfGXr%#H=R;(#wHD|I@*b>ynOVL@LmZdJvsdsJm=-@$e9Ylk?^YhX(}25Cp{fD2v8$K*?|zz z>G`f-9R&;Yg~H^?5#9?Ul_P$)tezkMfV%F#F}*e}LxV900VLk?FK^7{9+}58b>QzS7xzMxgCq>s zB_v^`Cj;|fxiuI-4@I~&aq9!Jmvx-a|EleybzYn-YUIhDB2HyJI>LM%DWOzU1)E zby?j1c7c`+L~z{vxyegF`ZW>tZQ9rnckO1c(Rf}aS&UbRXT2RG2p%LpgVpKc=Wf3cbpn zK+W^x?Ii~&Szh5@`Fi@}_pi;l!Yp4IDZvLGU}#eaIedETo>eA>X_zWR(9op8u9|l8 z``OpO#m}dPp;SdO)@_5q11(YQN(}awMw9WmOiDLSGSg+!O0Adf(iw z2PA+T2U{aCGdB;|JXyZuwx{9qYu)VA#ys#NXL-D#5`Oiifn!l1`@>K&{J2f$A-~3)*ON!go15}Bv2^w2hr@BJvgowB5gAW74k}0-3hMpp zxi%Ud6QirCsTrXsv(X8-+?(8v{u)VX6S+}%Wij6#(iCeP;wt*Fma@=xRMX|DK9i5D zM?lQ-Yns&`RQyMqW}k=#DgLM9p;(RW-hIbN7p;36lUsr6!9kpDGT43ETRcy5sm1C~ zSWz4K8t3NbKIKCICs@75_RK!-Qcp;VV+3jI;)ut|$<+qbHg&Dk!6aF{k)0o0zm(#d3bou9~TVqHngXza6OM#ivX>*jkSaP;eq_UX@kawGYNU+O9i2_g@Xnp#@&taVAiDe}+H z_J7&@cP-07@Do32vFwm6WY}?f#g=|#O^5pPdzw@~*5$mb8 zm`-0;%@qt1j|9QzVGT9G)pg!v|1E5oLb>Vg+u!smjuL&W*=X~cRWh>Wu z(c^XSx{>s$DV{YOYkID)-Pu0SeqpqI*dBfh=S zf^yuSqaanIe{p9NBqTnx$Ag~qc*NPF=jDVQ%7EGyV;O=NB^e$WYFt zuOH{^5AeIZ1~{W`@)uvsOBCqGKQTtn)V|a7+{ub~S#m>$Tf(R&q9uLnufi;maDt*{ zIqTu!@BIa2wcq)ScR&2A`VW>2=@5iCZYH>=-=v1{`osCMCeJmmG8LMb{!k!RMo%k7 zFGrGlV#CK#dtXFkI6Tf5j{np@9YcUTG>mrg%T|hLvx9jjyiic#GV(4gTc2Yk}1yC=WbZiAVIO^Juzk>qQhv%QPB!8q&vIg98Z6s~Uk z>WZfR74-Bv&}%z1h9~86oHfgNybugU>bM0YuJGPr#DuVMt}a(G4JS}cJ9a;N7$vM~ z{(Pe`_Z2GOH&lzqf)DqFIcM6RQzI7y1rz)>@nVS0`J5LRNm(8h=<~kbv2iAO*a$Kv z7-d=Djv@L;K1~8O`jWsG`=)fROTMecZ-i$i_d!wOg8P+sQb=KrgA=C`ge~gj^eNZv zDAeXhKwJDtR;9H9%2u{mL-+Q%06}kCB#{Mg7cV`19$A;x@aKJ-r36?W->^(m&gJ&k zdWsu!6&iVb^~TIdv6|2272z$}8*>JK*+9oDKU0_wt@HiTar&6+I{JJ-g-I8039ym9 z>#nc6lIoa!=i!+6Fuf70iWr3(Y(ubQfpK%10d?QCmGbPjf|2^zj#IqU8XKy<)%bW%i7KAn;~ikNQxM9XGbGh+l%OW8 zFfKnlU}E!(L`lv4#tPvUNNz&|Evamgruyj+ zw_cxj&NV@JuRuEY_6LED4`{LAuToUll5fN%Jc#*<<5On_Ra@$}EVc3{o8U z18RP&^6~L?*`AaWzPL>RFLKbf8shu&28jUozI?NLb&hSWBJOT}T0QQ(4qYTzm&lqWDh=k(AR&y$Y z7~J;x>xT6!8K}Tj3Az@#8G=1##1!vXydntBq-PlA`qksPLWoZ;F0Y5(?tkcfvqImr z)TUzXlU630If`FP+P`l8F08AuK2lTp>uC#Vhc{Du01T_5MyfK)FyPU-F2DI8$*lf? zmbTks6x-u;2g1i=G^5)%8dv8nRPI&_kbs4LjHRwn_@{U)bk!Ou^HL4q! zQYol$F^`T|q&%e}6A`fpGmhd#_hA&RiJ*2T#FVS4L4N}sJ#=B~OYU5_l9GPmKo0s1 zY->#Hp!w&ftdz(Cr_G|0k`hr9S~XW!*AfQJ&JlawSNwj75cRl6ZHyR886j5yS=!J~ z;vcWXWcngBKL(TSKccnmTS5J?pL9b9;4TOfe~XD^&y0dp8#A$F!8Q%t)|1G49jeFy zT3lM5ZTpc0=fPV|3EcE`I%Atds*_IpZR?x(;PF#gj^mprR9+gXn z#dl^JN(G!mcrA(=hG>UT6;5&$&YT~6-w3<&Qf*rUcfY->KqmaC2b!HPOSA+p-Cplc z_`js){K~C1!CdbKA4i!iA_Z8-StqpIKexQPbCYmKM;25;0y9z*##J_2B&a~XUfp@R zHCi|4!xSxA=)d!}@C4cJO{=Ot12MxVGdV*#-=wzVx2oy5abp>e24O8cTN~YvsxrJ} z+EL(|y`lsc_BIKNaaO(0_mOV9+TpxwU$*cjIBP8>!ieF?&dIZQvhn^A#L5_Hy{LQ`RO=c{rcF55}5L3O6>18 zgu`<|@g~7@%?zpg@sCp1>p$)v_J_&!^ueq-Mi!#}P3@CsuUik+%P>>PH(du#XfoT+VdILh#?%Pw0kiYI9OzP%76133vcO&h zW36Oc{*ZkHChO138R}QZCsDJrO^8A1Rxad)UXFGLK<4-!$)2$yLGN5(eKMVZ zK-PdH48RkQ?vODhX&@_Nm&p^vhul9CeS*x&Jf>i6w^)14tn2&l7vs&_vu!F>$Y}iQ z*j_UpTu6n6Y6>sz1ATqIU2aydGs|&|vhtv8z)`VXURB?6Hnbmra!oqhAj(p*AG*5k9rr>> z{pCLT-v$U5ne)ZP$lN}gUU}GrOOn*{)(u&}zHQl%H=b*o{=J9iBzycXFIIC*iEz$4 zS5p3N#eCNhlQNFFP3DBin44K~GQ*t&%p(NFBtZRV~ z9|{@HpClwCQY{l3F3y)Z4YJIf2!+tI^E1ZHVU<0Vh4?blkt0%21oqbM>xIGN8@co2 zo_t!Ty|eKmolz`F9-U-9X@Hx)X|QN3;A(xfcpm3-B5-Q*!q}Dq@oaPX6Q}aAIAD4y zdXx6f4Fx4}-1S)e1C#LPucl)2B{|U%I5}XyYF&Jc)uI(i_J%;dsSoOZRKi()=vn1+ zvhDoU=6kJn<$g()2#Waz&^_aEyx^&cl9G}`vva@hp3t-TwCoA8wgU3vHPAy)v_MNu zDAhp^chYC6pgIqyKk!#qPqJwC^2~b=^ug1@tkEH-y`7=O&JS9j8MOI^Ted{_^vCgT z>cxk)3#uvlhrY-c!%YKBMi@C~@0MU6whuFgA8vR#_+WK*SI2MgfnnzwjNUarZq?-V z!F&Ec_GX%v7!oGTC^~PGA<1%pXAh{Oq!&z~k6V?1=#08O*;U-CV#+EE4o@trp5SBm zk@i(*Ej9@DkldYr`dT&p{Iqq4zf`XBt|$SWieX`|?%aZFVjuNq#ZZU>(lC$dIM6uy zF~_zZ!xjCyygns4x#RbfIVze%^zv2TmzdteBecFOUFZx8#w9|;dDlCkfrV{Eambtg zEJ<>T`6k1&@5e`36Xd0Rlrmc!5im!yx0%JdS@m3ZdAB0}9>XQU88dP#-i$s`RZ8le zzUz@0uUBT4pR*_Kt;xUMl-@Ba$|kN@W|^y@LludZF!rRSh7g<2MTa>N;e!|C5|wEp zVpz~Ve)c!=Sp7nDvOBzyMIBK_oBLO2?Xkk5TBD6uunXR(-S$mr=)`dhm3k&!uyI=J z$V%;wcyrX=E1-YyWQn9j`ZD>`Qy#@DW3&>5qfPka14Lea3@&>XCi&K+;575My+*7}Moh_e zabmXdT8;S-^I1SOl6FXpcwOY9&;m2aM0@V25&e28q#isvoCc=v(%fEor)Vqd#n1Pi1E|v(%F%Xma$AP1Nb`!}^srD)hTCD7>M|8OB=8>I zo)i7ZL~u=RWsUosw|ND3yA~*9S22 z#^63JEv>Q+snh)1>fUrFc6hExWo0fuQLo6}sN2au3bb53sDm=Q#LMML)JuHpzWpi9 z|E$_2QFgz`lREl^8j#foLEm)DiS)G}p>Zs-=KmSPQ&yLL@L(mk$cuB%a%8*(X95W>6z`+pNEw7aHN9Iy`KvN2_jiQO__=U( z>BSL7%;lB;Q1;PZ4WyIR_KZ~yCpMC_`~f3<(n)HEvX!V4E}QrL zIM7-2aF+?XdFB@M_{)DFlbTl~+E4ZdZJU4_aPYNnMMCq-IHdS|sNoRVL&$kA4mdSE zgz8wND_(hS@YcG)^P{6jzCAK;N-`+zrn~6U5DzVqteU+2_h{QLKBMUwxA%KeFDJVlF#j^3CD$G36}i6Zg7EM7~l93308fNpMiCMUcodzzr$ ztRd8T4Du4DLfEz1r^7zd1X*tSE}=J6Wm)^^Vfy11Tdf+-yMSRKE6-x(U7J}Z3Xwr5 znc{htuH4Y-8?Ia?Cf9{nK$FmKNV9V-Z5qB2CiM8c?i7P7^d%unm?Xf7R=BPKMA%u{ zDi!QFqX*S?AdemD6xi+hraEu%gepU&-97#IsBZfS6%i$#4C^dmk3b@mWh1qs^Ix%` z^C{|tqgL$=tn|C&sx2Mw=qTa4jgaHx>HtKdjImu5%#m4!n`ykXNvw!JuiS_E0DbhH*LrGr@gmWm?%-r^;Ol9Ip z&-3^WOw?K{E2D)`j+}H%+4S|Why8VEy=aucoW6^{U8brvwr#&W`;>mmnMrvMyRNWO zU!LoADF}7g}Xbps9I^T4=jlhVh4sVSY5-~|}Zey@oy+2U4h zeN$vJExyEF&QT~S;SiyS+AsDgTH@(PyD5Qecf)YM*U?Z?`BK&v`M$6AeDqxW^0Eex zM!*A?^kL$6+aLKBdUUtaev9Ei#rkE^mq&)DPMY~ZJV>2Ps2e*o7$KOzAawZI)ZbW+ zE9W0YF8NXAc7_Vox)%0yuilvFMb1!(+9yWb(1G*g zrs>8_sSq#lL(Jn? z)Za#;k2n2a$f^QG?e=XD{R!apUfOHpxA@Xn*<+jPD9HLnGI0lu!p`8q4fLjy0wC!9wdJPYDwO&ofdDu~W+R?vAN-;(u*VfF3^ z(uCIw!!1T41I!oB1B=79m~fuB)a1V{V4&fcjVVAbOL?g7_joP9a=7-YnkL zRD!b}i*p=mv)rcY@P|)_Lzk$R+a#W;5SKwRS?oI`A-A0ZfDq({bp#_ZfR;9!X>M{z z9d;WK_$2tBBbASd7oE>sj`TJn0863TiMi&w7v0i7L5>BX-#}nePQXlkH#P3f{ zB`^x!4H??J`zEk9Z3;vk|CXAq6^uwyy%8?5Mjak*L6hhFI;19CeN$k1*3{$iYY~yi z7xR52`pXOY&2y0ZIlp(*JWKe)iMG@|3*)u+O#2-c%c~0!vW>63%A55{fcHf&5gBUq zZhATNIr8lwJh?BQLq+Vtg z*TA>#1*XBqM*lEFeMX0_b`2oc2}F zvr#JMjp37C`F`V1R$8U($1-8vYCdlYkGCpz#a@aum0Z%-{{eG% zJ!xL7M^NB;yqwVS@NNDgPbev_sbaVMPoSZia(oF+i-3H8y62Mn!x+GLjZv#Ps3WGd z2&wM3do~cJr$CbeNvR-}HPOf?6c*Brh~i767hemEYax1P085ygo6DAoBYsD6qu0Hg zZC7g=78dpf(s55LRCU{h6fP(UTkWPm8t)~3HVhcZplUxmOoS@;ua9- zX<|iWYsKs0jPTb*+m0W(Gsv&%ix6&VlG(?IvIA2xBe@~OUJ8>A@`ZH=?wa?*+Ui%8 z&98(Py%27cwJ+hOG}Hg6uINOvNyDrGOg)#GGX(EXT@&@i1s2WhfE_qqPj~05-~t*Q zZ|{#k!fJ-~>a1>lUB53H>5Z)Gwu z2ycFk5QgK)F4c{spw(xszA15+^%xYGo{|8kJ;sTV5eEHw6Zo^;xz$w(PDXy;J7<~@ zVI6k~1wLO83CSbsre$82zlQI43-fjDix@_j$=v}1R-fPeR&KhuboCTe9}77w7)XWy zO|Z4Knr~;07`))c8q0jmtMKNfk62fCc@Myu#G{l^!;UN4+Z}A#2;!y%k#;H%pEAUH zZhRep%E&BXWFKsKK4)^8>+w3SjOc&74K=wSqMM*n-cA~)SZkHlztDLt>a)>m zmcGE)356kfZqi;N$6GXk*a^CE&Lj#gs{o-oa&>e`#1C7?bW?L zGW1m>i(wmX6kI0)D@c4D?#6K#(T38R0C%|M*iUx4UjoyRWV~@+DHH1jSK<5s171Qq z5ETD*fKqxZhT7UA1_V8n=bCW1n~$H98F=5SQg}DzJUbQvfqRs@*N8VoYU$jaLS>=J zQqoMndUQzd?)5p-4S3XqZ~zLF=)&+HmBy06R6rcMj08Sl)N6z6e;sn%itYq?a`4aF zsPN|0o38kE&dqMx}@ z^73ZmDD7{oulGKly}vilC*-mC_Tkl2|!zQ-8lkkiS6fwYSnk1p8_ovPli2Q#wNsCcly)zM9XGCFymxDjo z9O4^{z=d{5@9z>FZtV+vct@4sZ?<-ZsEgW&Wf3@bG<2uKx8~huOy}Q)vcs8pxb+I$ z40+o4JO-q*=*IfMBMhOYQYLh*0pp)19 zGL1`dwBM?FCx6f()GbcP48Q}I;|Ca5sBSR`YSKYomU#;g(i(L-tSZccg zAE!Miq=lSd5?_BzJV4iB5C-&kTVa|A@3T=u-X5xCNK^oh1i?pB`>~H^r8)bFCVj!`s6CykeGXmf*~}DK~a)C_;`VFN+sqVS)n+*~YS(MZB3|983Zrf2B?c ztc!kC(CAnw*osmm!4Zw3l+b~?W|kWxMZvjK6y#=s%UJ=P|P8QFOhsj8It3g{@A_$A{U%_in=AHHBik{I|7xl zdo81b*wv^Ics@y3?S@A#2uVg0u!mq}_voCtB=FQv#k5etrj$qo!v++?FktU_ zO6zU{p2NidP`(6oZCO);^)9g*$-Nni9LghSFhEz@Xj_DMV1Bl>GF%l6FRZ91uhI`! zrXk~DxBI%AO$(?Xjf(0VW(}j3*l=DJPUFEpXAB@{mCn@%HYDlq`0NbKfA;1-+^GOQ z4sMi|V+9Q+?APJd8M3~x(z_4M&qRb(US9?3xI$i-8flr^kPawc#n1)C!fJ*qE%+b8MGpS6+VMTcXpuJP1fP%_DIkGSc>1B?BnDldZtqKhj-*?My+s!A^s>=0bHF^Vl)mMaSVHlDZuC+-l2M1P8NswInO|aK8 zPm5TRQ6ZqoX+J_=n229~gtSXijZ7sV@19IPug%6ow_FFO7v>Tp@E%aB0%Ra|7mnJY z-WR8(9t&~SUp+$Q&m@4-9dn8CT}L^C224js1Q*|#5F4Tiey-9g=kc#CJb5~Zo{dgOX?N716P z#%(?TL!H-Qd$DA`{iyKoR^b9p-)CWJnZBM<2gf>WaqrKwFzgq*v*D`Y=V$)>$hPb% z)d~utVswiZ9SZEtZN}(U2^P2{XD3$-xbteh`pSy0C%4)rJ>F5R9)1a-#%+VBhLI$r zGFaVppO~55W=^KBdkpVyxy>^7U_o>e*coVX1LQQxJzu&?V!^p7p(PW;8`H#ub=!0) zyBE$>2!$O)FYzzf@Jv+KE>nb?YSIwEYNzzL3G1obAzIi#4$I+(qCy3L11|wX{$cQD z%N)bIo<5|(f3HW}9^adDgK)h$H0E(28xLsRQDPTHzf%?e(fp}q;T8KUxJg&EIySYWj zM`PJJMnJN@R1Qazgcn%K&CN3wmc7Q%fmqI(ZgpvR z?4R`;9#PK5qIlyS`8&u~r}*2g>C+)dAlcX9eZ@tqDUBD3{FqB>A;nrD=hGc89P_c% z%M~_IkDbd2V?elDIF(W^0S}lXllA?nW?|XjBA$QkU_qnNz4yRv%#0<`OVs81&7%&Q z+1KMi&KN%H&Jz5s_thnU{#dmHEEqm=8Gmlm7x)8K$s42x5mD^4F*wx4wpT2M_aJr z1Dx<2MH*n*C}G3S+un|l7r#$(TbCub^0hU=9W=DNjZC+&NfZ=#KE80v*5uH2DgSOo zh_Dm@TfCVnm`mjS9Nm`uP^P^cNHmAtRiqsz7_+#1eybi1$B#UMl9d48#cQ53g7*^? z1SI>R`JL&NJt?Ms<5R_j%lMz@>0R^BQwFrS_$jG0T?-MeAP6N$!7A;-6Kl;*GgyFn z_|m6Uh%r<2F848%tJgrHS#1*r1J=4naa8^+O2h3W%a7YW(<>9}x>(xc-kl*^M;hb# z-F9;mc_wW9)UGE704ug(1`I7S95aiP@|N~eC4f#b5BE9f?jEU@85YVr)`gIp=!FqD z<2_12j3BQ)c(2pMgV59Z(e9Q%YZ?c+#JMN z)+yQTp-NHTEA&_yYY9_xAYs5AYvvlQ^R~||(<$qyD2f$WJAm)5mm}$4UFY43`Z5LW z2@_oEi@7xYMbYCMAb%xAUeZ#~`Ld!dTw&F1lcZqNQWc09=)bgUcr?JCNjgv2z z`0)Ynb*Nr1ZlC+tn{Nt6s0DCg-jP?uGZ-2v=dL z299ySNH29V?NQ0JSSqh47mCCmr?g-!HlY+&Wv_mPg^UQEo>gDliZ8h8!DP03)PWULCea7|*-`$x+v(`+#DTOVF_v^|WF;(TQrlgMQV5|%i7srA<5+Wx zX#IAtC?;{xg#smQbPN)@O1v7H0!Rb;s2pKjvo$uiY;{C2##=?1rCA&mP;v z*L&!IDQXzIE=#pP+S$VQNzjjOzTM}#D;l7%BA_N(gQmm+ys??SKvT<{bp(2kg}hk< zp3lxxsEUR@Oo~=K5 z^_6Gb7BuqXE3t8&xF=2!7XkIIyWX(sO{@@ej7DtsIT`XKHi9Cc)(sHdnrHBBUpK4R zO1#Aomt3p(b3ELNJ>Jo;{HI{dFb!HJ%LjKW(qC))@{|t^F5Y3ljvXH8a^3LL=)gvn zimLrD%M%CrjEv26>Wws3^e%rV?U&(%r62U5)-ip&H0sZg0{nKZnx21fpz^TJ(2Nb; z--A`5zBR&0+&yDi!tjR0YH4boHM1U3VzCW&$Gc2mflX%F3#d3rB6Lb5!kOR~_>?k>u^F3!O|(5~U_D88DVK$%8W-1G)pL7&8@X;6<(&)k+4wxbx8 z19p}_c90LWym?CB-m&GQol}ltG`w}%*cqN&?dpkx^DWd~Mg`w94hVoZ^YcN+Z0YR) z4tD7`{?fNQFr>}kSbXA9d$$BF%w54P$lXYpGSk5hyU?csL1l-=-mzAEh)(g(SxZmUlQ0;5+zQ z4%~(4?lU)CX#G;hSJ?LMw*$+bqdz*=eF$IJBL+e&bnC{>+@hGTD3gPk&fI?%Gm(ed z(~hq%UY2|p!syCwJ0FZgnlLfO`m>%Srh<2oI4---iRl>RZA7d}O<@Wt$66Y}RHT1_4ys9=i-X7Qch zG7_0i9te_1M=PeLCf09Z%`7}KRegIQ2Y4{lF9Ysn zMPWVx?3dqVNE6LZu7ki>eepnpRf6Zv;iX}o%p#J#(=Hi+nzcr=Pg?2t*r4#_+nu8X zyQ4|x36-sbVHIH?1GM#_E$!u|T08p`E)>ZApZgDpp@G;z7A}{6XUAH9qn(|9mxoTf z*Xu!yuMp?bpbm8tJDnTn)*S(S}V5u%ZXgWi7QDBQ(;cg$sdpeihJKbxf|1z*CC=aM5K@$EW)eZ`?IiLIH zQxC!Zt;WvLVHesb848CT)VdZwJbh0qkStNIW#q%a_H&7z%`+d&`$!I2WJ!w>!{CI4 zF$r6zIfsm|oT{8ifqT{w2bGp(*In4VH|5*Vvr}cWQby4Ywu&j#GuZK!+Qh~+8{nMQOejq3JUE0y9 z-yUFOf#3P-N=Jw{s?|!^-%-_eh$0q(utJVCj9(cj^`|URL;`z?qp`ZEr<)RgrU|@_NSn9!YA|3AfyThUH z(|C}vK}$Q|X3sGHJd=nMZ2qOxM(y^J{wNhz@Rj~z;^(G6tEY)-Ur!4|I{p|?TR!WH z7M7DyS4TlOqV(3PFX+=wO_j@N!3b6D-t$R7T@A(3V2``m%!rIK-~Px)d5tfPqH*5p zx}Kg?AJJNzuw5AN(i--+E={T9{W$J(kX!HsHCUOY@(?pTgewzOJANr*gbbsMdk;&k z6qYO7T9c>u!g4t2=rB*F2}h{Iee^&c>d^07ns8SgpJ{cQFG>?(U^s@lv}Nz z_K?WW9iSdGQPOi4@@|=j$jj;90F&7(n(?a@ybU(Z#tG(>QkHft(|~snr61luSybs( z8%poG?vFtd4NuxNR!fY>bMkvSmt>XgNSG3gcnxjF*i;w>r>m9qyM<+Vo(mtH28<3b zgSka1!;Gi?y0s}xsJ-7mzSNfV>QF5wkeDLw2gS|dv99Xil zh&fyFhp?5?_FB|_EC9;dscCf~`9N}~A2gClXaXj$w0fCBexJVHaCJQ^8ujQ*g4wuOa*$nfmvjee|cc*7U#DDs``8 zAJzR)Q&Wc>V86Sii(0;XhD+hh&F!sOe(N_RyaCn_q@UHn%3j|6WSF-jVPSu8ak{|D zt&^G{ja?YQ=;^gR&$f)QB%moQ0l7kkaFMkXiD=C)CK zn-nIIK`CB-miuJ894PzM^+kBFBR9Du4b0zOKNBZZE0oRZh81?p0^XS)-sEwjsBu4) z+_b_0ey4`j!g`R?_w2WIk21Av(7q1GJ=utuezD_|=fDo|7?hiwiad07NI8praCfZZ zly48Q7Ivo9w3^N1Ru>)n-10-Z>XT~NaLxS$Y3~>8fZnCG3N-!_>;P5DY7IKSX-{fp zS^F}PFCg`d&if;|E>th6uaQ$485W)NASuc)oaHiNY^w5a&YHtI#+rn> zxa8EXF~Dt)Dht?(Q2>Zmpgr$&RJn z-xd{kS+)Ij<3TnM@)*6u8b>VskFHR1f#ua zcHt9A*ilg@Maim9j&JP{6Al|3j& zBdD=y;_h+a_QG9hbZ0ct0)8v>QHFY6Ei!4~c_o^WW0Rs~AplyAZX&vE%!2BzcE%0{ ztOn*f8S?y1KQQv0*>gMFcfIvr$$TCx7I~@I_F`baSuuW=hRa|>y;}^k8I@nZP90~(r0!kJsjVFGS;=Mb^ zi}Q2O7f?X!e6d@sKM7zq(&Gvye`V}F39*U}O)pJ}n+}c2MZ2^ejD%D|%q>R<4PD}NsnXAt*V!!V1RcM#+2w{7#D<1AQe zj@;@imsx>1L(^}(aynCV=c7p%3kyF}!=qe`Xf=E-v>edI<$FXO77u1kq2gTn5}a4B zU1}!(iPU(Bj$*NR>=O{iz$LM_N&eh>%~sLgN8|W#T*{I}7awjipVka_%FZKrL-(i3 zy;+2h7dAf)ZwIyOVdj?S&v8K?2o)EtdGuM6^BV&FKYJnlUmj9fa)yNZL-zqeXFNBg z#GxB-1yoQHBEc|}W;|#;NbQ&@OXJwU;2gjjT}@Od)tw_i>SG_2pclX+Xv6L81^rU4 zoKR@@r7Hk_Q29?Ipy)VKeiQ=`9;^g7T_l(21Nq3nEXu#V(@NxFg{w~|Pp}Hlbn`(* zmK55wX`ekBW>LBi)UFAv&3q%{O4EqUO$pCb?NiSjSQ-YUb4$qpE>%8KlEhj`Cz3GJ zgNLO$>s|qb=Av3Mf=z1O0$B_4p*+L%zmHF|Bm^UM;f;&rh6ajL!UM{J13a0~KUf+W z2CFJ+%O!n;GGVA{k3%cYW(&qmpMoAX|3taPB+km#5gi&LPI(7lesawhI%@}nW<36` z4i-i9UqPz<_=y!;l1Nq)l@Goz-CjevqCYG6ogWoOs*y1axfmddKYTfeGafaQou0q3Wu z27*&PdSPS~RH*g9=`hHE<&?)#1PU5q7-|@(l7J?YfC}G+NAn$gIz(dnw)8_Bea&(PldXKKhF-Vli?|4pyKoybQL{nYzjU*61B zR}G}jOX`0c^N~v&1oI}w1LGNB5rY^J`uYEp`+xdM-=NnuMUSgDhLQYo&PaAk1aQBkMXV;pn z4($cDpR`bGHs+&Ta919WYjJ_3aQ81Vl{ZRZF2>(xbOr%XVI)W= z=B$mj{NSg7y{0ug`!+1)4-A;5Xit6}_s?sdd*4|a?N?hx&}0oMLVLWtUjhL1eLkR2##8V@xMdm->Yj+NewWRt7dahO_T4G^-VZdNln`p8u?B=k=H52aMLY%AC^5pq6 zwyj>n+)x8Rp?A}!4-p2Dlp5>Cbq7`GgFmUX7xFCK;kl4WfuX_Gt^6gwQ<_fEf2gKf z9Dd3Qq*Rik1i_NyhextE9o#I6|86P(YI?@r>=>e8GC{jK#D2?jBtSBv_O#<{iWJB! z$g&#y{oU5#q{pUSL$jcAi2KVDFEohrdrNcGjAp-ED`Ck<<%v1-a7=^7)u|ZQaN}z! zDFJ92G03|uV#)$%>)m7CSaaeX2A2-AUEobBSgP^vNa!hP`BPp8vmj<;Bvfa)>Rdj& zi0x^8+5obiRFHZQ+ZPIC+G>K`h5;qXJZ{2EDX4;3A}N(9tj4ZC^OfLJ56?RECl%$N zJsJ^Akt@=gXj*fH{sQ-rL}wz7J_oP6#DzgNL|mJr#ep=WBfphy8AOi~ctj1yeh(To z$TB{~{vf-aAg2uA7G4K2yTpBfl{w%n{z{hNM;SZ)C3Sy&`h*J9OU;V={3Wa5OJv?i zDvlbq9AsFE+S7`kK2cus_{1OOuv;uJq-$t*O{JGY(1S+@hk`j2>eFWd7rKy?>R(;w z{GvxxlceKuk6%lkCv=+Z6)+vCTcDSy^95eTcax+{dSWMhac<~-RQ`kq3xFgVUk+mX z!$jHxgHrBmT9uDvT0Adz$HYCmZ~@p05k|%FSBP5uAMgZQuiNtt8Fss zflbO01JhO14Ay!d`@ksFmcrR&yc4Nj1C!vdX#Qw&;u-U<+*Iv6s@T2O0;xooU7T?S zU#VGX$1uaVe|d$A1Fe#^T;Y_lR9*G43{!sNq~Jq#@`W*|6WYsYkd1_kK^JR=_J0JN z)&Yk98r5I zWq@9OCg^4pJr-Bvv)k7bk~q^t>98m&XclDJ=;+sr#$-w9ncoDFU%-R9UC&@sL!7}2 zI-0|&IM;j5WiMdy-SyH(`I5Z|XsJO`g|7~vKysj@j0E(_50(G!tM(*{vA6UH;=Iib zT!7)0w5xCz8`Yj z1ZX7v#eq~&oH_=$;dj+xM}uERP4N)4?PD+XNm*O zu>m&dd`DrcAPV(hpsRbT7FybGOC*X>=dbu#xcJ7aw0kUd1*m7SsKj=#R5DIH1~$jB zchy4>Gm2#NIrO}rMvegl$lL!;L+`6jL}|p=oq3Q%3&Jm?;K5U{$yXwHt0lmGrY&oo zM)s&)$(|6&7LAuQNU0y@ocI^_3BM5DgRMUG=TobGEdl8J0H4-A)~HYI)^N0p-9rJ?WhY@2#eY>DcT#*pnKTDm}crw5@>wFF-)a@j@n+ z{cG63bewtKt^WsDad?MYRm~E$A8R716qj8*aPVLdKq)COq_JTSFJR(xPC>2#LatKX zRFstAEQyimw|y;#_%y6s#wN>YA|hCL@M!_HQq}@Vq_}2?L+{=zCIo!y-;_Nu%i-Tr za`3NZFKx~AkbpE#7z+wrq~dWJ;u%i8vf-zo<%xB2K10)~pNs^DG;gCmr2fzFqx`; zo+(d~!2J3p28Zntvd*v)b?Gn`;T6*>2@mE74Y6%`m^XUIcg2mxLs4^3C6YjKOToh; z61FAy`!in4LkAvV&f)64n0ijdJ3DG+ z-rRnYCD0*A8cT*jfj@gV?vWRwcw5k0`W?~an{fDUXGc=*dxK2al1(tYEeVyJdN2UvWC701=NO69d(Y56Fy%6Yf;+hSWP4L zE$R;D1F@8GqAxMm4~gD_YqbJcy=)q5uXi>Orni|t=q&$7v)uZ}B8qUVHljX^baz_M zKDwMn`T?fu?$E)T6t2bmhOCoZeNQa!u zPB?aYperI3sBw&J&XBVcGT1o{H6c-M)!fbzpnwvNF6esYdr6G6O@(o*oG_>ZdTN6i05ijzWS z2?DT7fK(s+J1pENM*h46m{%Pd<)f6HP*KiZ=D)jL0eQr~aRCSznRm7+2@cU!K^mnz zeS~)Koknvb-}&%*i%J<7Cpk=#td!yBIrU#sqP*+*(bC>ajOQE)*s+X#Ik~u6FqmR> z3jo&g3T_~$hApj_ct9r#xGFhNWD!gaC~F0)z)yfw5h+sktSf2Ds%MPyqgb3>Sqw?b zBppw_<1M!0y@hydC6JwYa&{dv>p&OC44ZsVu=rUJm;8WKIU;pWs)Iw@Cv4;C&@G<| zB=M$VXwV|+B9d5JFouTUI)BUE?hffQi z@Tfk)j;9uQca8rb5#P*L3`VFcI6?Vc9q;^d`V*Syrc$bv8`-z^R16%1?)sA{jU%GhJHSf4G;myy;UbrNu{?LGIsgKD3itJPk;Gqqsz;YzfB zKHr~jKFqU3U0K8t{IikNQ^ftpo=sZW(U)30R=e|&F6k~6N3x#AaOFjf2+?KItmNcu z#8{76M-i&R4gQ69nLn34EUh-YtKT~;`ghPPVO?Z-LrPNqn#IOoO`_dKt8b=r?Q#6r z@TI|`*J#b=v;9|Czh${t zA~@S_Z-}z2>Vtgj44Y5JQx(MnKqiIfcI?e%yZOl5a1)YQt&H|{rk-~Q1-wxT(NC@$ zSVG+p3F+i_3>w_j%>VUO7}bVg-uYKip_$1xx^2|WUi}y{^umX@6ch&tviU2x5C`Wk z@LL|mA{k1q!uy4Kd03_vZQd#C(S(Gx2Zvl--L(E%()QjD3(39_qCO;3vLQx5K5IY= zg=9h3_&`fEfeIQ=XnbSl3q0tRke~}z+mf~bGo9o`y zMp0J}XNa>YvgT0skkOmKwVC9foD%>qk!Y4!)rw(9j2MOO5#w*>A1)T{%UdJ|bTMPcFUiD-7Jiu@_kW*pTQQqv(AHKKY%Prw*@-e?gm zuJP9D8}FpLP-~R96k0ll54^3OqF-RWUgJwBP_=0i>rWbT^DbeI^2|(~F{xJ-+16s? zkusPUco$q2Vn0>CkQT&n7F{F@DNq|u*xlnbFNJF7Px!`tz~`Ho%+o2~o0^Dp-|t0> zP8^d2!M4DB^T=J{kg%1VD@{8EnXnN1sB-sm`z!+Ggx%ekOrqkPJZM&&LNug<_$#=U zepjF!d6$X!$X(sJ8)i-j(iQJ*Yc3M#6+db=2}o7q)?$anUEM`PgC=aZ_>Q>FNVEiV?dc(pYoH>qS}@eU41s%C=C8>V1| zd5Si}2A{OsG(}WP1;_Qnd2D|iP{B$_z;oylS#iXyEbD6yE1Xp?GB5b^hnZj8^_tp2 zKBHhd{UR=Cn-XS$?*n^S9x2&}4W{Q#|7quPW?m+|rKo>Ih8JXo&w}L}iomd?mF2U{ zJf`wmDF5eWr?&(0O{$0s3xh(NR8$Qc8!#v9w(AO(mW9EVljXRdmO-06;LS0ZSaF?X zU49k)`CM9Y*l%upv&W-w(`F#A@Lc8-Mw6@g zYGblB#%2pqqwrtjY1m-VxX>7l7X$fUjV4Cy33>nf(I{;5^GmrXox-H zmWi6_cN5>edDd_^8B^F)g(Q5+D^H#jX~iQbGKCnuTS%vJTPSy;4-Iow@NMuKPAzlS zO)oENm_(*>uxPCIGq@({Tj#aEZ>T5Phi11Q9P%W_vzyDHLwqj+m0t>;r0Pk``_~Q2 z3B7v?PM6ENY4491G54nl}_m zu|czv-oysY+=(^eQ8GfH2MjF#>n+BZr*fTMa89lCm&uA&%1MIkHaYLks^Bn1jCnmv zlp9G?R9=Nxwe}2M`KGGR!fLO9=D^3XZa*@afWpos1BEsr`aQ)LQ1 zn|4JVmv-g#6#_3*n18c8NG=UiF@||7m^S8m8%cd@b0xke+ij^5vsk83Nz!3&X>L8fw=rx9}w+iet7-3X=f8_$4vW9 zT3Ke7iC2&8Q~b=Q5VXalKnb-B3-3(~9O{`p#x!iA;evR^}e<~NiO z0v_G63K2d{iiufCMas4fbkuW6lcjD7;>)&M-=oWQO~!TFTZZ*U)Eu9(2wr~!BYPGF(SBHhnf`s_8S_sO7BY&pc`h; z1~Ll2yWrCvecQX+=J`m-`5xMJb*G7mXb0p_0>r(&XV(aLUnxL-qC%b79qqX*P z@fOCJO3umRcJ=&0zREF~?W+Hnj1H)Gh9o?^xx}nsw=z{l;p?fk-U)vef=;mt)T_46 z^IJn5Q85>tgLqhj!v=GvTp#mmFi6>#d-SK#DPtsn@~S~8aH!8Blz~Nt3y!)uhy$)| z^!pfD-^nPxg^ekq&FTSL*TAUfMKw9^d3KvL979tu>f;9~gRL}Wk}y!8m8;s;$@#Mu zDUhlRog7zf)xBeO!Rcz4f@MQC96Xa4z< z=fJp>1h!?b=;YJAY(Yg+Po8&~_r9mk&nKt1Nd;tSBCcAMOxZdk=Jr@{Mx2MEBDmQ* zCckz1$IBpeU_&?Jg4&t%&DsE2dvA1nxIe`pc$wnno-KBt{aV{xPM}UnRw9JkcmCI= zmn{2X&Q?_6NuE8{654BKGo}G<)~*~@{4$p&nsP2UFNwm1e*o!Xpxf*_#JFi%rlUFR zL2n!17&9JsnO&;;^ha|yQ5JUC0N^Vzjj}$kcYW*4CQd;gnYl&XPm;i)Un#V+A{q*F zt=^0aJr;-_m(@0S;2fUh36|Q-aL<0knJv04u-yz9YBZq%1 zE84w`o7 zW@YM;1|gSs!2 z=ALbd+wA+csoJvG#!`B9CsfcR0-+r(J;qOzHQ@+;vfEA=AF|Q;yXwe5;bH23H@FD%AAZOzC5gKdcBkgn`eG~l2h?`43p?H_5Q!Tm=`hR1%mshxv=tpa>?b&I~UsBS2d z#8n?|l^s*#hV0eL_V5#(0wCreKBo;K;QnKN{sjuet9{QQ1<2M5oXY3phO`Cz+wRgk zX1<6rSymaCFt?+1aZb>7ImxeFw5FbwE91@LP8wX8D0L+!i2+`Pvvt=OO-mRqr4t;?k*t6Is5aOm z9ug_8Q)%n(gReIX zV5CJ{?$|r`=T1Ak68hUC_>WHmYX)~Br$o`B?reGq8Y+5Hl7pj>RrtjFJdMi;-v=j1 zr3nA7-4`y9Md^-g`&9CJQ zMZdp|*>H_t2(!P^_AnE2#Gm9R85ChPRgrVAf>}yFe{Pz3rX9$|zYT9o9Bgj(dmZL^ zP`z1>RN9@|_=RZ5YFuq)4tJ<*5s4&+gE{9!utRFP;6khYZ^C?&WHncJ?$L}_1xiE2 zc<`TIL&_ciCe*&c={Y516WWZ^q{nFz?^FS;--7pOOB^$O`m8RF-%t^RL8ZUeoE)5B(yy zaFyPBV+(jWV899`;`c9N)MIzr3JyQi#sn8WsvKd_>7U3Ij^Oc3^DbL7)3vY)jHOlj z>&Vc@(3wta&Zc5v`kdsZ7YQdVxsUK{BLX(wb2ZDi@Au)&Y%TDyr=qveXl?xY)!V)qwBafN<# zVg|=9XSn$k3U#_Yadl>2mGGX-i?4k0Yl;O!Rc-?Z`Q!iScvSeBrdH)L#eNJ&{*cD| z3maPQo-#L*DiyXA?#~Hmphx_h&kMU<7pmwscF~1*>asx~{WJPIM3cmbVfWE^TFgL= z%2GY%&hDqKeLk9>OoU4YkGdyTIH#VVspU33QP8N@1`2GRc|<4A^AA^XPvz*Nm%6`# zNZw;hi>xjOEIiIfr3d)=hZzj3;N+BwnT0yMIMm@4f0Mt(Vo@sqz=4$;XPpH5_1636 zZv!qE&@8N8G+`dGEc5g5;9wA0QO}_g|F79Uo*UBvmPmSNFhicUZNLC}8cH$Dr+*cC^mkF(aK?z@O`*UCz7tHSp& zTv};z;jdd-G5XP+FaUoTu6SPzs3YiVEVZz*=uTwAu`EWXaW1kpW=pp+ACf2j#o;<( zP0*3SPg-WJ99gR!LZDU`DJ_I16o3FKxa}55lnoNTq$#Vi z>cX-|jxupk0|haI%W~B4P)M@;E4l86<=~NL1&$s)(F;CQhyF$bd6!ErJJ?|MF*KW> zRkngiWW9GO?2D|ce&30a)frpHT~QlS%>`ML#;kJ-%;br2e&om4 z%q(XWsRZnCGy3$>Wb2EeuWH;b^&k9-q)Qt~hi|KcACo>UZ24K^-11lPUCgl87u34% z1d9FN(E)@Vl+cpF=Q>R-ZA?wWWpz zL3X}kBG*JD=QS#aR?&R!EGGRvm<%l&21U=Kdif$V6GLQZ0LBbL+WKF)#>Drbtn#`S z*+IU>epy!0>+eL}<*&@K53HH0yk#OG0vf1hciIC-JoJ?oMg1_FNxC#uoMIi=zHk7* z4p#64(`lMK=0M41{2dYdj%DgG7PwlGaLB12H9CcMP2{6ODnx`we&=_Vl`S;1dBImX z?4HwvN{6FDpEMfjmq%2gDGo3yDikjd^7Oa#$;Ome0mMEKEzEl(?f;=D9NTg%5W2%8J0ADR2y-|F!lXz z*Q;Dfg-Eg$E>xQ=J-S2w-V-8_IDA5H)u;trT}zA*UnlJ9f}su>#N2sNN?Ahm@a_0Y|ns z@!Umng`0&uy4JT-BQ}=9g!0%Ktn{}(vDqbxxrm~WN6G(aDV&c~x-=gG04F#>3OO#= zFGVa`{yrM1g5(y^8XzM1<0#-alEoMIDb0D?TrAcUZ_CuoSXP?N->o60#ax|*w6Z1< zuKuK{V4E9se-Ua7|a0)8f?X=oPviyPk~J@VzFbVm1V(OFWIAENn<7E}Wddfo zqJQx{9arW?4d+V2$#ioV_hw-Mbg__vYhlJz81F;DO8Kdj{lTidSa2HA*`+NRQDAw$J7{T0NhXMR~JrXBua}{rivKr+G!HSNf z-}7%km2CSQaXu^83cLjg)x-}5K{~lw!dkWem|nPHTMRUZoDdAr+0a=PM4~!6o#_4D z%P9xR;6}kgCm6<4p2sbcOq+}Ls9BTZP zSU&DYvb4%L>^C+9thXFmrvrjrV;Wb=!3{l+gT6UjZIN6}7!s$M&E66y6*qZPQ&WzQ zvMSX(2(+hy)}qFEP8L3^PZQsGJ`BoW)IMLywT$Dt!vFxrlyD=DBP#gHFCF{Ya0-MQ z#!#bRZLK0$+t#1to3L3^e|rpX2;uhW5C}C+8iY+A!B6Dor(71i{sIKT0sQsQOmpE@ z-G6bWK8E~0Vq)IwR#Gvy+MDfbb5L9t2M<*ee~026FtIH3hSex%2G5OgjjRdJpzA~G zIJ)>c^p`>j6+ur2L;c~NlG+SiEJbwm%L;#O$z;*y7g?c_NdF@r9bV{lEDKri?cbP; zcf^u4QK9u}sr32CclCx10k|}X-{*5!(o`a`uJT>|v&lz}dvh4DxZW$_p^(?9p@`LV z6QqnuL}3S-^Wt?Wgv(Pk#V=Y#2Wt(5Q&YOYy$rk7axMQBAc8T1@)Y8a=-!rkS1gDAMg^4H@95ec=?alDV3J}nDFdKiz* zxjz>!!9Wz+804D77MQMguC4FelXL+ZAOIjaJ^kgM5>T>DfpA3(Z(NWw3DO_FO6B2m z;Pw6o)DptP+$RDqeBGwSHFmVy={$U#@`7xKj5Qdi<4109ktTj`{)X8nr$$tY68I~e zAsO!yA&o3Xiwpu{9@*_Np>YO!3nH}g>bac(p%ad%=(I5(`lI`dWXpO(I1vUK+1g(J zD$ziTB!HO;(R?D{R;4n*A?kQMHJy8L{K%G%XYmu^-FC!1&r6!t1Qh?*O@^<^{q=-` zPMwcG#s#fd6XsH0vBlDE+!dc?=HT9BQdI}td=eC^NPv7QcF0X|*Ql?)ns zHekxuoqIQF)G!qk`DHr&$sG#!PKlOOub?o&zcjLkeo|0&RVerHilJ9CEG&BIcAC(D zLHe$7!^uZ5MxZ6^r_TPLYaZ^OjZ?mV3@4|a6ivAK&Mn^Yi`zU1!1e+F8;H<)Bv5AX z7Y|&`P%&0JG3wpva|0Vu+YodPYqTGebI+5LtBY@Y!_}q}K2nRf&J)zG z)4+_uxzZ~RUHralO|@vnI_RDhykjm`2zO=Ir=($V`$>r6&B06XB&IS&*~dhp7JG6P zsP;kcg3%*0YzLQQRK@{`E!(vltQ2u<#aLWA8^*iwrW}l1d>{f~l-59;Cepobqs!8x zqZ$k#Z?504?N+!?DK%p!*Gzs~kG7Wro94Mqw)ONq6fOvJvh2V7AeI}Ut@UOyS?>3K zG8exSm`N_KC5wr9gKz%Y_;5rrH{P%M;~1SbsX^b=1=)nM2JG|mv%O0U!UKQPo1^QD zZ#YV|-}0-7Prdolfh@>P@fkQXQdDo?nI$5jSnDlQ;$4|Zs>vorW7~oKw=G4V3csp< z$v4d$lZp}z0JvsA%rfVr{rW!lek5*DdfL~S>lnuvBv(oQeDvW0i3Fgy?d#=a0|%f@ z(~;hcU(m-}?laEHzRj5*NX66n0XyXK=b=32tFy0A`K6$#w_VG1<_f;XodoC31wA&G<1%{y_>;jF0bgC9w#{`%S41Mjx`cCzmIwxm6-~j?{8Ak7( zrZwv|2PK=L`)irW<`*g9Q}VtNQbA2dRTofz(KSX<$mfOVbMwx&N}*Bzi(PN++>$x& z-MI9mA(~;$^=*rt3Kp1i1iK`A(pM#6k2%gM<=VX>=bfGbPPs|*irb4#s9@Sy#jR3x zZ2s($yL5F;m@q1anZ$W)uHBFztRU9|F=$b#S1YzW+2)#&$P3G7N<$~um zA&(Qg3zf&T!rFj87&dH@SWcYL_qMK_=40ja7~#iUlX>fcHqSz0)$PouBKOPVSi#~G z>WVwh3ROW^DX*>uQa|6L1jozTL+vpa1f*@~EpW_|UD z(|k-0JWICd{+jlhQ_=X0+d3FSqr0Vs@hECWL+e=_CC0ud!?0I$~TsYcqp$9F5i}CQ?I- zX3pIRHPJ|9)zJVzd9esULJXhEnjS+(=F!z1SaScjQ;(sb*J z-_?Fb>A`E9*YKXuHA>F%ZBN{bb<&R5HvOs3&dDui*|EkwE~q&2_=?xK)!8ipJgP}R z%yM)UAl*7?_uZ4e?4k$)>7FpPCzeo6eoZ=M9wpl%4x9WMi6x-7<&Kj5#lHWwwyzU& zxiWu#R35CS9batM_kJ6#QJkYy9%-8iP0)d00SA~?!%Cjn zz9$_y`4W99<3MTz(L&3cYL-Q$fPBkQdqA*f9i%p0)> zUPHhb6zK}wMVs7sa8=4Vq%N97l@5*Hz8vpVsFAX zAZ}?$?HMy;;C~P7fwgh<8RlML>uXk@)1E*5I%y~>(aFfWaC2MU$2+RjnYedZ(l9AG zXWO0SzWVjhy{+Q+x0AN?jHW7#ZWR8#~0j(u@-$p9j z5=3qOf&W#1qZdA53`2WMyC{^tkZGl7@3Ht%K=GB|q+?Ib$SnVuu%rz+`bT@@BQ&3i e|6PWxb6=6b2h;cd)h17G&tyL+N>zdl1OEqScQWk& literal 0 HcmV?d00001 diff --git a/source/direction/_categories-content.erb b/source/direction/_categories-content.erb new file mode 100644 index 00000000..c8f78517 --- /dev/null +++ b/source/direction/_categories-content.erb @@ -0,0 +1,29 @@ +<% data.categories.each do |categoryKey, category| %> + <% next unless (category.stage == stageKey) %> + <% l = [] %> + <% l << "Priority: #{category.priority_level}" if category.priority_level %> + <% l << "[Learn more](#{category.marketing_page})" if category.marketing_page %> + <% l << "[Documentation](#{category.documentation})" if category.documentation %> + <% l << "[Direction](#{category.direction})" if category.direction %> +##### <%= category.name %> +<% maturity = "This category is planned, but not yet available." %> +<% if category.available != nil %> + <% maturity = "This category is at the \"minimal\" level of maturity." if category.available.past? %> +<% end %> +<% if category.viable != nil %> + <% maturity = "This category is at the \"viable\" level of maturity." if category.viable.past? %> +<% end %> +<% if category.complete != nil %> + <% maturity = "This category is at the \"complete\" level of maturity." if category.complete.past? %> +<% end %> +<% if category.lovable != nil %> + <% maturity = "This category is at the \"lovable\" level of maturity." if category.lovable.past? %> +<% end %> +<% if category.marketing == false %> + <% maturity = "" %> +<% end %> +<%= category.description + " " + maturity + " " unless category.description.blank? %> +<%= maturity + " " if category.description.blank? %> +<%= l.join(' • ') unless l.empty? %> + +<% end %> diff --git a/source/direction/_categories.erb b/source/direction/_categories.erb new file mode 100644 index 00000000..37623350 --- /dev/null +++ b/source/direction/_categories.erb @@ -0,0 +1,14 @@ +## Categories + +There are a few product categories that are critical for success here; each one +is intended to represent what you might find as an entire product out in the +market. We want our single application to solve the important problems solved by +other tools in this space - if you see an opportunity where we can deliver +a specific solution that would be enough for you to switch over to GitLab, +please reach out to the PM for this stage and let us know. + +Each of these categories has a designated level of maturity; you can read more about our +[category maturity model](/direction/maturity/) +to help you decide which categories you want to start using and when. + +<%= partial("direction/categories-content", :locals => { :stageKey => stageKey }) %> diff --git a/source/direction/_contribute.erb b/source/direction/_contribute.erb new file mode 100644 index 00000000..ebf75400 --- /dev/null +++ b/source/direction/_contribute.erb @@ -0,0 +1,12 @@ +## Contributing + +At GitLab, one of our values is that everyone can contribute. If you're looking to +get involved with features in the <%= stageKey.capitalize %> area, there are a couple searches you can use +to find issues to work on: + +- [Contribute for Prize](https://gitlab.com/groups/gitlab-org/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=Contribute%20for%20prize&label_name[]=devops%3A%3A<%= stageKey %>) items are the best place to start: these have been pre-selected as being ready to go, and you can win a prize by contributing to them. More details on the `Contribute for Prize` program is available on our [Code Contributor Programs](https://about.gitlab.com/handbook/marketing/community-relations/code-contributor-program/#contribute-for-prize) page. +- [UI Polish](https://gitlab.com/groups/gitlab-org/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=Accepting%20merge%20requests&label_name[]=devops%3A%3A<%= stageKey %>) items are generally frontend development (or at least minimal backend), are very self-contained, and are great, very visible items that can make a big difference when it comes to usability. +- [Accepting Merge Request](https://gitlab.com/groups/gitlab-org/-/issues?label_name%5B%5D=UI+polish&label_name%5B%5D=devops%3A%3A<%= stageKey %>&scope=all&state=opened) items are open to contribution. These are generally a bit more complicated, so if you're interested in contributing we recommend you open up a dialog with us in the issue. +- [Community Contribution](https://gitlab.com/groups/gitlab-org/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=Community%20contribution&label_name[]=devops%3A%3A<%= stageKey %>) items may already have some contributors working on them if you want to join up. There aren't always issues here to find. + +You can read more about our general contribution guidelines [here](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md). diff --git a/source/direction/_jtbd-list.erb b/source/direction/_jtbd-list.erb new file mode 100644 index 00000000..9e933468 --- /dev/null +++ b/source/direction/_jtbd-list.erb @@ -0,0 +1,41 @@ +
+<% data.jobs_to_be_done.each do |primary_jtbd| %> + <% if primary_jtbd.group == stage_key && (primary_jtbd.parent.nil? || primary_jtbd.parent.empty?) %> +

<%= primary_jtbd.short_jtbd %>

+

<%= primary_jtbd.jtbd %>

+ + + + + + + + + + + + + + + <% data.jobs_to_be_done.each do |secondary_jtbd| %> + <% if primary_jtbd.group == stage_key && (secondary_jtbd.parent == primary_jtbd.slug) %> + + + + + + + <% end %> + <% end %> +
Job statementsMaturityConfidenceSource
+ <%= secondary_jtbd.jtbd %> + + <%= ux_grade(secondary_jtbd.grade) %> + + <%= secondary_jtbd.confidence %> + + Issue +
+ <% end %> +<% end %> +
diff --git a/source/direction/_okrs-list.erb b/source/direction/_okrs-list.erb new file mode 100644 index 00000000..e80b0c8e --- /dev/null +++ b/source/direction/_okrs-list.erb @@ -0,0 +1,24 @@ +
+<% data.okrs.each do |okr| %> + <% if okr.ref == ref_key && okr.fiscal_year == fiscal_year_key && okr.quarter == quarter_key %> + + + + + + + + + + <% if okr.key_results %> + <% okr.key_results.each do |kr| %> + + + + + <% end %> + <% end %> +
Objective: <%= okr.objective %><% if okr.progress %><%= okr.progress.to_s %><% else %>X<% end %>%
Key Result: <%= kr.title %><% if kr.progress %><%= kr.progress.to_s %><% else %>X<% end %>%
+ <% end %> +<% end %> +
diff --git a/source/direction/_other.erb b/source/direction/_other.erb new file mode 100644 index 00000000..bfa3665d --- /dev/null +++ b/source/direction/_other.erb @@ -0,0 +1,16 @@ +## Other Interesting Items + +There are a number of other issues that we've identified as being interesting +that we are potentially thinking about, but do not currently have planned by +setting a milestone for delivery. Some are good ideas we want to do, but don't +yet know when; some we may never get around to, some may be replaced by another +idea, and some are just waiting for that right spark of inspiration to turn +them into something special. + +Remember that at GitLab, everyone can contribute! This is one of our +fundamental values and something we truly believe in, so if you have +feedback on any of these items you're more than welcome to jump into +the discussion. Our vision and product are truly something we build +together! + +<%= wishlist["devops::#{stage}"] %> diff --git a/source/direction/_workflows-content.erb b/source/direction/_workflows-content.erb new file mode 100644 index 00000000..f793594e --- /dev/null +++ b/source/direction/_workflows-content.erb @@ -0,0 +1,28 @@ +<% data.devops_workflows.each do |workflowKey, workflow| %> + <% next unless (workflow.stage == stageKey) %> + <% l = [] %> + <% l << "[Learn more](#{workflow.marketing_page})" if workflow.marketing_page %> + <% l << "[Documentation](#{workflow.documentation})" if workflow.documentation %> + <% l << "[Direction](#{workflow.direction})" if workflow.direction %> +##### <%= workflow.name %> +<% maturity = "This workflow is planned, but not yet available." %> +<% if workflow.available != nil %> + <% maturity = "This workflow is at the \"minimal\" level of maturity." if workflow.available.past? %> +<% end %> +<% if workflow.viable != nil %> + <% maturity = "This workflow is at the \"viable\" level of maturity." if workflow.viable.past? %> +<% end %> +<% if workflow.complete != nil %> + <% maturity = "This workflow is at the \"complete\" level of maturity." if workflow.complete.past? %> +<% end %> +<% if workflow.lovable != nil %> + <% maturity = "This workflow is at the \"lovable\" level of maturity." if workflow.lovable.past? %> +<% end %> +<% if workflow.marketing == false %> + <% maturity = "" %> +<% end %> +<%= workflow.description + " " + maturity + " " unless workflow.description.blank? %> +<%= maturity + " " if workflow.description.blank? %> +<%= l.join(' • ') unless l.empty? %> + +<% end %> diff --git a/source/direction/_workflows.erb b/source/direction/_workflows.erb new file mode 100644 index 00000000..2161c43e --- /dev/null +++ b/source/direction/_workflows.erb @@ -0,0 +1,9 @@ +## Workflows + +There are a few workflows that are critical to our users in this stage. + +Each of these workflows has a designated level of maturity; you can read more about our +[category maturity model](/direction/maturity/) +to help you decide which categories you want to start using and when. + +<%= partial("direction/workflows-content", :locals => { :stageKey => stageKey }) %> diff --git a/source/direction/acquisition/index.html.md b/source/direction/acquisition/index.html.md new file mode 100644 index 00000000..82a2f6ba --- /dev/null +++ b/source/direction/acquisition/index.html.md @@ -0,0 +1,125 @@ +--- +layout: markdown_page +title: Product Direction - Acquisition +description: "The Acquisition Team at GitLab focuses on running experiments to increase the paid adoption of our platform at the point of signup. Learn more!" +canonical_path: "/direction/acquisition/" +--- + +### 概要 + +The Acquisition Team at GitLab focuses on running experiments to increase the paid adoption of our platform at the point of signup, we strive to promote the value of GitLab and accelerate site visitors transition to happy valued users of our product. Acquisition sits at the beginning of the journey for individual users and organizations as they get their first introduction to the value proposition of GitLab. Our goal is to ensure that users understand the unique value that GitLab provides and thereby ensure that prospects seamlessly transition into healthy, valued users of GitLab. We will gain a deep understanding of the value that our users realize from the different Stages of GitLab, and ensure that value is susinctly communicated to our site visitors in order to efficently transition them from prospects to active, valued users. + +**Acquisition Team** + +Product Manager: [Jensen Stava](/company/team/#jstava) | +Engineering Manager: [Jerome Ng](/company/team/#jeromezng) | +UX Manager: [Jacki Bauer](/company/team/#jackib) | +Product Designer: [Emily Sybrant](/company/team/#esybrant) | +Full Stack Engineer: [Alex Buijs](/company/team/#alexbuijs) | +Full Stack Engineer: [Nicolas Dular](/company/team/#nicolasdular) + +**Acquisition Team Mission** + +* To promote the value of GitLab and accelerate site visitors transition to happy valued users of our product. + +**Acquisition KPI** + + +* Direct signup ARR growth rate +* Definition: (Direct signup ARR in the current period - direct signup revenue in the prior period)/direct signup revenue in the prior period +* The Analysis can be found in the [Product KPIs Dashboard in Periscope](https://app.periscopedata.com/app/gitlab/527913/Product-KPIs?widget=7634169&udv=0) +* Calculation: + * For SaaS, Direct signup ARR includes all namespaces that start a subscription for the first time, during the first 24 hours after the namespace creation. + * For Self-Managed, we link all subscriptions to their Salesforce accounts and leads. We include in Direct Signup ARR all subscriptions which have a lead or an account created up to 24 hours before the subscription start date. + +_Supporting performance indicators:_ + +1. Time to sign up + - Definition: Time of account signup completion - Time of first visit +2. Percent of paid conversion + - Definition: Total number of unique site visitors / Total number of paid signups +3. Percent of conversion + - Definition: Total number of unique site visitors / Total number of signups +4. Free to paid conversion + - Definition: Free to paid conversion rate (free user upgrades / free user signups in period) +5. Time to upgrade + - Time of account signup completion - Time of upgrade to paid package + +### Problems to solve + +Do you have issues... We’d love to hear about them, how can we help GitLab contributors find that ah-Ha! Moment. + +Here are few problems we are trying to solve: + + +* **Clarity** - Whose problems do you solve? + * Your product does A LOT, the feature set is expansive, but I can't tell if it will work for me. +* **Call to Action** - I want to signup! What is the best way to do that? + * I can't tell which offering of GitLab I should signup for? + * What package should I signup for? +* **Usability** - Signing up for a paid package is a cumbersome process... + * As a dev-ops lead, how do I buy this product for my team? + * How do I signup for a paid package from my self hosted instance? + + +### Our approach + +Acquisiton runs a standard growth process. We gather feedback, analyze the information, ideate then create experiments and test. As you can imagine the amount of ideas we can come up with is enormous so we use the [ICE framework](https://blog.growthhackers.com/the-practical-advantage-of-the-ice-score-as-a-test-prioritization-framework-cdd5f0808d64) (impact, confidence, effort) to ensure we are focusing on the experiments that will provide the most value. The team is dedicated to improving GitLab’s ability to convert visitors from about.gitlab.com into healthy, valued users of the product. Given GitLab’s commitment to [iteration](https://about.gitlab.com/handbook/values/#iteration) and the [Growth Groups](https://about.gitlab.com/direction/growth/#acquisition-conversion-expansion--and-retention-groups) test and learn strategy, the Acquisition Team will break down each incremental improvement in two distinct and important ways: + + + +1. Each item in our roadmap will be broken into an [MVC](https://about.gitlab.com/handbook/values/#minimum-viable-change-mvc) +2. Each item in our roadmap will be rolled out incrementally and measured against a control + +Though this framework is not new to GitLab, it is especially important to note for this roadmap. Many of the items listed below have the **potential** to create negative downstream impacts to revenue and potentially a users experience with our product. While we obviously seek to avoid those cases, we believe that we should take controlled risks to quickly learn from our users behavior rather than increasing the scope of these tests to avoid all negative edge cases. That said, we will document any possible negative after effects resulting from each test, as well as a plan to monitor and potentially mitigate those negative effects. Moreover, we will call out an appropriate test rollout plan given the risk associated with running each test. That said, our prioritization will take those potential negative effects into account, and will reflect what we believe to be the highest potential impact to our growth KPI as possible given an [ICE score](https://about.gitlab.com/direction/growth/#growth-ideation-and-prioritization). Happy learning! + + +### 🚀 Current Priorities + + + + + + + + + + + + + + + + + + + + + + +
ICE Score + Focus + Why? +
7.0 + SAAS Paid Sign Up Experience + As a user, when I sign up for a paid package, the process is convoluted, complex and confusing. I don't understand why I have to create 2 accounts in order to signup and pay. I would rather try to figure out how to use the product for free rather than invest my time trying to figure out how to pay. +
6.7 + SAAS Trial Sign Up Experience + As a user, when I sign up for a trial, the process is convoluted, complex and confusing. I don't understand why I have to create 2 accounts in order to sign up. I would rather try to figure out how to use the product for free rather than invest my time trying to figure out how to pay. +
6.0 + Self-Hosted Paid Sign Up Experience + As a user, when I sign up for a paid package, the process is convoluted, complex and confusing. I don't understand why I have to create 2 accounts in order to sign up. I would rather try to figure out how to use the product for free rather than invest my time trying to figure out how to pay. +
+ +### Maturity + +The growth team at GitLab is new and we are iterating along the way. As of August 2019 we have just formed the expansion group and are planning to become a more mature, organized and well oiled machine by January 2020. + + +### Helpful Links + +[GitLab Growth project](https://gitlab.com/gitlab-org/growth) + +[KPIs & Performance Indicators](https://about.gitlab.com/handbook/product/metrics/) + +Reports & Dashboards diff --git a/source/direction/breadth/index.html.haml b/source/direction/breadth/index.html.haml new file mode 100644 index 00000000..2c37028e --- /dev/null +++ b/source/direction/breadth/index.html.haml @@ -0,0 +1,15 @@ +--- +title: Product Direction - Breadth +description: New `planned` categories, as well as the existing, but `minimal` categories, to be brought to `viable`. +canonical_path: "/direction/breadth/" +suppress_header: true +layout: default +extra_css: + - home.css + - maturity.css +--- + +%h2 Product Direction - Breadth + +.container + = partial "direction/breadth/sdlc" diff --git a/source/direction/breadth/sdlc.html.haml b/source/direction/breadth/sdlc.html.haml new file mode 100644 index 00000000..d215f370 --- /dev/null +++ b/source/direction/breadth/sdlc.html.haml @@ -0,0 +1,25 @@ +.sdlc-container.position-relative + .table-container + .sdlc-table + - Gitlab::Homepage::Stage.all!.select{|stage| stage.marketing}.each do |stage| + .sdlc-column + .stage-container + %a{href: "/stages-devops-lifecycle/#{stage.key}/"} + = partial "/includes/icons/sdlc-icons/#{stage.key}.svg" + %a{href: "/stages-devops-lifecycle/#{stage.key}/"} + %p #{stage.display_name} + .solutions-container + - breadth_categories = stage.categories.select { |category| category.marketing && category.maturity && category.maturity == 'minimal' } + - breadth_categories += stage.categories.select { |category| category.marketing && category.maturity && category.maturity == 'planned' } + - if breadth_categories.length >= 1 + .current-categories + .stage-column + .category-list + - breadth_categories.each do |category| + .category + .category-cell + %a{ href: "##{category.key}"} + = partial "/images/maturity/#{maturity(category, Date.today)}.svg" + .category-cell + - url = category.best_link + %a{ href: "#{url}" } #{category.name} diff --git a/source/direction/categories.png b/source/direction/categories.png new file mode 100644 index 0000000000000000000000000000000000000000..213925c5168964e14d3f29ad8c4be8b71db560f5 GIT binary patch literal 115751 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
+ +
+ + +### Target Audience + + + +**Systems Administrators** directly interact with Gitaly when installing, configuring, and managing a GitLab server, particularly when high availability is a requirement. Today systems administrator must create and manage an NFS cluster to configure a high availability GitLab instance, and manual manage the failover to new Gitaly nodes mounted on the same NFS cluster. Once a HA Gitaly reaches minimal viability, it will be possible to eliminate the NFS cluster from architecture and rely on Gitaly for replication. At HA Gitaly continues to mature, automatic failover, automatic Gitaly node rebalancing and horizontal scaling read access across replicas will deliver 99.999% uptime (five 9's) and improved performance without regular intervention. Systems Administrators will have fewer applications to manage as other version control systems are retired as the last projects are migrated to GitLab. + +**Developers** will benefit from increasing performance for repositories of all shapes and sizes, on the command line and in the GitLab application as performance improvements continue. Once support for monolithic repositories reaches minimal and continues maturing, developers will no longer be split between Git and legacy version control systems, as projects consolidate increasingly on Git. Developers that heavily use binary assets, like **Game Developers**, will at long last be able to switch to Git and eliminate Git LFS by adopting native large file support in Git. + + + +## Where we are Headed + + + +The performance and availability of Gitaly is matter of importance for GitLab Administrators. The inability to access Git repositories on a GitLab server is an outage event, and for a large instance would prevent thousands of people from doing their job. The [recent release of Gitaly Cluster](/releases/2020/05/22/gitlab-13-0-released/#gitaly-cluster-for-high-availability-git-storage) is a major achievement in improving fault tolerance and performance. Continued iteration is need to further improve fault tolerance, performance, and complete roll out to GitLab.com. + +- [Gitaly Clusters: strong consistency](https://gitlab.com/groups/gitlab-org/-/epics/1189) +- [Gitaly Clusters: distribute read operations](https://gitlab.com/groups/gitlab-org/-/epics/2013) +- [Elastic Gitaly Clusters](https://gitlab.com/groups/gitlab-org/-/epics/3372) + +Git is the market leading Version Control System (VCS), but many organizations with extremely large projects continue to use centralized version control systems like CVS, SVN, and Perforce. These organizations have often widely adopted Git, but isolated large legacy repositories remain elsewhere. Improvements to Git like partial clone and spare checkout, to Gitaly, GitLab will make it possible to standardize on Git for extremely large repositories, and allow organizations to consolidate on Git. + +- [Git for enormous repositories](https://gitlab.com/groups/gitlab-org/-/epics/773) + +### What's Next & Why + + + +- **In progress:** [Gitaly Clusters: strong consistency](https://gitlab.com/groups/gitlab-org/-/epics/1189) + + When a developer pushes changes to GitLab, if a success signal is returned, + GitLab should have more than one copy of this data to prevent data loss. + Strong consistency is the highest priority after shipping the eventually + consistent MVC. + +- **In progress:** [Incremental repository backups](https://gitlab.com/groups/gitlab-org/-/epics/2094) + + Backing up GitLab instances with massive amounts of Git data is slow and + difficult. The built-in backup script can't cope with large amounts of Git + data. Workarounds include disk snapshots and rsync, and even then backups + may take many many hours, and are likely to be inconsistent. A frequent + request is point in time recovery from backups. + +### What is Not Planned Right Now + + + +- [VFS for Git](https://gitlab.com/groups/gitlab-org/-/epics/93) + + Partial Clone is built-in to Git and available in GitLab 13.0 or newer. + [Scalar](https://devblogs.microsoft.com/devops/introducing-scalar/) is + compatible with partial clone, and Microsoft is contributing to its + improvement based on their learnings from the GVFS protocol. + +### Maturity Plan + + + +Gitaly is a **non-marketable** category, and is therefore not assigned a maturity level. + +## Competitive Landscape + + + +Important competitors are [GitHub.com](https://github.com) and [Perforce](https://perforce.com) which, in relation to Gitaly, compete with GitLab in terms of raw Git performance and support for enormous repositories respectively. + +Customers and prospects evaluating GitLab (GitLab.com and self hosted) benchmark GitLab's performance against GitHub.com, including Git performance. The Git performance of GitLab.com for easily benchmarked operations like cloning, fetching and pushing, show that GitLab.com similar to GitHub.com. + +Perforce competes with GitLab primarily on it's ability to support enormous repositories, either from binary files or monolithic repositories with extremely large numbers of files and history. This competitive advantage comes naturally from it's centralized design which means only the files immediately needed by the user are downloaded. Given sufficient support in Git for partial clone, and sufficient performance in GitLab for enormous repositories, existing customers are waiting to migrate to GitLab. + +- [Git for enormous repositories](https://gitlab.com/groups/gitlab-org/-/epics/773) + +## Business Opportunity + + + +The version control systems market is expected to be valued at close to US$550mn in the year 2021 and is estimated to reach US$971.8md by 2027 according to [Future Market Insights](https://www.futuremarketinsights.com/reports/version-control-systems-market) which is broadly consistent with revenue estimates of GitHub ([$250mn ARR](https://www.owler.com/company/github)) and Perforce ([$130mn ARR](https://www.owler.com/company/perforce)). The opportunity for GitLab to grow with the market, and grow it's share of the version control market is significant. + +Git is the market leading version control system, demonstrated by the [2018 Stack Overflow Developer Survey](https://insights.stackoverflow.com/survey/2018/#work-_-version-control) where over 88% of respondents use Git. Although there are alternatives to Git, Git remains dominant in open source software, usage by developers continues to grow, it installed by default on macOS and Linux, and the project itself continues to adapt to meet the needs of larger projects and enterprise customers who are adopting Git, like the Microsoft Windows project. + +According to a [2016 Bitrise survey](https://blog.bitrise.io/state-of-app-development-2016#self-hosted) of mobile app developers, 62% of apps hosted by SaaS provider were hosted in GitHub, and 95% of apps are hosted in by a SaaS provider. These numbers provide an incomplete view of the industry, but broadly represent the large opportunity for growth in SaaS hosting on GitLab.com, and in self hosted where GitLab is already very successful. + +## Analyst Landscape + + + +- [Native support for large files](https://gitlab.com/groups/gitlab-org/-/epics/773) is important to companies that need to version large binary assets, like game studios. These companies primarily use Perforce because Git LFS provides poor experience with complex commands and careful workflows needed to avoid large files entering the repository. GitLab has been supporting work to provide a more native large file workflow based on promiser packfiles which will be very significant to analysts and customers when the feature is ready. + +## Top Customer Success/Sales issue(s) + + + +- [Gitaly Clusters: strong consistency](https://gitlab.com/groups/gitlab-org/-/epics/1189) will provide improved fault tolerance by guaranteeing a quorum of Gitaly nodes have accepted write operations before reporting a success to the client. This will make automatic fail possible with a high degree of confidence that no data loss will occur. +- [Incremental repository backups](https://gitlab.com/groups/gitlab-org/-/epics/2094) will provide a comprehensive backup solution for GitLab instances with large amounts of Git data. +- [Native support for extremely large repositories](https://gitlab.com/groups/gitlab-org/-/epics/773) prevents existing customers and prospects from being able to migrate enormous repositories from Perforce or SVN to Git. It is frequently requested and many organizations want to standardize on a single version control system and tool like GitLab across all projects. + +## Top user issue(s) + + + +Users do not see Gitaly as a distinct feature or interface of GitLab. +Git performance is the most significant user facing area where improvements are frequently requested, +however the source of the performance problem can vary significantly. + +## Top internal customer issue(s) + + + +- [Gitaly Clusters: strong consistency](https://gitlab.com/groups/gitlab-org/-/epics/1189) will provide improved fault tolerance by guaranteeing a quorum of Gitaly nodes have accepted write operations before reporting a success to the client. This will make automatic fail possible with a high degree of confidence that no data loss will occur. +- [Streaming incremental Git backups](https://gitlab.com/groups/gitlab-org/-/epics/2094) will replace inconsistent disk snapshots for GitLab.com. + +## Top Vision Item(s) + + + +- [Gitaly Clusters: strong consistency](https://gitlab.com/groups/gitlab-org/-/epics/1189) will provide improved fault tolerance by guaranteeing a quorum of Gitaly nodes have accepted write operations before reporting a success to the client. This will make automatic fail possible with a high degree of confidence that no data loss will occur. +- [Native support for large files](https://gitlab.com/groups/gitlab-org/-/epics/773) prevents existing customers and prospects being able to migrate repositories with large files to Git. Git LFS isn't a sufficient solution for these organisations in comparison with the native support of other version control systems. The most pressing problem is avoiding the need to download enormous amounts of data, and not having to remember to use different commands for different files so as not to make life worse for everyone. diff --git a/source/direction/create/gitlab_docs/index.html.md b/source/direction/create/gitlab_docs/index.html.md new file mode 100644 index 00000000..188f8977 --- /dev/null +++ b/source/direction/create/gitlab_docs/index.html.md @@ -0,0 +1,110 @@ +--- +layout: markdown_page +title: "Category Direction - GitLab Documentation Site" +canonical_path: "/direction/create/gitlab_docs/" +--- + +- TOC + {:toc} + +## GitLab Documentation Site + +| Stage | Maturity | Content Last Reviewed | +| --- | --- | --- | +| [Create](/direction/dev/index.html#create) | [Complete](/direction/maturity/) | `2020-06-30` | + +## 概要 + +GitLab’s documentation is crafted to help users, admins, and decision-makers learn about GitLab features and to optimally implement and use GitLab to meet their [DevOps](https://about.gitlab.com/stages-devops-lifecycle/) needs. Its source is developed and stored with the product in its respective paths within the GitLab [CE](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/doc), [EE](https://gitlab.com/gitlab-org/gitlab-ee/tree/master/doc), [Runner](https://gitlab.com/gitlab-org/gitlab-runner/tree/master/docs), and [Omnibus](https://gitlab.com/gitlab-org/gitlab-ee/tree/master/doc) repositories. The documentation is published at [docs.gitlab.com](https://docs.gitlab.com/) (offering multiple versions of all products’ documentation) and at the `/help/` path on each GitLab instance’s domain, with content for that instance’s version and edition. + +Our goal is to create documentation that is complete, accurate, and easy to use. It should be easy to browse or search for the information you need, and easy to contribute to the documentation itself. All standards and practices for contributing documentation are found within the docs in the [GitLab Documentation guidelines](https://docs.gitlab.com/ee/development/documentation/) section. + +### Target Audience + +**GitLab Users:** Users of GitLab rely on accurate, up-to-date, and comprehensive documentation of the features available. + +**GitLab Team Members:** GitLab team members are both contributors to and consumers of the documentation. While the [Technical Writing](https://about.gitlab.com/handbook/product/technical-writing/) team owns the documentation, all team members can and do contribute to the them. + +**Leadership & Decision-makers:** The GitLab documentation site is a valuable resource for decision-makers to compare features across versions and evaluate implementation details that may impact a purchasing decision. + + + + + +### Where we are Headed + +Our current focus is on improving the information architecture, usability, and overall content of the documentation. Specifically, we're working to: + +* Complete information architecture and user experience audit +* Complete a gap analysis of the documentation content itself +* Improve search and discoverability across the site + +Additionally, we want to lower the barrier to contributing changes by integrating the [static site editor](https://about.gitlab.com/direction/create/static_site_editor/). + + + + + + + +### What is Not Planned Right Now + +At this time, we are not investigating any significant architecture changes like migrating to a new static site generator. + +We're not currently investing in localization of the documentation. + +### Maturity Plan + + + + +Currently, the GitLab Documentation Site category is a *non-marketing category* which means its maturity does not get tracked. However, for the sake of measuring improvement, the GitLab Documentation Site is marked as `Complete` with intentions of moving it to `Lovable`. + + + + + + + +### Competitive Landscape + + +* [Stripe's documentation](https://stripe.com/docs) is considered the gold standard of documentation sites +* [Algolia](https://www.algolia.com/doc/) has excellent documentation and information architecture + + + diff --git a/source/direction/create/gitlab_handbook/index.html.md b/source/direction/create/gitlab_handbook/index.html.md new file mode 100644 index 00000000..415ad20c --- /dev/null +++ b/source/direction/create/gitlab_handbook/index.html.md @@ -0,0 +1,68 @@ +--- +layout: markdown_page +title: "Category Direction - GitLab Handbook" +description: "The GitLab Handbook is an incredible tool for documenting GitLab processes and is used as the single source of truth for many things inside the company." +canonical_path: "/direction/create/gitlab_handbook/" +--- + +- TOC + {:toc} + +## GitLab Handbook + +| Stage | Maturity | Content Last Reviewed | +| --- | --- | --- | +| [Create](/direction/dev/index.html#create) | [Complete](/direction/maturity/) | `2020-08-07` | + +## 概要 + +The [GitLab Handbook](/handbook) is the single source of truth for how we operate at GitLab, including processes, policies, and product direction. In keeping with our [value of transparency](/handbook/values/#transparency), the GitLab Handbook is entirely open to the world. We welcome feedback from the community and hope that it serves as [inspiration](/handbook/inspired-by-gitlab/) for other current or future companies. The GitLab Handbook is also an incredible recruiting tool, providing candidates with valuable insight into how GitLab runs as a company. + +A sub-section of the [about.gitlab.com](https://about.gitlab.com) website, the GitLab Handbook specifically refers to content that is in the `/handbook/` namespace of the website. The overall user experience and architecture of the GitLab Handbook is maintained by the [Static Site Editor team](https://about.gitlab.com/handbook/engineering/development/dev/create-static-site-editor/). + +### Target Audience + +**GitLab Team Members:** Every GitLab team member is responsible for using and updating our handbook. It is the central repository for process documentation and product direction. + +**Leadership:** GitLab leadership uses the handbook like any other member of the team, but additionally needs to reference the content during presentations to stakeholders or investors. Since everything we do is open to the public, members of leadership teams outside of GitLab may also use the GitLab Handbook as reference or inspiration for their own team processes and policies. + +**Potential Applicants:** Candidates for job opportunities at GitLab use the handbook to learn more about expectations for the role, compensation and benefits, GitLab's company values, and other policies. GitLab team members also use the handbook extensively to share specific, relevant information with potential applicants, making it a powerful recruiting tool in itself. + +**Current and Potential Users:** GitLab's product direction, strategy, and vision are documented in the handbook alongside our product and engineering processes. This allows current users a glimpse into GitLab's future priorities and can help potential users make an informed decision related to adopting GitLab as a tool. + +## Where we are Headed + +At GitLab, we encourage everyone to work [handbook first](/handbook/handbook-usage/#why-handbook-first) in order to promote asynchronous collaboration and documentation. Working this way has its challenges, not the least of which is the time and effort involved in making a change. While this extra investment can encourage contributors to be more considered and deliberate with their changes, at a certain point it discourages meaningful collaboration and works against our goals. + +Making a change to the GitLab Handbook requires either building and running the site locally or using the Web IDE, both of which can be intimidating for less technical users. Once a change has been made, the current build process for the GitLab Handbook makes it difficult to predict when a change will be deployed, often taking between 10 and 45 minutes. + +Our hope is that the GitLab Handbook is something that others want to emulate. To facilitate that, we are investigating ways we can templatize the handbook itself and make it something that any user can install at a group level. To get there, we need to have: + +* Incredible, organized, and up-to-date content +* An amazing editing experience for all users using a [Static Site Editor](/direction/create/static_site_editor/) +* Fast, predictable deployments within a couple of minutes of making a change to a single page +* Sharing tools for spreading the word about GitLab on social media +* A clean, scalable information architecture and modern codebase + +### What's Next & Why + +- **[Monorepo refactor:](https://gitlab.com/groups/gitlab-com/-/epics/282)** The [`www-gitlab-com`](https://gitlab.com/gitlab-com/www-gitlab-com/) project is home to multiple sub-sites including the blog, our marketing pages, and the GitLab Handbook which all deploy to the [about.gitlab.com](https://about.gitlab.com) domain. In order to ensure stability, accountability, and efficiency, we are working to separate and isolate these sub-sites into distinct projects within the main project. This will allow us to implement separate CI pipelines for each project, so that changes will only build, test, and deploy the relevant project. +- **[Pipeline performance improvements:](https://gitlab.com/groups/gitlab-com/-/epics/255)** Getting the build and deploy time down to a reasonable level is one of the most important things we can do to encourage more collaboration among users already familiar with how to edit the handbook. Recent efforts have reduced the average build and deploy time by over 50% but there are still opportunities for further optimization, mostly around reducing the overall size of the project repository. +- **[Evaluate Frontman as a replacement for Middleman:]](https://gitlab.com/groups/gitlab-com/-/epics/871)** We had previously decided against moving away from Middleman as our static site generator, but a [new project from the team at Algolia](https://github.com/algolia/frontman) has the potential to dramatically speed up our development and build times with very few tradeoffs. We have not committed fully to the migration yet, but we intend to evaluate the new generator and weigh the performance gains against the potential drawbacks. +- **[Improved reading and sharing experience:](https://gitlab.com/groups/gitlab-com/-/epics/326)** The content needs to remain the primary focus but it should be easier to search, navigate, and share the content. +- **[Freshness tools:](https://gitlab.com/groups/gitlab-com/-/epics/325)** To ensure that content is relevant, up-to-date, not duplicative, and to give readers the tools they need to flag content that doesn't meet those criteria. +- **Improved content editing experience:** As delivered by the [Static Site Editor](/direction/create/static_site_editor/). + +### What is Not Planned Right Now + +We are not currently investigating a transition to a separate, external content management system or publishing platform. + +The needs of the GitLab Handbook [have outgrown what can be handled in a wiki](https://about.gitlab.com/handbook/handbook-usage/#wiki-handbooks-dont-scale) (or similar) product, so we are not planning to migrate any content into that format. + +Since the content is [changing quite literally every day](https://gitlab.com/gitlab-com/www-gitlab-com/-/commits/master/source/handbook), we are not looking to generate a digital or printed book from the GitLab Handbook content. + +The GitLab Handbook is not currently optimized for serving as a searchable Knowledge Base or FAQ repository similar to what you would find on [Quora](https://www.quora.com/) or [Stack Overflow](https://stackoverflow.com/). The problems to be solved in those areas are likely to be addressed by the [Knowledge group](/handbook/product/product-categories/#knowledge-group). + +### Maturity Plan + +Currently, the GitLab Handbook category is a *non-marketing category* which means its maturity does not get tracked. However, for the sake of measuring improvement, the GitLab Handbook is marked as `Complete` with intentions of moving it to `Lovable`. diff --git a/source/direction/create/gitter/index.html.md b/source/direction/create/gitter/index.html.md new file mode 100644 index 00000000..26ed9868 --- /dev/null +++ b/source/direction/create/gitter/index.html.md @@ -0,0 +1,97 @@ +--- +layout: markdown_page +title: "Category Direction - Gitter" +description: "Since GitLab acquired Gitter, the team has open sourced it's web app, iOS app and Android app. Find more information here!" +canonical_path: "/direction/create/gitter/" +--- + +- TOC + {:toc} + +## Gitter + +| Stage | Maturity | Content Last Reviewed | +| --- | --- | --- | +| [Create](/direction/dev/index.html#create) | [Minimal](/direction/maturity/) | `2020-07-01` | + +Gitter is an open source chat application for developers, and is the place to connect the open source and software development community. + +Gitter is a popular tool for building/supporting open source communities and is well integrated with GitHub. Since GitLab acquired Gitter, the team has open sourced it's [web app](https://gitlab.com/gitlab-org/gitter/webapp), [iOS app](https://gitlab.com/gitlab-org/gitter/gitter-ios-app) and [Android app](https://gitlab.com/gitlab-org/gitter/gitter-android-app). We want Gitter to be the best place for building open source communities, particularly when the project is hosted on GitLab, and make it [available by default to projects](https://gitlab.com/groups/gitlab-org/-/epics/359). There are also exciting possibilities to use Gitter to streamline the transition from async communication in issues and merge requests to synchronous forms of communication like real-time chat. And [opportunities to transition some of the open source community over to GitLab](#business-opportunity). + +- [Issue List](https://gitlab.com/groups/gitlab-org/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=group%3A%3Agitter) +- [Epic List](https://gitlab.com/groups/gitlab-org/-/epics?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=group%3A%3Agitter) +- [Overall GitLab Vision](/direction/create/) + +Please reach out to PM Eric Schurter ([E-Mail](mailto:eschurter@gitlab.com) +[Twitter](https://twitter.com/e_shirt)) if you'd like to provide feedback or ask +questions about what's coming. + +## Target Audience and Experience + +**Open source developers:** As Gitter was originally highly integrated with GitHub, there is an existing base of developers. This audience is valuable in order to position [GitLab as the most popular collaboration tool](https://about.gitlab.com/company/strategy/#big-hairy-audacious-goal). Helping people communicate to get their problems solved and questions answered. + +**Open source project maintainers:** Be the place that project maintainers want to setup their community on. This means integrating with their project so the team can talk and reference easily and jump to where they want to go. + +## What's Next & Why + +**In Progress: [GitLab communities and rooms](https://gitlab.com/groups/gitlab-org/-/epics/398)** are needed to grow the user base of Gitter by making it work well with GitLab, which includes making it easy for [every project to have a Gitter community](https://gitlab.com/groups/gitlab-org/-/epics/359). This is step one to making the GitLab transition attractive for an existing project on Gitter. Support for GitLab communities and rooms is nearly complete, with only support for GitLab [user namespace communities](https://gitlab.com/gitlab-org/gitter/webapp/-/issues/2397) remaining. + +**In Progress:** Moving to a [Progressive Web App](https://gitlab.com/gitlab-org/gitter/webapp/-/issues/1992) will align the Gitter mobile and desktop experiences around a single codebase and improve productivity for the team. + +## Competitive Landscape + +Our competitors have a lot more polish which makes them attractive. Gitter's competitive advantage is developer friendly and familiar Markdown formatting support, publicly viewable archives, and free without limits. + +- [Slack](https://slack.com) + - Lots of polish + - Invite system and closed ecosystem which makes the information hidden and harder to jump in + - Limited message archive unless you pay +- [Discord](https://discordapp.com/) + - Lots of polish + - More gamer centric but plenty of thriving variety communities +- [Mattermost](https://mattermost.com/) + - Open source + - Very competitive with Slack + - Doesn't offer a free hosted SaaS tier which may be why we don't see it mentioned often +- [Spectrum](https://spectrum.chat/) + - Developer focused + - Not exactly chat but going after the same open source crowd and has big projects onboard + - Question and answer forum style (but is realtime) +- IRC ([Freenode](https://freenode.net/)) + - Longstanding dead simple chat + - Plenty of developer communities still using IRC + +## Business Opportunity + +Gitter is uniquely positioned to introduce open source developers to the GitLab ecosystem. With the existing open source community on Gitter being GitHub centric, any branding, [cross-references](https://gitlab.com/groups/gitlab-org/-/epics/402), or unique features for GitLab communities will make people more familiar with GitLab. The ideal outcome to make the switch over to GitLab obvious. + +## Top Customer Success communities + +- **[FreeCodeCamp](https://gitter.im/FreeCodeCamp/home):** Free courses on how to learn to code +- **[Angular](https://gitter.im/angular/angular):** JavaScript framework to build applications +- **[Cypress](https://gitter.im/cypress-io/cypress):** Frontend testing framework +- **[Microsoft](https://gitter.im/Microsoft/home):** TypeScript, VSCode, and many more +- **[Scala](https://gitter.im/scala/scala):** Programming language +- [List of Gitter's most active communities](https://gitlab.com/gitlab-org/gitter/webapp/issues/2356#note_249999842) + +## Top user issue(s) + +- [Message reactions](https://gitlab.com/groups/gitlab-org/-/epics/396) +- [Link GitLab account to existing Gitter account](https://gitlab.com/gitlab-org/gitter/webapp/issues/1752) + - This entails supporting multiple backing identities for a single user and [setting your own username](https://gitlab.com/gitlab-org/gitter/webapp/issues/1851) which is another top issue +- [Better notification settings and emails](https://gitlab.com/gitlab-org/gitter/webapp/issues/1205) + +## Top internal customer issue(s) + +The GitLab team does not use Gitter for internal communication. + +There is a [GitLab community](https://gitter.im/gitlabhq/home) on Gitter with rooms for [general GitLab support](https://gitter.im/gitlabhq/gitlabhq) and where [GitLab contributors can chat](https://gitter.im/gitlabhq/contributors). + +## Top Vision Item(s) + +- [Message reactions](https://gitlab.com/groups/gitlab-org/-/epics/396) +- [Multiple identity users](https://gitlab.com/groups/gitlab-org/-/epics/400) +- [Better search](https://gitlab.com/groups/gitlab-org/-/epics/387) +- [Gitter x GitLab cross-references](https://gitlab.com/groups/gitlab-org/-/epics/402) +- [Post-creation community and room customization](https://gitlab.com/groups/gitlab-org/-/epics/399) +- [Progressive web app(PWA) as iOS/Android app alternative](https://gitlab.com/groups/gitlab-org/-/epics/386) diff --git a/source/direction/create/live_preview/index.html.md b/source/direction/create/live_preview/index.html.md new file mode 100644 index 00000000..686d102d --- /dev/null +++ b/source/direction/create/live_preview/index.html.md @@ -0,0 +1,32 @@ +--- +layout: markdown_page +title: "Category Direction - Live Preview" +description: "With Live Preview can view your simple JavaScript apps and static sites in the Web IDE, in real time, right next to the code." +canonical_path: "/direction/create/live_preview/" +--- + +- TOC + {:toc} + +## Live Preview + +| | | +| --- | --- | +| Stage | [Create](/direction/dev/#create) | +| Maturity | [Minimal](/direction/maturity/) | +| Content Last Reviewed | `2020-06-24` | + +### Introduction and how you can help +Thanks for visiting this direction page on the [Live Preview](https://docs.gitlab.com/ee/user/project/web_ide/index.html#enabling-client-side-evaluation) features of the [Web IDE](https://docs.gitlab.com/ee/user/project/web_ide/index.html). This page belongs to the [Editor](/handbook/product/product-categories/#editor-group) group of the Create stage and is maintained by Kai Armstrong ([E-Mail](mailto:karmstrong@gitlab.com)). + +Learn more about the [Web IDE direction](/direction/create/web_ide/). + +### 概要 + +With Live Preview can view your simple JavaScript apps and static sites in the Web IDE, in real time, right next to the code. + +We're not currently investing in the Live Preview features of the Web IDE, but welcome contributions to improve the existing feature or extend our Live Preview capabilities to full stack applications. + +### What is Not Planned Right Now + +Live Preview is currently limited to Javascript applications that can be evaluated in the browser, called client-side evaluation. Extending support to include server-side evalaution would allow more complex applications to be previewed in real time through the Web IDE. Currently this is not possible, and is not planned. diff --git a/source/direction/create/snippets/index.html.md b/source/direction/create/snippets/index.html.md new file mode 100644 index 00000000..bace5072 --- /dev/null +++ b/source/direction/create/snippets/index.html.md @@ -0,0 +1,152 @@ +--- +layout: markdown_page +title: "Category Direction - Snippets" +description: "GitLab Snippets allow users to share small bits of code and text by directly linking, downloading, or embedding them in web apps within a

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 literal 0 HcmV?d00001 diff --git a/source/direction/complex-pipeline.svg b/source/direction/complex-pipeline.svg new file mode 100644 index 00000000..4b4eb424 --- /dev/null +++ b/source/direction/complex-pipeline.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/source/direction/configure/auto_devops/index.html.md b/source/direction/configure/auto_devops/index.html.md new file mode 100644 index 00000000..ac4c7e4f --- /dev/null +++ b/source/direction/configure/auto_devops/index.html.md @@ -0,0 +1,96 @@ +--- +layout: markdown_page +title: "Category Direction - Auto Devops" +direction: "GiitLab's direction for “Auto DevOps” is to leverage our single application to assist users in every phase of the development and delivery process. Learn more!" +canonical_path: "/direction/configure/auto_devops/" +--- + +- TOC + {:toc} + +## Auto DevOps + +Our direction for “Auto DevOps” is to leverage our [single application](https://about.gitlab.com/handbook/product/single-application/) to assist users in every phase of the development and delivery process, implementing automatic tasks that can be customized and refined to get the best fit for their needs. + +With the dramatic increase in the number of projects being managed by software teams (especially with the rise of micro-services), it's no longer enough to just craft your code. In addition, you must consider all of the other aspects that will make your project successful, such as tests, quality, security, logging, monitoring, etc. It's no longer acceptable to add these things only when they are needed, or when the project becomes popular, or when there's a problem to address; on the contrary, all of these things should be available at inception. + +e.g. “auto CI” to compile and test software based on best practices for the most common languages and frameworks, “auto review” with the help of automatic analysis tools like Code Climate, “auto deploy” based on Review Apps and incremental rollouts on Kubernetes clusters, and “auto metrics” to collect statistical data from all the previous steps in order to guarantee performances and optimization of the whole process. Dependencies and artifacts will be first-class citizens in this world: everything must be fully reproducible at any given time, and fully connected as part of the great GitLab experience. + +[Watch the video explaining our vision on Auto DevOps](https://www.youtube.com/watch?v=KGrJguM361c). + + +- [Issue List](https://gitlab.com/groups/gitlab-org/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=Category%3AAuto%20DevOps) +- [Overall Vision](/direction/configure) +- [UX Research](https://gitlab.com/groups/gitlab-org/-/epics/595) + +Interested in joining the conversation for this category? Please join us in our +[public epic](https://gitlab.com/groups/gitlab-org/-/epics/480) where +we discuss this topic and can answer any questions you may have. Your contributions +are more than welcome. + +## What's Next & Why + +As the Kubernetes project rapidly matures and some of its API endpoints are deprecated/removed, we must ensure all the components of Auto DevOps currently interacting with its API are updated to ensure its continuing successful function. + +[Auto DevOps readiness for Kubernetes 1.16](https://gitlab.com/gitlab-org/gitlab/issues/32720) + +## Maturity Plan + +This category is currently at the "Minimal" maturity level, and our next maturity target is [Viable](/direction/maturity/). See the [Auto DevOps viable](https://gitlab.com/groups/gitlab-org/-/epics/1333) epic for more info. Deliverables: + +- [Auto DevOps readiness for Kubernetes 1.16](https://gitlab.com/gitlab-org/gitlab/issues/32720) + +### Group Ownership + +Auto Devops ties together several feature from across GitLab [product categories](/handbook/product/product-categories/). Each individual feature will have its own maturity classification. + +| Feature | Reponsible GitLab Group | +| ------ | ------ | +| Auto Build | [Configure](/handbook/engineering/development/ops/configure/) | +| Auto [Test](/direction/verify/code_testing/) | [Testing](/handbook/engineering/development/ci-cd/verify/testing/) | +| Auto [Code Quality](/direction/verify/code_quality/) | [Testing](/handbook/engineering/development/ci-cd/verify/testing/) | +| Auto [SAST](/direction/secure/static-analysis/sast/) | [Static Analysis](/handbook/engineering/development/secure/static-analysis/) | +| Auto [Secret Detection](/direction/secure/static-analysis/secret-detection/) | [Static Analysis](/handbook/engineering/development/secure/static-analysis/) | +| Auto [Dependency Scanning](/direction/secure/composition-analysis/dependency-scanning/) | Composition | +| Auto [License Compliance](/direction/secure/composition-analysis/license-compliance/) | Composition | +| Auto [Container Scanning](/direction/secure/composition-analysis/container-scanning/) | Composition | +| Auto [Review Apps](/direction/release/review_apps/) | [Progressive Delivery](/handbook/engineering/development/ci-cd/release/progressive-delivery/) | +| Auto [DAST](/direction/secure/dynamic-analysis/dast/) | Dynamic Analysis | +| Auto [Browser Performance Testing](/direction/verify/web_performance/) | [Testing](/handbook/engineering/development/ci-cd/verify/testing/) | +| Auto [Load Performance testing](/direction/verify/load_testing/) | [Testing](/handbook/engineering/development/ci-cd/verify/testing/) | +| Auto [Deploy](/direction/release/continuous_delivery/) | [Progressive Delivery](/handbook/engineering/development/ci-cd/release/progressive-delivery/) | +| Auto [Monitoring](/direction/monitor/) | [APM](/handbook/engineering/development/ops/monitor/apm/) | + +## Competitive Landscape + +While there are "piece-meal" solutions that offer to automate a particular stage, there are no comprehensive tools that offer to address the entire devops lifecycle. + +### DeployHQ + +DeployHQ offers to "Automatically build and deploy code from your repositories", however, its UX is complex that its deployment targets limited. + +[deployhq.com](https://www.deployhq.com) + +## Analyst Landscape + +There is currently no analyst category that aligns with Auto DevOps. + +## Top Customer Success/Sales Issue(s) + +[Use Auto DevOps for design.gitlab.com](https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com/issues/96) + +## Top Customer Issue(s) + +[Add support for AWS ECS deployments to Auto DevOps](https://gitlab.com/gitlab-org/gitlab-ce/issues/38430) + +## Top Internal Customer Issue(s) + +[Use Auto DevOps for design.gitlab.com](https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com/issues/96) + +#### Top Vision Item(s) + +- [Disable Auto DevOps at the Group level for gitlab.com](https://gitlab.com/gitlab-org/gitlab-ce/issues/52447) + +- [Composable Auto DevOps](https://gitlab.com/gitlab-org/gitlab-ce/issues/47234) + +- [Don't run Auto DevOps when no dockerfile or matching buildpack exists](https://gitlab.com/gitlab-org/gitlab-ce/issues/57483) diff --git a/source/direction/configure/chatops/index.html.md b/source/direction/configure/chatops/index.html.md new file mode 100644 index 00000000..fd2c0c5b --- /dev/null +++ b/source/direction/configure/chatops/index.html.md @@ -0,0 +1,47 @@ +--- +layout: markdown_page +title: "Category Direction - ChatOps" +direction: "The next generation of GitLab's ChatOps implementation will allow users to have a dedicated interface to configure, invoke, and audit ChatOps actions!" +canonical_path: "/direction/configure/chatops/" +--- + +- TOC + {:toc} + +## Introduction and how you can help + +Thanks for visiting this category page on ChatOps in GitLab. + +This vision is a work in progress and everyone can contribute. Sharing your feedback directly on our [chatops issues](https://gitlab.com/groups/gitlab-org/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=chatops) and our public [epic](https://gitlab.com/groups/gitlab-org/-/epics/591) at GitLab.com is the best way to contribute to our vision. + +## 概要 + +ChatOps, at its core, is a simple model of collaboration based on conversation. Conversation is the default and natural human way of working together and is still one of the most effective ways to collaborate despite changes to the medium of work conversations. In chat tools, such as [Slack](https://slack.com/), by bringing people, bots, and related tools all into the location where conversation occurs, enhanced efficiency, transparency, and learning is made possible. + +It is useful to enable operators to work with GitLab in all of the chat mediums they use in their work place. GitLab should integrate with popular tools so that ChatOps works for GitLab users out of the box. + +## What's next & why + +[GitLab ChatOps](https://docs.gitlab.com/ee/ci/chatops/) currently supports Slack and GitLab CI/CD. Additional ChatOps capability will be introduced along with the maturation of other GitLab categories, such as [Incident Management](../../monitor/debugging_and_health/incident_management/) + +We eventually plan to support integration with tools such as [Mattermost](https://mattermost.com/) or [Microsoft Teams](https://www.microsoft.com/en-us/microsoft-365/microsoft-teams/group-chat-software). Currently, we are not actively working on additional integrations. We would like the communities help to [introduce a pipeline type for chat-ops generated pipelines](https://gitlab.com/gitlab-org/gitlab/-/issues/26975). + +## Analyst landscape + +TBD + +## Top Customer Success/Sales issue(s) + +TBD + +## Top user issue(s) + +[Slack Custom Actions for Messages](https://gitlab.com/gitlab-org/gitlab-ee/issues/6154) + +## Top internal customer issue(s) + +TBD + +## Top Vision Item(s) + +TBD diff --git a/source/direction/configure/cluster_cost_optimization/index.html.md b/source/direction/configure/cluster_cost_optimization/index.html.md new file mode 100644 index 00000000..6646db06 --- /dev/null +++ b/source/direction/configure/cluster_cost_optimization/index.html.md @@ -0,0 +1,79 @@ +--- +layout: markdown_page +title: "Category Direction - Cluster Cost Optimization" +description: "Compute costs is a significant expenditure for many companies, whether they are in the cloud or on-premise. Learn more from GitLab here!" +canonical_path: "/direction/configure/cluster_cost_optimization/" +--- + +- TOC + {:toc} + +## Introduction and how you can help +Thanks for visiting this category page on Cluster Cost Optimization in GitLab. +This vision is a work in progress and everyone can contribute. Sharing your feedback directly on [issues](https://gitlab.com/groups/gitlab-org/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=Cluster%20Cost%20Optimization) and our public [epic](https://gitlab.com/groups/gitlab-org/-/epics/503) at GitLab.com is the best way to contribute to our vision. +If you’re a GitLab user and have direct knowledge of your need for cluster cost optimization, we’d especially love to hear from you. + +## Cluster Cost Optimization + +Cloud cost management and optimization (CCMO) is an important tool in any CIO's toolkit for the following: + +* Visibility & control - Identify and control which service or team is consuming the most resources for cost accounting and spend accountability +* Analysis - Enable decisions and teams to make the best decisions +* Reduce spend - Optimize spending in the cloud + +While these considerations also apply for organizations operating Kubernetes, Cluster cost optimization are a bit different from traditional CCMO tools. Kubernetes is by default, a multi-cloud enabler and enables auto-scaling out-of-the-box, both of which are value propositions for traditional CCMO vendors that is less applicable for companies running Kubernetes. + +GitLab is well positioned to provide a comprehensive solution for cluster cost optimization because GitLab's integration with the project or group's Kubernetes cluster. + +Potential iterations to a viable solution are listed below: + +- Flag deployments/projects that [overprovisioned resource](https://gitlab.com/gitlab-org/gitlab-ee/issues/9049) requests, wasting resources +- Recommend node changes to increase efficiency (use larger nodes, nodes with more RAM, etc.) +- Estimate costs utilized by each project +- Automatically implement the changes to right-size pod resource requests + +## What's next & why + +[Kubecost](https://www.kubecost.com), a cross-platform cluster cost management tool that can support several clusters and comes with its own Prometheus and Grafana installations, may be a quick way to get this category to minimal maturity. [gitlab-#216737](https://gitlab.com/gitlab-org/gitlab/-/issues/216737) is the first step in determining if we can display +kubecost data in GitLab. Then we can decide if we would like to partner with them to provide an integrated experience with their full product offering and support single pod installations as an MVC. + +Currently, we have a [sample kubecost project](https://gitlab.com/gitlab-examples/kubecost-cost-model) where we are testing the integration. In addition, we have also begun to evaluate this [kubecost helm chart](https://github.com/kubecost/cost-analyzer-helm-chart) as a potential integration method. + +If you are interested in learning more, consider contributing feedback to the [kubecost - GitLab integration issue](https://gitlab.com/gitlab-org/gitlab/-/issues/216737). + +Aside from the above kubecost work, we are not actively prioritizing development work in this category. We would welcome your contribution in this space. + +## Competitive landscape +There's a long tail of competitors and solutions for CIOs in this space with no clear winner. Competition have varying perspectives from different vantage points on how to optimize spend. [kubecost.com](https://www.kubecost.com) is the solution most in line with GitLab's desire to address cluster cost optimization. + +The changing landscape has led to some recent consolidation in the Cloud cost management and optimization (CCMO) space with the acquisition of [CloudHealth by VMWare](https://cloud.vmware.com/community/2018/10/04/cloud-health-acquisition/) and [Cloudability by Apptio](https://www.apptio.com/company/news/press-releases/apptio-inc-completes-acquisition-of-cloudability/). +The aquisition enabled VMWare to have a more complete multi-cloud offering, while Apptio now has a more complete on-premise+cloud offering, enabling them to target enterprises going through cloud migration with one integrated solution for optimizing spend. + +* [kubecost.com](https://www.kubecost.com) +* [cloudhealthtech.com/blog/kubernetes-cost-allocation-made-easy](https://www.cloudhealthtech.com/blog/kubernetes-cost-allocation-made-easy) +* [replex.io/blog/kubernetes-cost-allocation-in-a-nutshell](https://www.replex.io/blog/kubernetes-cost-allocation-in-a-nutshell) +* [supergiant.io/blog/supergiant-packing-algorithm-unique-save-money](https://supergiant.io/blog/supergiant-packing-algorithm-unique-save-money) +* [mist.io](https://mist.io/) +* [cloudability.com](https://www.cloudability.com/) +* [Flexera](https://www.flexera.com/) +* [Turbonomic](https://www.turbonomic.com/) + +## Analyst landscape + +TBD + +## Top Customer Success/Sales issue(s) + +TBD + +## Top user issue(s) + +TBD + +## Top internal customer issue(s) + +TBD + +## Top Vision Item(s) + +[Flag over-provisioned kubernetes deployments](https://gitlab.com/gitlab-org/gitlab-ee/issues/9049) diff --git a/source/direction/configure/infrastructure_as_code/index.html.md b/source/direction/configure/infrastructure_as_code/index.html.md new file mode 100644 index 00000000..ec1064fb --- /dev/null +++ b/source/direction/configure/infrastructure_as_code/index.html.md @@ -0,0 +1,111 @@ +--- +layout: markdown_page +title: "Category Direction - Infrastructure as Code" +description: "GitLab focus on providing tight integration with best of breed IaC tools, so that all infrastructure related workflows in GitLab are well supported. Learn more!" +canonical_path: "/direction/configure/infrastructure_as_code/" +--- + +- TOC + {:toc} + +## Infrastructure as Code + +Infrastructure as code (IaC) is the practice of managing and provisioning infrastructure through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools. The IT infrastructure managed by this comprises both physical equipment such as bare-metal servers as well as virtual machines and associated configuration resources. The definitions are stored in a version control system. IaC takes proven coding techniques and extends them to your infrastructure directly, effectively blurring the line between what is an application and what is the environment. + +Our focus will be to provide tight integration with best of breed IaC tools, such that all infrastructure related workflows in GitLab are well supported. +Our initial focus will likely be on Terraform. + +- [Issue List](https://gitlab.com/groups/gitlab-org/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name%5B%5D=Category%3AInfrastructure%20as%20Code) +- [Overall Vision](/direction/configure) +- [UX Research](https://gitlab.com/groups/gitlab-org/-/epics/595) + +Infrastructure and Application provisioning shouldn't be mixed! Application delivery is covered by our [Continuous Delivery directions](https://about.gitlab.com/direction/release/continuous_delivery/). +{: .note .font-small} + +### Vision + +Our vision is to provide several levels of Infrastructure as Code support: + +1. **GitLab Managed IaC** means that GitLab runs all your IaC code based on our reference architectures and your choice of provider +2. **Self-managed IaC through GitLab** allows you to build you custom architecture, likely based on our recommendations, but still use the engines supporting IaC provided by GitLab. +3. **Fully self-managed IaC** is always available to you. This means that you maintain your CI/CD files and pipelines totally. This is already available today. + +### Interaction with Policy as Code + +As Infrastructure as Code usage scales across teams [collaboration pain points around security, compliance and adopting best practices arise](https://www.youtube.com/watch?v=Vy8s7AAvU6g&=&feature=youtu.be). Traditionally these pain points are solved by written documentation. Modern infrastructure as code applications have implemented Policy as Code tools to enable automated checking of infrastructure definitions against easy to write policy definitions. One prime example of this is [Hashicorp's Sentinel](https://www.hashicorp.com/sentinel/). + +The principles of Policy as Code are closely aligned with Infrastructure as Code. Within GitLab our existing primitives of integrated CI with *CI job definition in-code* model similar behavior to modern Policy as Code frameworks. At present our existing CI approach allows easy integration of special Policy as Code tools and GitLab. + +### What's next + +We have a dedicated page for [Kubernetes management directions](https://about.gitlab.com/direction/configure/kubernetes_management/). The following directions are related to generic Infrastructure as Code tool support in GitLab. + +First, we are going to focus on Terraform support, the *de facto* standard in infrastructure provisioning. +As we are moving Infrastructure as Code support towards Viable, we have [a dedicated Epic to collect all our plans](https://gitlab.com/groups/gitlab-org/-/epics/1960). + +Interested in joining the conversation for this category? Please join us in our +[public epic](https://gitlab.com/groups/gitlab-org/-/epics/1960) where +we discuss this topic and can answer any questions you may have. Your contributions +are more than welcome! + +#### GitLab Managed Terraform State + +We would like to provide GitLab users with an unmatched Terraform experience. This involves a Terraform backend that integraets with GitLab pipelines without any setup from the user, and allows advanced state management from within GitLab. + +Please contribute to [our plans in the related epic](https://gitlab.com/groups/gitlab-org/-/epics/2673). + +#### Collaboration around Infrastructure changes + +In the case of Infrastructure as Code, a code change means a change in the infrastructure too. Thus we want to provide a solution that allows our users to have an overview of both the code changes and the final infrastructure changes in Merge Requests. + +We've already shipped the first iteration of the Terraform plan in MR widget, and we are working on [further improving the experience](https://gitlab.com/groups/gitlab-org/-/epics/3441). + +#### Terraform module registry + +For larger infrastructures, re-usable modules are a call part of the IaC codebase. We intend to provide a Terraform module registry as part of GitLab by extending the current module registries. Please, contribute to our plans around the registry in the [Terraform registry Epic](https://gitlab.com/groups/gitlab-org/-/epics/3221) + +#### Improving GitLab's Ansible support + +While Terraform is the *de facto standard* for infrastructure provisioning, there are other tools for configuration management, like Ansible or Chef. Following the Terraform devlopments, we intend to turn our attention to Ansible, and improve Ansible support inside GitLab. You are invited to express your interests and describe your use-case in [Ansible integration in our related issue](https://gitlab.com/gitlab-org/gitlab/-/issues/229633). + +### Current maturity + +Even though we consider our Infrastructure as Code support to be `Minimal` at the moment, we see several GitLab customers using our CI/CD capabilities in production environments. Usually, Terraform-focused CI/CD projects are run +as [multi project pipelines](https://docs.gitlab.com/ee/ci/multi_project_pipelines.html). + +### Analyst Landscape + +We don't consider GitLab a replacement of IaC tools, but rather a complement. Based on several discussions, we consider +Terraform the *de facto* standard of infrastructure provisioning. + +Given the trends around containerization, ephemeral and immutable infrastructures, we expect the relevance of configuration management tools to decrease, and infrastructure provisioning to gain more market share. + +### Top Customer Success/Sales issue(s) + +As already mentioned, we've several customers using IaC solutions with GitLab. The following list shows our primary +points of contacts for customer interviews around IaC. + +- Wag! +- kiwi.com +- Ooma +- GitLab + +### Top user issue(s) + +TBD + +### Top internal customer issue(s) + +### Top Strategy Item(s) + +### Competitors + +#### CloudSkiff + +CloudSkiff describes itself as a CI/CD for Terraform, on steroids. + +### Examples + +- [How GitLab uses Terraform](https://about.gitlab.com/blog/2019/11/12/gitops-part-2/) internally +- [Kiwi.com on Infrastructure as Code](https://www.youtube.com/watch?v=Un2mJrRFSm4) at GitLab Commit London, 2019 +- Presenting [code.siemens.com](https://www.youtube.com/watch?v=4Y8zv1TJRlM) at GitLab Commit London, 2019 diff --git a/source/direction/configure/kubernetes_management/index.html.md b/source/direction/configure/kubernetes_management/index.html.md new file mode 100644 index 00000000..cba7b35b --- /dev/null +++ b/source/direction/configure/kubernetes_management/index.html.md @@ -0,0 +1,100 @@ +--- +layout: markdown_page +title: "Category Direction - Kubernetes Management" +description: "GitLab aim to provide a simple way for users to configure their clusters and manage Kubernetes. Learn more here!" +canonical_path: "/direction/configure/kubernetes_management/" +--- + +- TOC + {:toc} + +## 概要 + +The main motivating factor behind [using a container orchestration platform is cost reduction](https://medium.com/kubernetes-tutorials/how-can-containers-and-kubernetes-save-you-money-fc66b0c94022). Kubernetes has become the most widely adopted container orchestration platform to run, deploy, and manage applications. Yet, to seamlessly connect application code with the clusters in various environments, has remained a complex task that needs various approaches of CI/CD and Infrastructure as Code. + +Our mission is to make deployments to every environment frictionless for the developer and reliable for the operator, no matter the experience level. We do this by supporting an integrated experience within GitLab and leverage the existing tools and approaches in the Kubernetes community. + +### How you can contribute + +Interested in joining the conversation for this category? Please have a look at our +[global epic](https://gitlab.com/groups/gitlab-org/-/epics/115) where +we discuss this topic and can answer any questions you may have. Your contributions are more than welcome. + +## Vision + +In two years, GitLab is an indispensable addition in the workflow of Kubernetes users by making deployments reliable, frictionless and conventional. + +## Target User + +We are building GitLab's Kubernetes Management category for the enterprise operators, who are already operating production grade clusters and work hard to remove all the roadblocks that could slow down product development without putting operations at risk. + +- [Priyanka](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#priyanka-platform-engineer) + +## What's next & why + +### GitLab agent + +The current version of GitLab Managed Clusters requires `cluster-admin` rights and direct access to the Kubernetes API server to get all the benefits and simplicity GitLab can provide. For serious, enterprise use cases allowing `cluster-admin` rights and K8s API access is not an option. In order to serve our enterprise users we intend to provide an active, cluster-side component to manage deployments and GitLab's cluster integration. + +Using the GitLab Kubernetes Agent, we want to offer a security oriented, Kubernetes-friendly integration option to Platform Engineers. Beside providing more control for the cluster operator, the agent opens up many new possibilities to make GitLab - cluster integrations easier and deeper. We expect the agent to support various GitLab features with automatic setups and integrations. + +Please, [join the discussion](https://gitlab.com/gitlab-org/gitlab/-/issues/216569). + +### GitLab Managed Applications + +GitLab Managed Applications are currently undergoing a large development by moving from the UI-only setup, to a more customizable, CI/CD-based, Infrastructure as Code setup. We want to allow our users to install off the shelf applications with necessary customizations. Moreover, we will continue to offer easy installations of the applications needed to benefit from GitLab's features like the Runner, Auto DevOps, Metrics and log collection, etc. The next step in this journey is to create CI templates for all the applications we support today. + +While this approach would allow it, we do not intend to create a marketplace of apps inside of GitLab, instead we would like to integrate with solutions like [OperatorHub](https://operatorhub.io/). As a result, we are looking at providing apps as GitLab Managed Apps if they satisfy the following criteria: + +- Each GitLab Managed App should provide sane, production-ready default configurations. +- Each GitLab Managed App should be a requirement for current or planned GitLab functionality or it should integrate deeply with GitLab. +- Each GitLab Managed App should have a clear support path, likely outside of GitLab. + +Contribute to these directions in the Epic ["Create CI templates for GitLab-managed-apps"](https://gitlab.com/groups/gitlab-org/-/epics/2103) + +## Challenges + +We see Kubernetes as a platform for delivering containerised software to users. Currently, every company builds its own workflows on top of it. The biggest challenges as we see them are the following: + +- Making Kubernetes friendly to developers is hard. We want to make deployments to every Kubernetes environment frictionless for the developer and reliable for the operator. +- As clusters are complex having an overview of the state and contents of a cluster is hard. We want to help our [monitoring efforts](/direction/monitoring) to provide clean visualisation and a rich understanding of one's cluster. + +## Approach + +- Kubernetes has a large and engaged community, and we want to build on the knowledge and wisdom of the community, instead of re-inventing existing solutions. +- In Kubernetes there are a plethora of ways for achieving a given goal. We want to provide a default setup and configuration options to integrate with all popular approaches and tools. + +## Maturity + +Kubernetes Management is currently `Viable`. We want to make it `Complete` by February 2021. + +## Competitive landscape + +### IBM Cloud Native Toolkit + +It provides an Open Source Software Development Life Cycle (SDLC) and complements IBM Cloud Pak solutions. The Cloud Native Toolkit enables application development teams to deliver business value quickly using Red Hat OpenShift and Kubernetes on IBM Cloud. + +### Spinnaker + +Spinnaker is an open-source, multi-cloud continuous delivery platform that helps you release software changes with high velocity and confidence. It provides two core sets of features 1) Application management, and 2) Application deployment. + +## Analyst landscape + +This category doesn't quite fit the "configuration management" area as it relates only to Kubernetes. No analyst area currently defined. + +## Top Customer Success/Sales issue(s) + +[Customize Kubernetes namespace per environment for managed clusters](https://gitlab.com/gitlab-org/gitlab/-/issues/38054) + +## Top user issue(s) + +[Customize Kubernetes namespace per environment for managed clusters](https://gitlab.com/gitlab-org/gitlab/-/issues/38054) + +## Top internal customer issue(s) + +[Add more configuration options for launching a new cluster directly from the GitLab application](https://gitlab.com/gitlab-org/gitlab/-/issues/30876) + +## Top Vision Item(s) + +- [Kubernetes Management - enterprise level K8s integration](https://gitlab.com/gitlab-org/gitlab/-/issues/216569) +- [UX Research](https://gitlab.com/groups/gitlab-org/-/epics/595) diff --git a/source/direction/configure/runbooks/index.html.md b/source/direction/configure/runbooks/index.html.md new file mode 100644 index 00000000..d3b17c41 --- /dev/null +++ b/source/direction/configure/runbooks/index.html.md @@ -0,0 +1,59 @@ +--- +layout: markdown_page +title: "Category Direction - Runbooks" +description: "Runbooks are a collection of documented procedures that explain how to carry out a particular process or troubleshooting a particular system. Learn more!" +canonical_path: "/direction/configure/runbooks/" +--- + +- TOC + {:toc} + +## Runbooks + +Runbooks are a collection of documented procedures that explain how to carry out a particular process, be it starting, stopping, debugging, or troubleshooting a particular system. + +Historically, runbooks took the form of a decision tree or a detailed step-by-step guide depending on the condition or system. + +Modern implementations have introduced the concept of “executable runbooks”, where, along with a well-defined process, operators can execute pre-written code blocks or database queries against a given environment. + +We aim to extend Release Management and Incident Management further by rendering runbooks inside GitLab as interactive documents for operators. This will link from either a release or an incident management screen so when an action happens, GitLab points you to the relevant runbook. Additionally, we want to allow runbooks to trigger ChatOps functions as defined in `gitlab-ci.yml`. + +- [Issue List](https://gitlab.com/groups/gitlab-org/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=runbooks) +- [UX Research](https://gitlab.com/groups/gitlab-org/-/epics/595) + +Interested in joining the conversation for this category? Please join us in our +[public epic](https://gitlab.com/groups/gitlab-org/-/epics/380) where +we discuss this topic and can answer any questions you may have. Your contributions +are more than welcome. + +## What's next & why + +We are taking the first steps of Runbooks within the [Release](https://about.gitlab.com/handbook/engineering/development/ci-cd/release/) stage under the [Release Management Group](https://about.gitlab.com/handbook/product/product-categories/#release-management-group). We recently added the ability to create visibility to our user's runbooks by enabling an asset link to a runbook via [gitlab#9427](https://gitlab.com/gitlab-org/gitlab/-/issues/9427). In the next iteration, we plan to render a release progress view calculated from the linked runbook in [gitlab#207258](https://gitlab.com/gitlab-org/gitlab/issues/207258). + +We are also furthering GitLab's Runbooks capability by linking runbooks to [Alerts](../../monitor/debugging_and_health/alert_management/) and [Incidents](../../monitor/debugging_and_health/incident_management) as outlined in [gitlab&1436](https://gitlab.com/groups/gitlab-org/-/epics/1436). + +## Competitive landscape + +While there are some offerings in the marketplace, they rely on heavy customization for every use case and are somewhat specialized (i.e. networking). Mature organizations have stitched together their own Runbooks, such as using [Jupyter Notebooks for writing Runbooks](https://dev.to/amit1rrr/simplify-devops-with-jupyter-notebook-e33). + +Some of the main competitors for release mangement include [deployment plans](https://docs.xebialabs.com/v.9.5/xl-deploy/concept/examples-of-orchestrators-in-xl-deploy/#default-orchestrator) within XebiaLabs, release orchestration plans in [Electric Cloud's Flow](https://www.cloudbees.com/products/flow/overview), and even layers of spreadsheets that are used to track tasks manually. On the Indicident Management side, we see the top providers for runbooks or playbooks are [PagerDuty](https://www.pagerduty.com/), [VictorOps](https://victorops.com/blog/runbooks-checklist), and [Opsgenie](https://www.atlassian.com/software/opsgenie/features). The largest competitor of interest in this space would be the Opsgenie offering, as it is an Atlassian product, it can leverage a resemblance to a DevOps Platform suite. + +## Analyst landscape + +Runbook Automation (RBA) is a common terminology used in conjunction with the evaluation of monitoring and incident mangement solutions. Oftentimes, these are not evaluated exclusively by analysts as core offerings. + +## Top Customer Success/Sales issue(s) + +We have received several interested customer accounts and prospects in being able connect their own runbooks to release artifacts as described in [gitlab#9427](https://gitlab.com/gitlab-org/gitlab/-/issues/9427). + +## Top user issue(s) + +[Group-level filtering for JupyterHub deployment](https://gitlab.com/gitlab-org/gitlab-ce/issues/52536) + +## Top internal customer issue(s) + +Many GitLab teammates have cited an interest in enabling the execution of Markdown as code, which can be seen in [gitlab#198287](https://gitlab.com/gitlab-org/gitlab/-/issues/198287), given that many steps or current runbooks may be stored as Markdown files in the current state. Another popular request is to make it easier to use runbook style operational code snippets via [gitlab#36386](https://gitlab.com/gitlab-org/gitlab/-/issues/36386). Both of these issues improve the operational effectiveness surrounding native GitLab runbook capabilties. + +## Top Vision Item(s) + +A keystone of runbooks and making them highly usable can center around building out more comprehensive [Runbook Automation](https://gitlab.com/gitlab-org/gitlab-ee/issues/3911) to support all parties that use runbooks whether for Release Management, Incident Response, configuration of infrastructure, or even Alerting. In the Release Management space, we are working on building our more native GitLab runbooks as seen in [gitlab&2665](https://gitlab.com/groups/gitlab-org/-/epics/2665). Jupyter Hub offers compelling functionality in their notebooks, so we are also interested in expanding the Jupyter Notebook support for releases via [gitlab&2663](https://gitlab.com/groups/gitlab-org/-/epics/2663). One way to support the execution of these scripts could be to leverage and partner with a provider like [Rundeck](https://www.rundeck.com/open-source), which is being considered in [gitlab#36655](https://gitlab.com/gitlab-org/gitlab/-/issues/36655). diff --git a/source/direction/configure/serverless/index.html.md b/source/direction/configure/serverless/index.html.md new file mode 100644 index 00000000..9954554f --- /dev/null +++ b/source/direction/configure/serverless/index.html.md @@ -0,0 +1,84 @@ +--- +layout: markdown_page +title: "Category Direction - Serverless" +description: "GitLab is a preferred tool for developers and operators looking after an integrated continuous delivery and monitoring of serverless applications." +canonical_path: "/direction/configure/serverless/" +--- + +- TOC + {:toc} + +## Introduction and how you can help + +Thanks for visiting this category page on Serverless in GitLab. + +This vision is a work in progress and everyone can contribute. Sharing your feedback directly on [issues](https://gitlab.com/groups/gitlab-org/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=serverless) and our public [epic](https://gitlab.com/groups/gitlab-org/-/epics/155) at GitLab.com is the best way to contribute to our vision. + +If you’re a GitLab user and have direct knowledge of your need for serverless, we’d especially love to hear from you. + +## 概要 + +[Serverless computing](https://en.wikipedia.org/wiki/Serverless_computing) is a cloud computing execution model in which the cloud provider runs the server, and dynamically manages the allocation of machine resources. Currently, serverless computing doesn't yet have standardization, this means that developers have to choose between functionality, capability, and the overall ecosystem between cloud vendors. With Kubernetes, increasingly, also adopted increasingly as the de facto platform for many cloud native practitioners, operators have the challenge of making serverless play well with clusters, in a multi-cloud environment. + +The mission of the GitLab Serverless category is to make GitLab the preferred tool for developers and operators taking advantage of serverless computing, making integrated continuous delivery and monitoring easy - no matter if those serverless applications are run inside a Kubernetes cluster or with a public serverless services provider. + +## The first step we took + +Our initial hypothesis was that leveraging Knative and Kubernetes (See [Knative epic](https://gitlab.com/groups/gitlab-org/-/epics/1726) and associated [UX Research](https://gitlab.com/gitlab-org/ux-research/issues/99)), users will be able to define and manage functions in GitLab. This includes managing the security, logging, scaling, and costs of their serverless implementation for a particular project/group. + +## What's next & why + +While [Knative is the most popular installable serverless plaforms in use](https://www.cncf.io/wp-content/uploads/2020/03/CNCF_Survey_Report.pdf), Serverless is still largely about hosted services that is dominated by AWS Lambda. As a result, we don't have any plans around improving the cluster based [GitLab Serverless](https://docs.gitlab.com/ee/user/project/clusters/serverless/) offering. + +Looking forward, we would like to strengthen our integration with existing hosted serverless provider offerings, especially around deploying and monitoring serverless deployments. + +## Ecosystem and Partners + +To get a great overview of the serverless world, we recommend having a look at the [CNCF Serverless Landscape](https://landscape.cncf.io/format=serverless). +We are working hard to be great partners with the most widely used tools and fulfill the gap in every other area. + +### Knative and Kubernetes + +Users should be able to easily spin a new Kubernetes cluster under various providers using GitLab to start using the GitLab serverless offering. + +### Managed serverless providers + +AWS Lambda is a serverless compute service created by Amazon in 2015. It runs a function triggered by an event and manages the compute resources automatically so you don’t have to worry about what is happening under the hood. + +Azure Functions is Microsoft’s response to Amazon’s Lambda. It offers a very similar product for the same cost. It uses Azure Web Jobs; the delay between hot cold invocations is less visible. + +It’s a fully managed Node.js environment that will run your code handling scaling, security, and performance. It’s event-driven and will trigger a function returning an event, very much in the same way AWS Lambda works. It’s intended to be used for small units of code that are placed under heavy load. + +### Serverless Framework + +The Serverless Framework is an open-source tool for managing and deploying serverless functions. It supports multiple programming languages and cloud providers. Its two main components are + +- [Event Gateway](https://serverless.com/event-gateway/), which provides an abstraction layer to easily design complex serverless applications, and +- [Serverless Dashboard](https://serverless.com/dashboard/), for a better management of the application, as well as collaboration. + +Serverless Framework applications are written as YAML files (known as serverless.yml) which describe the functions, triggers, permissions, resources, and various plugins of the serverless application. + +## Analyst landscape + +The Serverless category is currently coupled with IaaS reports. + +Gartner's `Magic Quadrant for Cloud Infrastructure as a Service` places AWS, Azure, and Google Cloud as leaders. + +Forrester places `Serverless Computing` in their `Emerging Technology Spotlight` category, with the big three as leaders (AWS, Azure, Google Cloud) + +## Top Customer Success/Sales issue(s) + +n.a. + +## Top user issue(s) + +[Automatic domain for a serverless function](https://gitlab.com/gitlab-org/gitlab/issues/30151) +[SSL for Knative services](https://gitlab.com/gitlab-org/gitlab-ce/issues/56467) + +## Top internal customer issue(s) + +We collect [GitLab related issues under our dogfooding epic](https://gitlab.com/groups/gitlab-org/-/epics/1951). + +## Top Vision Item(s) + +[Serverless Vision: primary user](https://gitlab.com/gitlab-org/gitlab/issues/32543) diff --git a/source/direction/configure/template.html.md.erb b/source/direction/configure/template.html.md.erb new file mode 100644 index 00000000..1ef96394 --- /dev/null +++ b/source/direction/configure/template.html.md.erb @@ -0,0 +1,260 @@ +--- +layout: markdown_page +title: "Product Direction - Configure" +description: "GitLab's Configure stage solves user problems related to the configuration and operation of applications and infrastructure. Learn more!" +canonical_path: "/direction/configure/" +--- + +- TOC + {:toc} + +The Configure stage solves user problems related to the configuration and operation of applications +and infrastructure. At the Configure stage within GitLab, we aim to make developers and operators more productive while +conforming to their platform/technology of choice and providing integrated workflows. We +want to enhance these tools by providing integrated workflows and views inside GitLab. + +Our vision is that DevOps teams will use GitLab as their primary day-to-day tool as it will provide first-class operator support. + +- See a high-level + [roadmap](https://gitlab.com/groups/gitlab-org/-/roadmap?scope=all&utf8=✓&state=opened&label_name[]=devops%3A%3Aconfigure). + +## 概要 + +The Configure stage solves user problems related to the configuration and operation of applications +and infrastructure, including features like Auto DevOps, Kubernetes integration, runbooks, serverless workloads, and ChatOps. +We aim to make complex tasks (such as standing up new environments) fast and +easy. We provide operators all the necessary tools to execute their +day-to-day actions upon their infrastructure. + +### Target personas + +We build solutions targeting the following personas: + +* [Application Operator](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#allison-application-ops) +* [Platform engineer](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#allison-application-ops) + ​ + On small teams, these personas may be just one individual, while on larger teams they may be dedicated roles. + +In keeping with our [single application](https://about.gitlab.com/handbook/product/single-application/) promise, we want +GitLab to be a robust, best-of-breed tool for operators as much as it is for developers. Our vision is that operators +will use GitLab as their main day-to-day tool for provisioning, configuring, testing, and decomissioning infrastructure. + +### 料金 + +GitLab's Configure stage is focused on providing enterprise ready configure capabilities to enable users to operate and deploy modern applications and cloud infrastructure. However, since all application code needs a form of infrastructure, there will continue to be basic offering that targets Core/Free users. + +#### Core/Free + +Every customer, including individual developers, need to be able to configure and deploy infrastructure. As such, integration with Terraform for Infrastructure as code is available to all GitLab users. + +Cloud native development is container based. More and more are using Kubernetes for container orchestration, even on personal projects. As part of the GitLab Core offering, Kubernetes management is also available with a limit to manage a single cluster. + +#### Starter/Bronze + +Individual teams are more likely to operate more than one single cluster. The limits on cluster management is increased to 5 clusters. + +#### Premium/Silver + +For medium sized organizations, limits on clusters under management are lifted so that teams can use GitLab GitOps without restriction. In addition as the infrastructure complexities increase, as part of our policy management capability, Premium users can see and visualize policy violations to provide safeguards to teams operating quickly. + +#### Ultimate/Gold + +For enterprises, when the complexity in infrastructure becomes unmanageable manually, Configure will provide more insights and visualization into various infrastructure elements. This includes cluster cost management and the ability to visualize the whole infrastructure. + +### Strategic directions + +We build products primarily for an 8 team SaaS product company, likely with a serverless or docker based architecture. +In the latter case, we assume it's deployed either to Kubernetes or with Terraform to anything that Terraform supports. + +### Challenges + +We understand GitLab will play side-by-side with existing tools which teams have already invested considerable time and +money. As a result, we will extend GitLab's Configure features to provide an outstanding, integrated experience with the +preferred tools in the industry. Keeping up with the quickly changing nature of these tools is our primary challenge. + +The technologies where we want to provide an outstanding, integrated experience with are + +- Kubernetes deployment, management, and monitoring +- Terraform usage, planning, and application +- Configuration management behind Terraform scripts + +### Opportunities + +Our opportunities in the Configure stage are derived from the [Ops Section opportunities](/direction/ops/#opportunities). +Namely: + +* **IT operations skills gap:** Operations skills are difficult to attract. We'll make it easier for you to leverage your + operations expertise by efficiently managing your infrastructure platform. +* **Clear winner in Kubernetes:** Our focus on enabling cloud-native applications based on the winner in container + orchestration and management, Kubernetes, means you can leverage the broader Cloud Native ecosystem as you adopt modern + application architectures. + +This leads us to look into common workflows that we would like to support with a market-leading experience: + +1. Flexible and robust Kubernetes cluster management +1. Infrastructure as Code, Policy as Code +1. サーバーレス +1. Runbooks +1. ChatOps +1. GitOps + +## North Stars + +We're working on increasing the number CI/CD pipelines going through our infrastructure management features +(either K8s, Auto DevOps, Serverless or IaC in general, ChatOps). + +We aim to achieve these by focusing on the following principles. + +### Easily run your application on any infrastructure + +We recognize getting started with modern devops practices from zero is hard. With Auto DevOps, GitLab already +provides a great framework to automatically detect, build, test, secure, deploy, and monitor your application. +We'll extend Auto DevOps to provide further customization of your application, such as automatically securing +it with an SSL certificate or easily define a custom domain. Additionally, we will extend its deployment capabilities +to provide built-in best practices, such as blue/green deployments, postgress replication, and postgres backup/restore. + +If your application is not a good candidate for Auto DevOps, GitLab will provide great templates with smart defaults +which will provide a great experience for other approaches (such as serverless and micro-services) making tasks such as +scaling functions and inter-connecting micro-services, quick & easy. + +### Detect and track automatically + +Teams who begin their journey with GitLab may already have existing Kubernetes resources in place. So these can be +used effectively, we will detect and track the state of applications which are already installed in-cluster. +Following sensible conventions, once a cluster is added to any level of your workflow, GitLab will show which +apps are installed and offer all relevant features, regardless of how those apps have been installed. + +### Provision everywhere + +Provisioning infrastructure is a critical responsibility of the operations team. GitLab will make it easy to provision +resources either directly with your cloud of choice or by leveraging your existing infrastructure-as-code resources. To +that end, GitLab will offer cluster creation workflows with every major cloud provider as well as robust integration +with leading IaC providers such as Terraform. + +For those teams just getting started with IaC, GitLab will lower the intial investment to use Terraform, with Git +as the source of truth for IaC. + +### First-class operator support + +We want operators to use GitLab as their main day-to-day system. In addition to managing infrastructure, GitLab will +provide features for downtime action planning (via Runbooks) as well as ways to quickly execute actions on both +applications and infrastructure (via ChatOps). + +## Performance Indicators (PIs) + +Our [Key Performance Indicator](https://about.gitlab.com/handbook/ceo/kpis/) for the Configure stage is the **Configure +SMAU** ([stage monthly active users](https://about.gitlab.com/handbook/product/performance-indicators/#stage-monthly-active-users-smau)). + +Configure SMAU is a proxy metric of all the active project users for any projects with a cluster attached. | + +See the corresponding [Sisense dashboard](https://app.periscopedata.com/app/gitlab/511813/Configure-team-business-metrics) (internal) for our primary KPIs. + +## Auto DevOps + +Our vision for “[Auto DevOps](https://www.youtube.com/watch?v=KGrJguM361c)” is +to leverage our [single application](/handbook/product/single-application/) to +assist users in every phase of the development and delivery process, +implementing automatic tasks that can be customized and refined to get the best +fit for their needs. + +With the dramatic increase in the number of projects being managed by software +teams (especially with the rise of micro-services), it's no longer enough to +just craft your code. In addition, you must consider all of the other aspects +that will make your project successful, such as tests, quality, security, +logging, monitoring, etc. It's no longer acceptable to add these things only +when they are needed, or when the project becomes popular, or when there's a +problem to address; on the contrary, all of these things should be available at +inception. + +That's why we created Auto DevOps. We also made it composable so you can pick and choose which [stages](https://docs.gitlab.com/ee/topics/autodevops/#stages-of-auto-devops) to use our default templates in. +The relevant [Auto DevOps components](https://docs.gitlab.com/ee/topics/autodevops/#using-components-of-auto-devops) for each GitLab stage are maintained by the product groups in those stages. +For example the [Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/#auto-deploy) [jobs](https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib%2Fgitlab%2Fci%2Ftemplates%2FJobs) are maintained by the Progressive Delivery group and the [Auto SAST](https://docs.gitlab.com/ee/topics/autodevops/#auto-sast-ultimate), [Dependency Scanning](https://docs.gitlab.com/ee/topics/autodevops/#auto-dependency-scanning-ultimate), [License Compliance](https://docs.gitlab.com/ee/topics/autodevops/#auto-license-compliance-ultimate), [Container Scanning](https://docs.gitlab.com/ee/topics/autodevops/#auto-container-scanning-ultimate) and [DAST](https://docs.gitlab.com/ee/topics/autodevops/#auto-dast-ultimate) jobs are [maintained by the relevant Secure groups](/direction/secure#auto-devops). + +[Watch the video explaining our vision on Auto DevOps](https://www.youtube.com/watch?v=KGrJguM361c) + +[Learn more](/product/auto-devops/) • [Documentation](https://docs.gitlab.com/ee/topics/autodevops/) • [Direction](/direction/configure/auto_devops/) + +## Kubernetes Management + +Configuring and managing your Kubernetes clusters can be a complex, time-consuming task. +We aim to provide a simple way for users to configure their clusters within GitLab; tasks +such as scaling, adding, and deleting clusters become simple, single-click events. + +[Learn more](/solutions/kubernetes/) • [Documentation](https://docs.gitlab.com/ee/user/project/clusters/) • [Direction](/direction/configure/kubernetes_management/) + +## Infrastructure as Code + +Infrastructure as code (IaC) is the practice of managing and provisioning infrastructure through +machine-readable definition files, rather than manual hardware configuration or interactive +configuration tools. The IT infrastructure managed by this comprises both physical equipment +such as bare-metal servers as well as virtual machines and associated configuration resources. +The definitions are stored in a version control system. IaC takes proven coding techniques and +extends them to your infrastructure directly, effectively blurring the line between what is an +application and what is the environment. + +Our focus will be to provide tight integration with best of breed IaC tools, such that all +infrastructure related workflows in GitLab are well supported. Our initial focus will be on Terraform. + +[Direction](/direction/configure/infrastructure_as_code/) + +## Cluster Cost Optimization + +Compute costs are a significant expenditure for many companies, whether they +are in the cloud or on-premise. Managing these costs is an important function +for many companies. We aim to provide easy-to-understand analysis of your infrastructure +that could identify overprovisioned infrastructure (leading to waste), recommended changes, +estimated costs, and automatic resizing. + +[Direction](/direction/configure/cluster_cost_optimization/) + +## サーバーレス + +Taking full advantage of the power of the cloud computing model and container +orchestration, cloud native is an innovative way to build and run applications. +A big part of our cloud native strategy is around serverless. Serverless +computing provides an easy way to build highly scalable applications and +services, eliminating the pains of provisioning & maintaining. + +[Learn more](/product/serverless/) • [Documentation](https://docs.gitlab.com/ee/user/project/clusters/serverless/) • [Direction](/direction/configure/serverless/) + +## Runbook の設定 + +[Incident Management](https://gitlab.com/groups/gitlab-org/-/epics/349) will +allow operators to have real-time view into the happenings of their systems. +Building upon this concept, we envision rendering of runbook inside of GitLab as +interactive documents for operators which in turn could trigger automation +defined in `gitlab-ci.yml`. + +[Documentation](https://docs.gitlab.com/ee/user/project/clusters/runbooks/) • [Direction](/direction/configure/runbooks/) + +## ChatOps + +The next generation of our ChatOps implementation will allow users to have a +dedicated interface to configure, invoke, and audit ChatOps actions, doing it in +a secure way through RBAC. + +[Documenation](https://docs.gitlab.com/ee/ci/chatops/) • [Direction](/direction/configure/chatops/) + +<%= partial("direction/contribute", :locals => { :stageKey => "configure" }) %> + +## Prioritization Process + +In general, we follow the same [prioritization guidelines](/handbook/product/product-processes/#how-we-prioritize-work) +as the product team at large. Issues will tend to flow from having no milestone, +to being added to the backlog, to being added to this page and/or a specific +milestone for delivery. + +You can see our entire public backlog for Configure at this +[link](https://gitlab.com/groups/gitlab-org/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=Configure); +filtering by labels or milestones will allow you to explore. If you find +something you're interested in, you're encouraged to jump into the conversation +and participate. At GitLab, everyone can contribute! + +Issues with the "direction" label have been flagged as being particularly +interesting, and are listed in the sections below. + +## Upcoming Releases + +<%= direction["all"]["all"] %> + +<%= partial("direction/other", :locals => { :stage => "configure" }) %> diff --git a/source/direction/conversion/index.html.md b/source/direction/conversion/index.html.md new file mode 100644 index 00000000..dee677fe --- /dev/null +++ b/source/direction/conversion/index.html.md @@ -0,0 +1,123 @@ +--- +layout: markdown_page +title: Product Direction - Conversion +description: "The Growth Conversion Team at GitLab focuses on running experiments to increase the rate at which free accounts upgrade to become paying customers." +canonical_path: "/direction/conversion/" +--- + +## 概要 +The Growth:Conversion Team at GitLab focuses on running experiments to increase the rate at which free accounts upgrade to become paying customers. Today, it can be challenging for a free user to understand the features that are available within each tier of GitLab when navigating within the app. We want to make it as easy as possible for teams to collaborate together on the features that are best for them and to explore purchasing on their own terms whether that's starting a trial, speaking with someone at GitLab, or upgrading on their own. + +### Mission +* To continually improve the user experience when interacting with locked features, limits, and trials. + +### Team +Product Manager: [Sam Awezec](/company/team/#s_awezec) | +Engineering Manager: [Jerome Ng](/company/team/#jeromezng) | +UX Manager: [Jacki Bauer](/company/team/#jackib) | +Product Designer: [Kevin Comoli](/company/team/#kcomoli) | +Fullstack Engineer: [Alper Akgun](/company/team/#a_akgun) | +Fullstack Engineer: [Dallas Reedy](/company/team/#dreedy) + +### Conversion KPI +* Free-to-paid signup ARR growth rate +* Definition: (Free-to-paid signup ARR in the current period – free-to-paid signup revenue in the prior period) / free-to-paid signup ARR in the prior period +* The Analysis can be found in the [Product KPIs Dashboard in Periscope](https://app.periscopedata.com/app/gitlab/527913/WIP:-Product-KPIs?widget=7065032&udv=0) +* Calculation: + * For SaaS, free-to-paid signup ARR includes all namespaces that start a subscription for the first time, at least 24 hours after the namespace creation. + * For Self-Managed, we select all subscriptions that have a SFDC lead created at least 1 day before the start of the subscription and coming from one of these sources that have been identified as indicating prior usage of GitLab products: + * GitLab.com + * Trial, Enterprise + * GitLab Subscription Portal + * Trial, GitLab.com + * CE Download + +### Supporting performance indicators + +* New ARPU +* IACV +* Free-to-paid conversion rate (free user upgrades / free user signups in period) +* Number of trials started (by namespace type): number of namespaces (individual or group) that start a Gold Trial during a specific period +* Number of subscriptions started: we count a subscription as started when it is not refunded (TCV > 0) and has a MRR greater than 0 +* Day 60 free trial conversion rate: at a namespace level, ratio of namespaces that start a trial and then convert to a paid product category within 60 days after the start of the trial +* Product driven revenue by channel (e-commerce, sales rep assisted) & funnel +* E-commerce and sales rep assisted will track our core funnel efficiency. Funnel will allow us to understand the value of core actions taken within the app. We will define these actions to start – they may be `upgrade now`, `talk to sales`, `start a trial`, & `request access`. We then take the total occurrences and multiply it by the close rate and ASP to understand the value of the action in-app + +### Other reports we’re going to be monitoring + +#### In-app "upgrade now" buttons +* In-app "upgrade now" button selection to customers app purchase and ASP +* In-app "upgrade now" button selection to sales representative purchase and ASP + +#### Started trial after GitLab.com signup +* Trial to customers app purchase and ASP +* Trial to sales representative purchase and ASP + +#### GitLab.com influenced revenue – User +* Time from GitLab.com user signup to .com purchase (customers app or through sales representative) +* Breakdown of percent of .com purchases from customers app vs sales representative + Group +* Time from GitLab.com group signup to .com purchase (customers app or through sales representative) +* Group ASP +* Breakdown of percent of .com purchases from customers app vs sales representative +* Breakdown of percent of .com ARR from customers app vs sales representative + + +### GitLab self-hosted cross-over revenue – User +* Time from GitLab.com user signup to .com purchase (customers app or through sales representative) +* User ASP +* Breakdown of percent of .com purchases from customers app vs sales representative + Instance +* Time from GitLab.com group signup to .com purchase (customers app or through sales representative) +* Instance ASP +* Breakdown of percent of .com purchases from customers app vs sales representative + +## Problems to solve +Have you experienced an issue with a free user attempting to upgrade or do you have ideas on how we can improve the experience? We'd love to hear from you! + +## To effectively impact our KPI we'll focus on three core moments +Once a user has signed up for the free product, we have three core moments to convince them to become a customer. By getting them to initially activate and see value in the free product, exposing them to ah-ha moments with paid features, and ensuring they see value in the trial experience. + +1. Initial product activation + + By focusing experiments on activation and increasing the activation rate, we will impact downstream efforts in points 2 and 3. Note, this still needs to be validated once we have user tracking in place. How we'll get there: + + * Qualitative data collection – Understand what jobs GitLab is being hired to complete along with user-specific information so we can assist in making their adoption of GitLab as successful as possible + * Quantitative experiments – We will use discoveries in the data collected in the bullet above to support onboarding experiments. For example, if we find common themes include an engineer signing up planning to migrate a single project over, then we bring them directly into the project migration process and walk them through it. If someone indicates they plan to bring multiple dev ops teams over, we can start by having them create a group and then projects, walking them through the process + +2. Ah-ha moments with paid features and/or limits + + When users are actively using a tier of the product, they should be aware of when GitLab has the capability to make their job easier. We can do this by displaying premium features at key moments in the use of the product. How we'll get there: + + * Qualitative data collection – Survey existing free users to understand why they haven’t upgraded and ask what feature GitLab needs for them to upgrade. If users list features that we already have, then we know what features have discoverability issues + * Quantitative experiments – We will run experiments where we increase the discoverability of paid features and the associated value. We will use both the qualitative and quantitative data collected over time to generate future experiment ideas + +3. Trial and upgrade experience/value + + When an account starts a trial, they are making a conscious decision to test out paid features; this represents an opportune time for us to ensure we display the value of the paid features. We need to ensure that trial users experience the value of the paid features and decide to hire GitLab to improve their existing workflows. This same philosophy applies to users who are choosing to upgrade. How we'll get there: + + * Qualitative data collection – Survey users as they start a trial asking what jobs they’re looking to complete within the trial + * Quantitative experiments – We will focus experiments on how to ensure users are getting value out of trials as well as ensuring they are able to see the value in the paid tiers if they're debating upgrading. Our goal is to make it as easy as possible for the user to decide to hire GitLab + +## Our approach +We will utilize the ICE framework (impact, confidence, ease) to ensure we're best utilizing our time and resources. The following table displays the top issues we're currently prioritizing. + +| ICE Score | Description | Why/Hypothesis | +| ------ | ------ | ------ | +| 7 | [Test new upgrade module for feature weights](https://gitlab.com/gitlab-org/growth/engineering/issues/49) | We believe users may not actually see the value in some locked features, we want to set up a testing framework where we can easily test and iterate on these paywall states, this is the first test in this area. | +| 7 | [Expose Security nav item to a cohort of new signups](https://gitlab.com/gitlab-org/growth/engineering/issues/67) | We believe some users may not be aware that GitLab offers some of our premium features due to the navigation items being hidden from free users. This test will be the first test in a series where we expose the value of the premium features within the free navigation. | +| 8.33 | [Expose an upgrade or trial option in the top right account dropdown](https://gitlab.com/gitlab-org/growth/product/issues/116/) | We believe that some users may not know where to go to start a trial or upgrade. This test will help us understand if discoverability is an issue for users when it comes to starting a trial or upgrading. | +| TBD | [Walk new signups through group/project creation process](https://gitlab.com/gitlab-org/growth/product/issues/122) | We believe that given how central a group/project is to the successful adoption of GitLab, we'd like to test walking new users through this process. | +| TBD | [Onboard new users through an onboarding issue board](https://gitlab.com/gitlab-org/growth/product/issues/107) | We believe onboarding to a platform as large as GitLab is a task that will likely take more than one session to complete and the order will be dependant on the job GitLab has been hired to complete. This test will allow us to experiment with onboarding users to the issues feature while also giving them a home for their onboarding with issues already created for core actions they should be completing. | + +See also our [full backlog of work](https://gitlab.com/groups/gitlab-org/growth/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=group%3A%3Aconversion). + +## Maturity +The team is brand new as of August 2019, our goal is to build out an experimentation framework and the backlog of experiment ideas so we can become a well-oiled machine in the months to come. + +## Helpful links +[GitLab Growth project](https://gitlab.com/gitlab-org/growth) + +[KPIs & Performance Indicators](https://about.gitlab.com/handbook/product/metrics/) + +Reports & Dashboards (these will be linked once they are created) diff --git a/source/direction/create/code_review/competitors/index.html.md b/source/direction/create/code_review/competitors/index.html.md new file mode 100644 index 00000000..2bcb07cf --- /dev/null +++ b/source/direction/create/code_review/competitors/index.html.md @@ -0,0 +1,233 @@ +--- +layout: markdown_page +title: "Competitors - Code Review" +--- + +- TOC + {:toc} + +## Competitive Analysis + +This is a brief competitive analysis for Code Review, focused on the user experience and feature set of [our competitors](/direction/create/code_review/#competitive-landscape). Each one starts with a summary, followed by the list of findings, with the most interesting highlighted. Tools are separated into two sections: mature and not mature. + +### Mature + +#### Gerrit + +[Homepage](https://www.gerritcodereview.com/) • [Docs](https://gerrit-review.googlesource.com/Documentation/user-review-ui.html) • [Example code review](https://gerrit-review.googlesource.com/c/gerrit/+/211672) + +##### 要約 + +A tool specific for reviewing code, everything about the experience is focused on that. The UI is quite dense. Merge requests are called “Changes”. It focuses on only one commit, where authors can upload patch sets (revisions). “Changes” have an overview page and to see the files one must click-through into a specific “diff mode”. The overview page acts as a summary and lists the activity in chronological order, with comments unthreaded. Three interesting features are the ability to review commit messages, show the git blame inline, and auto-add reviewers based on git blame. + +##### Findings + +1. The commit message is effectively the Change’s description. ([docs](https://gerrit-review.googlesource.com/Documentation/user-review-ui.html#commit-message)) + 1. Commit messages have a max-height and are then expandable/collapsible. +1. Status: Needs kind-of-review, Not Current, Ready to Submit, Merged, Abandoned. +1. Fields are organized in an area called “Change info” ([docs](https://gerrit-review.googlesource.com/Documentation/user-review-ui.html#change-info)) +1. Owner: displayed as a link to a list of the owner’s changes that have the same status as the currently viewed change. ([docs](https://gerrit-review.googlesource.com/Documentation/user-review-ui.html#change-owner)) +1. Reviewers: each has a tooltip that shows on which [labels](https://gerrit-review.googlesource.com/Documentation/user-review-ui.html#labels) the reviewer is allowed to vote. +1. Labels: our “approval rules” ([docs](https://gerrit-review.googlesource.com/Documentation/user-review-ui.html#labels)) +1. Topics: a way to group changes (commits) related to a single topic. Could be considered our “issues” ([docs](https://gerrit-review.googlesource.com/Documentation/user-review-ui.html#project-branch-topic)) +1. {: .mark} File list contains auto-generated “magic files” Commit Message and Merge List ([docs](https://gerrit-review.googlesource.com/Documentation/user-review-ui.html#files)). It shows type of file modification, file path, number and status of comments (new, drafts, count), the size changes (additions/deletions), and a total of the size changes. Checkboxes in the file list allow files to be marked as reviewed. In the header of the file list there’s a “Diff Against” selection to compare patch sets and an “Open All” button that opens the diff view separately. +1. If a non-current patch set is viewed this is highlighted by the Not Current change state ([docs](https://gerrit-review.googlesource.com/Documentation/user-review-ui.html#patch-sets)) +1. The Download drop-down offers commands and links for downloading the currently viewed patch set. There is a drop-down to switch between the download schemes (SSH or HTTPS). The last chosen download scheme is remembered. ([docs](https://gerrit-review.googlesource.com/Documentation/user-review-ui.html#download)) +1. Uses the “star” metaphor and icon to subscribe to notifications. ([docs](https://gerrit-review.googlesource.com/Documentation/user-review-ui.html#star)) +1. {: .mark} Related changes tab: shows descendant and ascendant changes (dependencies) in a list view where the current change is in the middle ([docs](https://gerrit-review.googlesource.com/Documentation/user-review-ui.html#related-changes-tab)) +1. Same topic tab: open changes that share the topic ([docs](https://gerrit-review.googlesource.com/Documentation/user-review-ui.html#same-topic)) +1. {: .mark} Reply button: opens a popup panel to publish inline comments, allows voting (approval) and adds a summary comment. The inline draft comments are listed to be reviewed before publishing, with links. ([docs](https://gerrit-review.googlesource.com/Documentation/user-review-ui.html#reply)) +1. {: .mark} History: very compact list, similar-looking to an email inbox. New comments since the user’s last review are automatically expanded and bolded. Inline comments are directly displayed in the history with links to jump there, they are grouped per review. It has an expand/collapse all button. ([docs](https://gerrit-review.googlesource.com/Documentation/user-review-ui.html#history)) +1. Updates: there’s a polling system that shows a notification (similar to Gmail) when there updates. Users can Show or Ignore. ([docs](https://gerrit-review.googlesource.com/Documentation/user-review-ui.html#update-notification)) +1. Checks tab (pipelines) +1. Diffs ([docs](https://gerrit-review.googlesource.com/Documentation/user-review-ui.html#side-by-side)): + 1. Can be marked as reviewed (can be done automatically per user preference) + 1. {: .mark} Scrollbar with map of diffs and comments + 1. Patch set comparisons can be changed in the file header via a numbered list. + 1. Arrows to move between files. + 1. Option to expand all comments as a user preference. + 1. Drafts are “saved” or “discarded”. + 1. {: .mark} Inline comments can be started by clicking on a line or selecting lines and then clicking a button. + 1. Comments can be added to the whole file. + 1. Uses “Done” instead of “Resolve” in comments. + 1. {: .mark} Ability to show blame in diff view. +1. {: .mark} List: Changes (merge requests) are classified in Size per the number of changed lines, using t-shirt sizes (e.g. XS = +1,-1) +1. {: .mark} Add reviewers based on the git blame computation of the changed files ([docs](https://gerrit-review.googlesource.com/Documentation/intro-project-owner.html#reviewers)) + +#### Phabricator + +[Homepage](https://www.phacility.com/phabricator/) • [Docs](https://secure.phabricator.com/book/phabricator/article/differential/) • [Example code review](https://secure.phabricator.com/D20659) + +##### 要約 + +The code review experience in Phabricator is similar to Gerrit’s. However, the whole review UI is one big scrollable page, instead of being sectioned into different views/pages. Three other notable differences are the support for both pre and post-merge reviews, showing older inline comments in updated diffs (ported/ghost comments), and showing test and coverage reports inline. + +##### Findings + +1. {: .mark} Supports two similar but separate code review workflows: "review" and "audit" (post-commit). +1. List view: + 1. Action Required is revisions you are the author of or a reviewer for, which you need to review, revise, or push. + 1. Waiting on Others is revisions you are the author of or a reviewer for, which someone else needs to review, revise, or push. +1. Detail view is a single-view, scrollable: + 1. Details: reviewers and review status, links to Trac issues, summary, test plan + 1. Actions, tags, and subscribers + 1. Diff detail: repository, branch, lint status and warnings, unit test result, build status + 1. Activity + 1. Changes +1. {: .mark} Separate view with audit table for inline comments with the attributes: diff no., status, reviewer, comment, created date (relative) ([example](https://secure.phabricator.com/differential/revision/inlines/20659/)) +1. Activity is shown chronologically, unthreaded + 1. When adding inline comments OR marking inline comments as done, a regular comment acts as a summary. Inline comments are listed at the bottom of the summary, indicating the file and with a link to the line. + 1. If the history is large, older items are hidden with a “Show Older Changes” button that progressively shows more and more older items. +1. {: .mark} Inline comments are threaded, and can be hidden/shown by the following aspects: “Done”, collapsed, older, all. +1. Multiline comments can be added by clicking one line number and dragging to a nearby line number. +1. Inline comments are initially unpublished (drafts). They are published in batch, alongside an optional normal comment and optional action (like accepting the revision). +1. {: .mark} Ported/ghost comments: When a revision is updated, it attempts to port inline comments forward and display them on the new diff. Ported comments have a pale, ghostly appearance and include a button that allows you to jump back to the original context where the comment appeared. Ported comments sometimes appear in unexpected locations, especially in the presence of heavy changes, but this helps prevent mistakes and makes it easier to verify feedback has been addressed. +1. Highlights when changes are pushed, when pipelines fail +1. Image macros to add frequent GIFs to comments +1. {: .mark} Ability to add test and coverage reporting in the specific lines of code +1. By default, approvals are not reset when new commits are pushed. +1. {: .mark} People can be automatically notified about a review based on rules (like content, author, files affected, etc.). + +#### Crucible + +[Homepage](https://www.atlassian.com/software/crucible) • [Docs](https://confluence.atlassian.com/crucible/the-crucible-workflow-298977485.html) + +##### 要約 + +It’s the only code review tool we reviewed that attempts to port the IDE experience to a browser UI for code review, with a navigation sidebar to jump between sections and files, and a fixed content view. Like Phabricator, it supports pre and post-merge reviews but is more flexible about the review’s starting point: specific commits, whole branches, committed files, patch files, or attachments. + +##### Findings + +1. Roles: author, reviewer, and moderator (optional) + 1. {: .mark} Reviewers can be auto-suggested, by analyzing the users that have contributed to the files you've selected and also don't have a lot of open reviews. +1. {: .mark} Reviews can be created from commits/changesets, branches, specific files, patch files (pre-commit), or attachments. ([docs](https://confluence.atlassian.com/crucible/creating-a-review-298977457.html)) +1. {: .mark} Allowing anyone to join the review is an option configured per review. Else, only selected reviewers can participate. +1. Status: Draft (default on creation), Under review (after Start review is selected), Summarized (once all reviews are submitted), Closed or Abandoned ([docs](https://confluence.atlassian.com/crucible/roles-and-status-classifications-298977466.html)) + 1. Start Review sends a notification email to all participants. +1. Ability to link to issues and other reviews on creation. +1. Comments: can be added to the whole review, to a file, to a single line, to multiple lines (click and drag to select multiple lines or select text) + 1. Can be marked read/unread, marked as defect or needs resolution, saved as draft or published immediately + 1. Defects can be ranked (major, minor, etc.) and also classified: Wrong, Can be improved, Risk-prone, Security hole, Over engineered, Code duplication + 1. {: .mark} In the file tree, there’s a counter of total comments per file (and unread comments) +1. User switches between 3 main views: Summary, Activity, Files. +1. Summary: Details, Objectives, General comments + 1. Details: list of participants, role, time spent, no. of comments, and link to the last comment +1. Activity: All activities in chronological order, filterable by resolved and/or unresolved comments. +1. List view: + 1. Inbox: To Review, Ready to Close, In Draft, Require My Approval + 1. Outbox: Out for Review, Completed + 1. Archive: Closed, Abandoned, My Open Snippets, My Snippets + +### Not mature + +#### Atlassian Bitbucket + +[Homepage](https://bitbucket.org/product) • [Docs](https://confluence.atlassian.com/bitbucketserver/review-and-discuss-a-pull-request-808488540.html) • [Example code review](https://bitbucket.org/atlassian/atlassian-aws-deployment/pull-requests/137/itops-373-make-synchrony-a-service/diff) + +##### 要約 + +In general, its pull requests and review experience are very similar to GitHub. + +##### Findings + +1. {: .mark} Ability to create tasks from comments and view a list of unresolved tasks. ([docs](https://confluence.atlassian.com/bitbucketserver/review-and-discuss-a-pull-request-808488540.html#Reviewanddiscussapullrequest-tasks)) +1. Iterative reviews: Within the diff view you can select a specific commit to review, or choose to view all changes within a pull request. If you return to a pull request you previously reviewed, you'll only see the new commits added since you last reviewed the pull request. +1. Default reviewers can be added to a combination of source-target branches with the following options: Branch name, Branch pattern, Branching model, or Any branch. ([docs](https://confluence.atlassian.com/bitbucketserver/add-default-reviewers-to-pull-requests-834221295.html)) + +#### Azure DevOps + +[Homepage](https://azure.microsoft.com/en-us/services/devops/) • [Docs](https://docs.microsoft.com/en-us/azure/devops/repos/git/pull-requests) + +##### 要約 + +Like Bitbucket, it largely follows the GitHub’s experience, but manages to give it more structure and add many more features. Of note are their consistent locations for actions and secondary information, granular types of approval, good approach to merge confirmation and actions, and the visibility of policies (items blocking the merge) and status of the pull request. + +##### Findings + +1. List view of created and assigned pull requests ([docs](https://docs.microsoft.com/en-us/azure/devops/repos/git/pull-requests?view=azure-devops#view-and-manage-your-pull-requests)) +1. Allows selection of “Reviewers” and “Work Items” (related issues) in the PR creation form ([docs](https://docs.microsoft.com/en-us/azure/devops/repos/git/pull-requests?view=azure-devops#add-detail-to-your-pull-request)) +1. Specific area just for related work items (issues) ([docs](https://docs.microsoft.com/en-us/azure/devops/repos/git/pull-requests?view=azure-devops#link-work-items)) +1. States: Draft (WIP) > Published > Complete (merged) +1. Main actions: Complete (Merge), Set auto-complete (Merge when all [branch policies](https://docs.microsoft.com/en-us/azure/devops/repos/git/pull-requests?view=azure-devops#complete-the-pull-request) pass), Mark as draft (WIP), and Abandon (Close) ([docs](https://docs.microsoft.com/en-us/azure/devops/repos/git/pull-requests?view=azure-devops#complete-the-pull-request)) + 1. {: .mark} Completing (merging) opens a dialog to edit the merge commit message and select merge options ([docs](https://docs.microsoft.com/en-us/azure/devops/repos/git/pull-requests?view=azure-devops#complete-the-pull-request)) + 1. Setting auto-complete a banner is shown, confirming that the changes will be merged as soon as the policies are satisfied. Has + {: .mark} a “Cancel auto-complete” option and displays the outstanding list of policy criteria. +1. Main sections: Overview (state at a glance and discussion), Files (changes), Updates (versions/pushes), Commits +1. {: .mark} Uses the concept of [branch policies](https://docs.microsoft.com/en-us/azure/devops/repos/git/pull-requests?view=azure-devops#complete-the-pull-request) to block pull requests from being merged. It shows an easy to read list of things remaining. ([docs](https://docs.microsoft.com/en-us/azure/devops/repos/git/pull-requests?view=azure-devops#link-work-items)) +1. Ability to open file changes in full-screen mode +1. Comment states: Active (default), Resolved, Pending, Won’t Fix, Closed ([docs](https://docs.microsoft.com/en-us/azure/devops/repos/git/pull-requests?view=azure-devops#leave-comments)) +1. Mixes the concept of approving with casting votes ([docs](https://docs.microsoft.com/en-us/azure/devops/repos/git/pull-requests?view=azure-devops#vote-on-the-changes)) +1. Votes: Approve, Approve with suggestions, Wait for author, Reject, or Reset feedback + 1. Approve with suggestions: Agree with the pull request, but provide optional suggestions to improve the code. + 1. Wait for author: Do not approve the changes, and ask the author to review your comments. The author should let you know when you should re-review the code after they have addressed your concerns. + +#### GitHub + +[Homepage](https://github.com/) • [Docs](https://help.github.com/en/articles/about-pull-request-reviews) • [Example](https://github.com/gitlabhq/gitlabhq/pull/9138) + +##### 要約 + +GitLab’s current code review experience is largely modeled after GitHub’s, with a discussion/activity view and a changes view with all of the files stacked vertically. Some relevant differences in GitHub are resolving whole discussions (instead of comments), the concept of reviewers, submitting a summary comment with the review, and viewing only the changes done since the user’s last review. Some of its frequently mentioned issues are the difficulty in finding who is responsible for looking at the code, the lack of inline test and coverage reports, and the lack of an audit trail. + +##### Findings + +1. {: .mark} Uses the concept of “Reviewers” to request reviews. Code owners are automatically requested for review when someone opens a pull request that modifies code that they own. ([docs](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-request-reviews#about-pull-request-reviews)) +1. When submitting a review, the reviewer can attach a summary comment to their inline comments. Besides “Approve”, a review has two additional types: “Comment” and “Request changes”. ([docs](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/reviewing-proposed-changes-in-a-pull-request#submitting-your-review)) +1. {: .mark} Supports resolving whole discussions, instead of comment by comment. ([docs](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-request-reviews#resolving-conversations)) +1. Uses the term “conversations” instead of “threads” or “discussions”. +1. Allows navigating changes commit-by-commit, with convenient previous-next buttons. ([example](https://gitlab.com/gitlab-org/gitlab/issues/18140#further-details)) +1. Allows commenting on multiple lines. ([example](https://twitter.com/github/status/1179101186437324801)) +1. {: .mark} Allows viewing only the changes done since the user’s last review. +1. Users can mark files as viewed to collapse them until they are changed again. ([docs](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/reviewing-proposed-changes-in-a-pull-request#marking-a-file-as-viewed)) + +#### Review board + +[Homepage](https://www.reviewboard.org/) • [Docs](https://www.reviewboard.org/docs/manual/dev/users/) • [Example code review](http://demo.reviewboard.org/r/844/) + +##### 要約 + +Even though the UI is not the most appealing or modern, Review board has some interesting features that set it apart. Specifically, the ability to filter comments by type and author, and the personal dashboard that is organized like a “code review inbox”. + +##### Findings + +1. Supports both pre and post-merge reviews. +1. Dashboard: Outgoing (All, Open); Incoming (Open, To Me, Starred) +1. {: .mark} Review requests list: Flag with published/unpublished comments, No. of reviews, New updates since last view, Ship it!/Issue counts (approvals, open comments), Flag to me (which directly list you in the “people” field) +1. Status: Draft, Published, Closed (“submitted” or as “discarded) + 1. Closing allows to describe the reason why it was closed (optional). +1. Roles: Owner, Reviewers (group or people) +1. Reviews consist of a header, a list of comments, and a footer. Comments can be general, to a file, and diffs. +1. In reviews, “issues” can be flagged. They can then be marked as resolved or dropped. Can be re-opened. + 1. {: .mark} If an issue is particularly important, you can select Require Verification when creating the comment. This will make it so the owner of the review request cannot directly mark the issue as fixed or dropped. Instead, only the reviewer (or an administrator) can then verify whether the issue should be closed or reopen it. +1. {: .mark} Below the description a list of open issues (comments) is filterable by: type and author. +1. Deleted file contents are not shown by default, as this code often doesn’t need to be reviewed. Instead, you’ll see a simple message stating that the file was deleted and the option to expand. +1. Multiline comments are started with click and drag through multiple line numbers. +1. {: .mark} Diff comments are shown next to the file with a comment counter per line. Published comments are blue, drafts are green. + +#### Reviewable + +[Homepage](https://reviewable.io/) • [Docs](https://docs.reviewable.io/) • [Example code review](https://reviewable.io/reviews/Reviewable/demo/1) + +##### 要約 + +It has a fresh approach to navigating a code review, with its intuitive toolbar that allows cycling between files, discussions, and drafts, and also a visual way to change which revisions are compared. There’s a big focus on the reviewer experience, especially when re-reviewing changes, by highlighting what files and discussions they need to review again or reply to. The status of the pull request is given visually with a small circular chart that shows the passed/failed checks. Other highlights include the ability to track of who re­viewed which re­vi­sion of each file, automatically entering single file mode to preserve performance, and setting merge options and commit message before merging. + +##### Findings + +1. Roles: Author, Reviewers, Mentionee (mentioned, becomes reviewer if starts a discussion or marks a file as reviewed) +1. Approval levels: Comment, Approve, Request changes +1. Merge ([docs](https://docs.reviewable.io/#/reviews?id=merge)) + 1. When a review is complete, a victory graphic appears. + 1. {: .mark} You can set merge options and edit the merge commit message via the dropdown attached to the button. + 1. To merge the pull request, click and hold the button for a couple seconds until the arming indicator fills with yellow and starts pulsing, then release. This procedure is in place to reduce the chances of accidentally merging a pull request without requiring a separate confirmation. +1. {: .mark} Review toolbar: + 1. {: .mark} Checks: This item summarizes the current condition of GitHub's CI commit statuses and checks, mergeability, and review completion. The donut chart icon indicates the relative proportion of successful, pending, and error/fail states. + 1. {: .mark} Changes: This item summarizes the changes you're currently looking at. + 1. {: .mark} Counters: Files, discussions, and drafts. Red counters indicate that you must address the given number of items to advance the review. Grey counters indicate that other participants must address the given number of items, but you're in the clear. Click to cycle through them + 1. {: .mark} Main action: switches between Publish and Merge, if the user has unpublished comments. +1. {: .mark} Mark as reviewed: letting you track the reviewed state of each file at each revision, for each reviewer. This enables you to easily remember — and indicate to others — where you left off in the review and easily view only subsequent changes. Review marks remain in a draft state and are only visible to you until published. +1. File tree: shows which files you have reviewed (even in draft) and who else has reviewed them. +1. {: .mark} Single file mode: Automatically enters a single file mode to preserve performance when the number of visible files exceeds a threshold (25 files as of this writing). In this mode, only one file will appear at a time. You'll also see a summary explanation just above the first (and only) file diff, together with a button that you can click to force all files to appear anyway until you leave the page. +1. Comment status: Discussing, Satisfied, Informing, Working, or Blocking. +1. Dashboard: Waiting on me, Assigned to me + 1. Review state is visible, with counters reflect the same information as you'll see on the review page diff --git a/source/direction/create/code_review/index.html.md b/source/direction/create/code_review/index.html.md new file mode 100644 index 00000000..a1b83276 --- /dev/null +++ b/source/direction/create/code_review/index.html.md @@ -0,0 +1,326 @@ +--- +layout: markdown_page +title: "Category Direction - Code Review" +description: "The Code Review strategy page belongs to the Source Code group of the Create stage. Learn more here!" +canonical_path: "/direction/create/code_review/" +--- + +- TOC + {:toc} + +## コードレビュー + +| Section | Stage | Maturity | Last Reviewed | +| --- | --- | --- | --- | +| [Dev](/direction/dev/) | [Create](https://about.gitlab.com/stages-devops-lifecycle/create/) | [Loveable](/direction/maturity/) | 2020-07-20 | + +## Introduction and how you can help + +The Code Review strategy page belongs to the [Source Code](/handbook/product/product-categories/#source-code-group) group of the [Create](/direction/dev/#create) stage, +and is maintained by [Daniel Gruesso](https://gitlab.com/danielgruesso). + +This strategy is a work in progress, and everyone can contribute. +Please comment and contribute in the linked issues and epics. +Sharing your feedback directly on GitLab.com is the best way to contribute to our strategy and vision. + +- [Issue list](https://gitlab.com/groups/gitlab-org/-/issues?&label_name%5B%5D=Category%3ACode%20Review) +- [Epic list](https://gitlab.com/groups/gitlab-org/-/epics?label_name[]=Category%3ACode%20Review) + +## 概要 + + + +Code Review is an essential practice of every successful project. +It is necessary for maintaining and improving code quality, +and is one of the primary avenues of mentorship for software engineers, +but it is also time consuming. + +GitLab's vision for code review is a place where: + +- changes can be discussed, +- developers can be mentored, +- knowledge can be shared, and +- defects identified. + +GitLab should make these tasks efficient and easy, +so that velocity and code quality both increase. + +### Metrics of success + +The primary metric by which we measure the success of the Code Review category +is: **reducing the duration of the Code Review**. +This is measured as the duration from the first merge request version to merged. + + + +Category-level UX baselines conducted quarterly will provide qualitative +feedback to validate perceived efficiency and our hypothesis. + + + +### Target Audience + + + +Code review is used by software engineers and individual contributors of all kinds. Depending on their context, however, the workflow and experience of code review can vary significantly. + +- **full time contributor** to a commercial product where reducing cycle time is important. The review cycle is tight and focussed as a consequence of best practices where keeping merge requests small and iterating at a high velocity are objectives. Code review workflows for these users are **Complete** +- **occasional contributor** to an open source product where cycle time is typically longer as a consequence that they are not working on the project full time. This results in longer review times. When long review times occur, the participants in the merge request will need to spend more time reacquainting themselves with the change. When there are non-trivial amounts of feedback this can be difficult to understand. Code review workflows for these users are **Complete** +- **scientific projects** frequently have a different flow to typical projects, where the development is sporadic, and changes are often reviewed after they have been merged to master. This is a consequence of the high code churn associated with high exploratory work, and having infrequent access to potential reviewers. Post-merge code review workflows are not yet viable in GitLab. + + +### Challenges to address + + + +There are many code review tools in the market as well as multiple workflows. Deciding which features/workflows to build-in to GitLab +is important so that users can migrate seamlessly. However, it is not realistic for us to support every feature/workflow out there, as +such we must suss out the most popular, forward-looking features/workflows, and support them in GitLab. + +* Some of the features/workflows we are planning to build into GitLab: + + * [Merge request reviewer assignment](https://gitlab.com/groups/gitlab-org/-/epics/1823) + * [Easily tracking unread diffs, files, commits and discussions in merge requests](https://gitlab.com/groups/gitlab-org/-/epics/1409) + * [Commit by commit code review](https://gitlab.com/groups/gitlab-org/-/epics/285) + +* Some of the features/workflows we are currently researching: + + * [Cross project merge requests](https://gitlab.com/groups/gitlab-org/-/epics/882) + +## Where we are Headed + + + +The code review process involves at least two roles (author, and reviewer) but may involve many people, +who work together to achieve code quality standards and mentor the author. +Furthermore, many reviewers are often not Developers. +Reviewers may be Developers, UX Designers, Product Managers, Technical Writers, Security Engineers and more. + +In support of GitLab's vision for code review, +areas of interest and improvement can be organized by the following goals: + +- **Ease of use** influences whether users choose to use the GitLab tool to merge branches instead of simply interacting with the Git server via command line. Merge request should be easy to use and provide enough visible value such that users will default to use merge requests. +- **Love-ability** captures the essence that GitLab is enjoyable to use, which may mean that it is fast, invisible and allows you to get your work done. Particularly, GitLab should encourage the best of communication between colleagues and contributors, helping teams celebrate great contributions of all kinds, and express their ideas without misunderstandings. How GitLab communicates with people, will influence how people communicate with each other inside GitLab. +- **Efficiency** directly influences velocity within the time span of a single merge request + - *Author efficiency* considers how a merge request author can create and address code review feedback, find a relevant reviewer for their merge request, and incorporate incoming feedback. + - *Reviewer efficiency* considers how an individual reviewer can review a code change, leave feedback, and also verify their own feedback has been addressed. Provide enhanced context when reviewing new information (for example, through code intelligence) for efficiency. + - *Team efficiency* considers a team can coordinate and communicate responsibilities, progress and status of a merge request, and quickly the entire process can be completed. Support workflows that enable new and better ways of working (for example, suggest changes, commit by commit review). +- **Best practices** Influence efficiency of teams and projects over a longer time scale, and can include fostering norms and behaviours that aren't explicitly enforced through the application. Amplifying best practices, great defaults and documentation play a significant role in this. +- **Policy** controls that allows code review requirements to be set and enforced, going above and beyond amplifying and encouraging best practice. + +The following improvements will help us make significant progress towards the above goals: + +* [Improve merge request reviewer assignment](https://gitlab.com/groups/gitlab-org/-/epics/1823) +* [File-by-file merge request diff navigation](https://gitlab.com/groups/gitlab-org/-/epics/516) + +### What's Next & Why + + + +- **In Progress:** [Smarter merge request diffs using merge refs](https://gitlab.com/groups/gitlab-org/-/epics/854) + + Code reviews are time consuming, requiring engineers to carefully review and + understand the proposed change. The accuracy of the diff is therefore + critical. + + Additionally, both Atlassian and GitHub have made their diffs smarter, + showing the actual difference between the source and target branch, not the + source branch and the merge base of the target branch. + +- **In progress:** [Code intelligence](https://gitlab.com/groups/gitlab-org/-/epics/1576) (e.g. symbol docs, jump to definition) + + The purpose of code reviews is to identify defects, and ensure the code + meets quality guidelines for style, readability, and maintainability. In + order to do this, the code reviewer must understand the proposed change + well. + + We know that code intelligence is an important tool for understanding code, + and has been available in local development environemnts since the 1980s. + Because of this many developers rely on local code intelligence when + performing code reviews. Providing this to all reviewers in GitLab will + improve the quality and efficiency of code reviews. + +- **In progress:** [Comment on multiple lines](https://gitlab.com/groups/gitlab-org/-/epics/1431) + + Feedback doesn't always relate to a single line, and it can be restrictive + to be unable to comment on a range of lines. Similarly, suggested changes + to merge requests can also span multiple lines in a diff, but it is + difficult to use this feature without a natural interface to select + multiple lines. + +- **In progress:** [Improved merge request reviewer assignment](https://gitlab.com/groups/gitlab-org/-/epics/1823) + + Detecting defects, and providing meaningful code review feedback requires + understanding the code being changed. This is most effectively done by + subject matter experts, which are typically people who have previously + edited or reviewed the areas of the code being changed. + + Helping authors find the right reviewer will yield better code reviews, and + carefully distributing them across many engineers will prevent individual + engineers becoming over burdened. + +### What is Not Planned Right Now + + + +### Maturity Plan + + + +This category is currently at the **Loveable** maturity level (see our [definitions of maturity levels](https://about.gitlab.com/handbook/product/product-categories/maturity/#legend)). + +## Competitive Landscape + + + +GitLab competes with both integrated and dedicated code review tools. Because merge requests (which is the code review interface), and more specifically the merge widget, is the single source of truth about a code change and a critical control point in the GitLab workflow, it is important that merge requests and code review in GitLab is excellent. Our primary source of competition and comparison is to dedicated code review tools. + +Prospects and new customers, who previously used dedicated code review tools typically have high expectations and accustomed to a high degree of product depth. Given that developers spend a significant portion (majority?) of their in application time in merge requests, limitations are quickly noticed and become a source of frustration. + +GitLab’s current code review experience is largely modeled after GitHub’s, with most of its pros and cons. Gerrit and Phabricator are [frequently mentioned](https://news.ycombinator.com/item?id=12487695) as the best alternatives to the GitHub code review model. See the [competitive analysis](/direction/create/code_review/competitors/#competitive-analysis) for a closer look at the user experience and feature set of competitor tools. + +Integrated code review packaged with source code management: + +- [Phabricator](https://www.phacility.com/phabricator/) by Phacility • _Free, open source_ • **Mature** • [Example code review](https://phabricator.haskell.org/D4953) +- [Gerrit](https://www.gerritcodereview.com/index.html) • _Free, open source_ • **Mature** • [Example code review](https://gerrit-review.googlesource.com/q/status:open+project:gerrit) +- [GitHub](https://github.com/features/code-review/) • _Free option, closed source_ +- [Bitbucket](https://bitbucket.org/product/features) by Atlassian • _Free option, closed source_ +- [Azure DevOps](https://azure.microsoft.com/en-us/services/devops/) by Microsoft • _Free option, closed source_ + +Dedicated code review tools: + +- [Crucible](https://www.atlassian.com/software/crucible) by Atlassian • _Paid, closed source_ • **Mature** ([Bitbucket vs Crucible](https://confluence.atlassian.com/bitbucketserverkb/what-s-the-difference-between-crucible-and-bitbucket-server-do-i-need-both-779171640.html)) +- [Review Board](https://www.reviewboard.org/) • _Free, open source_ • [Example code review](http://demo.reviewboard.org/r/844/diff/1/#index_header) +- [Reviewable](https://reviewable.io/) • _Free option, closed source_ • [Example code review](https://reviewable.io/reviews/Reviewable/demo/1) + +IDE-related: +- [CodeStream](https://www.codestream.com/) • _Free option, closed source_ +- [GitLens](https://gitlens.amod.io/) • _Free, open source_ +- [Visual Studio Live Share](https://visualstudio.microsoft.com/services/live-share/) • _Free, open source_ +- [Gitpod](https://www.gitpod.io/docs/59_code_reviews/) • _Free option, closed source_ + + +## Analyst Landscape + + + +## Top Customer Success/Sales issue(s) + + + +The highest priority customer requests are for improved application performance, accuracy and efficiency for reviewing merge request diffs of all sizes, small and extremely large. + +- [Smarter merge request diffs using merge refs](https://gitlab.com/groups/gitlab-org/-/epics/854) address accuracy problems in some situations, thereby improving **efficiency** of reviews by showing the expected diff contents. +- [Track unread diffs, files, and discussions](https://gitlab.com/groups/gitlab-org/-/epics/1409) improves usability. primarily improves **reviewer efficiency** by allowing reviews to be performed incrementally over multiple sittings, and better handling the iterative process of leaving feedback and the author proposing improvements. + +Other notable requests include: + +- [Cross-project code review (group merge requests)](https://gitlab.com/groups/gitlab-org/-/epics/457) +- [Post-merge code review](https://gitlab.com/groups/gitlab-org/-/epics/872) is of interest to a variety of organizations where changes are merged with a high velocity (e.g daily) and they desire to review aggregate set of changes semi-regularly. + +## Top user issue(s) + + + +- [Smarter merge request diffs using merge refs](https://gitlab.com/groups/gitlab-org/-/epics/854) +- [Increased focus of merge request changes tab](https://gitlab.com/groups/gitlab-org/-/epics/1406) will make code review more **love-able** by reducing distraction, and making use of the navigational affordances of the top of the page which is quickly accessed by mouse and keyboard. +- [Multi-line comments](https://gitlab.com/groups/gitlab-org/-/epics/1431) + +## Top internal customer issue(s) + + + +- [Suggest and assign reviewers and maintainers](https://gitlab.com/groups/gitlab-org/-/epics/1823) will replace the Reviewer Roulette implemented with Danger. + +## Top Vision Item(s) + + + +- **Investigating:** [Commit focused code review](https://gitlab.com/groups/gitlab-org/-/epics/285) + + Small changes are easier and faster to review, and commits are the smallest + unit of change. Some of the largest projects in the world use commit based + workflows for this reason. + + We are investigating how we can amplify best practices in commit focussed + workflows, and bring these into GitLab to improve code quality and + efficiency. + +- **Investigating:** [Real-time merge request collaboration](https://gitlab.com/groups/gitlab-org/-/epics/2082) + + Merge requests are highly asynchronous today. A code review is requested, + and then at some point later the author returns to address the feedback. + This causes all but the simplest of merge requests to go through multiple + slow review cycles. + + GitLab aims to help teams compress cycle time and increase velocity. To + this end, reducing the number of review cycles, and preventing frequent + context switching should help. + + Since we know many teams are located in similar timezones, if not located + in the same physical location, we can improve notifications and workflows to + help people work together on the same merge request in real-time. + + Read more in our [blog + post](https://about.gitlab.com/blog/2019/12/19/future-merge-requests-realtime-collab/). + +- **Investigating:** [Track unread merge request comments and commits](https://gitlab.com/groups/gitlab-org/-/epics/1409) + + When reviewing a merge request with multiple commits, a large number of + changes, or that requires many revisions, it's hard to know what requires + your attention, and what you have previously reviewed. This is a factor in + making code review inefficient. diff --git a/source/direction/create/design_management/images/GitLab-designer-workflow.png b/source/direction/create/design_management/images/GitLab-designer-workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..b831c9c2e6f753035736967825de943d6f880517 GIT binary patch literal 72624 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 K7VL5Q`Tqcr+Gi~Q literal 0 HcmV?d00001 diff --git a/source/direction/create/design_management/images/Typical-designer-workflow.png b/source/direction/create/design_management/images/Typical-designer-workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..900c4cfcac717271731699fb7d6268af055bf36f GIT binary patch literal 103401 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 LN{i$PX+QsewTEpO literal 0 HcmV?d00001 diff --git a/source/direction/create/design_management/index.html.md b/source/direction/create/design_management/index.html.md new file mode 100644 index 00000000..4422e4af --- /dev/null +++ b/source/direction/create/design_management/index.html.md @@ -0,0 +1,206 @@ +--- +layout: markdown_page +title: "Category Direction - Design Management" +description: "Our goal at GitLab with Design Management is to treat Designers as first-class users within GitLab and support their workflows as good as any product can." +canonical_path: "/direction/create/design_management/" +--- + +- TOC + {:toc} + +## デザイン管理 + +| | | +| --- | --- | +| Stage | [Create](/direction/create/) | +| Maturity | [Minimal](/direction/maturity/) | +| Content Last Reviewed | `2020-07-24` | + +## Introduction + + + +Design Management at GitLab encompasses two broad areas of features: **1) Transient "Communication-based" features** which have a beginning and end similar to Issues and **2) Evergreen "Project-based"** features which live as a project or asset on their own. GitLab is in a unique position to offer both types of Design features because our platform supports Issues (collaboration with engineering) and Repositories (where the actual code lives). + +**Examples of Transient "Communication-based" Design Management features:** +- Attaching Designs to Issues +- Visual communication in comments on designs +- Approvals of Designs +- Links to prototypes in description of issue +- Developer handoff with specifications +- Production Design Inspect to compare the code to the design +- Issues are closed and Designs are "done" + +**Examples of Evergreen "Project-based" Design Management features** +- Customized Design repositories for backing up native design files +- Customized Design repositories for connecting local design system files to their live frontend assets +- Deep linking of assets to original repo files + + +**Our goal with Design Management is to treat Designers as first-class users within GitLab and support their workflows as good as any product can. Design management will consider the design life cycle from generating ideas, design reviews, design systems, and more.** + +- [Issue List](https://gitlab.com/groups/gitlab-org/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=Category%3ADesign%20Management) +- [Epic List](https://gitlab.com/groups/gitlab-org/-/epics?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=Category%3ADesign%20Management) +- [Overall Vision](/direction/create/) + +Please reach out to PM Christen Dybenko ([E-Mail](mailto:cdybenko@gitlab.com)) if you'd like to provide feedback or ask +questions about what's coming. + +## Long Term Strategy + +Long term, we'll need we need to adapt GitLab to incorporate Design users as first class users as this design workflows are often different from the typical DevOps flow. Many companies that employ "Design First" workflows are often working so far ahead of the DevOps process we need to consider this as its own ecosystem and key in on. We recognize that this workflow can be quite iterative and often done and presented/approved ahead well ahead of an issue ever being written. + +Ideally, GitLab will support the flexiblity of any design workflow, while featuring a simplified way to share of Design work. It would allow for independent design deadlines or separate milestones from engineering, and empower the Designer to easily track/follow the issue through to production. + +### Typical designer workflow across tools + +![Typical designer workflow across tools](images/Typical-designer-workflow.png) + +### GitLab vision for a new designer workflow + +![Typical designer workflow across tools](images/GitLab-designer-workflow.png) + + +## Target Audience and Experience + + +**In 13.0, we [moved Design Managment to Core/Foss](https://gitlab.com/gitlab-org/gitlab/-/issues/212566) so it can but used by everyone for free.** Read more about in the blog: https://about.gitlab.com/blog/2020/03/30/new-features-to-core/ + +Design Management is targeted at [product designers](/handbook/marketing/product-marketing/roles-personas/#presley-product-designer) who collaborate with [product managers](/handbook/marketing/product-marketing/roles-personas/#parker-product-manager) and [software developers](/handbook/marketing/product-marketing/roles-personas/#sasha-software-developer). + +The **minimal** user journey will provide designers with the ability to upload mockups to an issue, and for point of interest discussions to happen on each image. Over time these mockups can be updated to resolve the discussions. As the mockups are changed, new versions will be created so that process can iterate. + +## What's Next & Why + + +**MVC Done in 12.9: [Versioned designs and point of interest discussions](https://gitlab.com/groups/gitlab-org/-/epics/660)** - Currently, collaboration between designers, developers and product managers on issues is hard and unstructured. This first iteration will make it possible to upload discuss designs far more efficiently. Point of interest comments are the key feature, that allows much precise discussion rather than trying to verbally discuss multiple items of feedback on a single image in a single thread. We plan to [move this feature down to Core](https://gitlab.com/gitlab-org/gitlab/-/issues/212566) in the next few releases. + +**Next: Improve the useability of the MVC for Versioned designs and point of interest discussions by Dogfooding** - We're working on an [Internal dogfooding epic](https://gitlab.com/groups/gitlab-org/-/epics/2582) which contains the issues that gets us through the major pain points that our internal GitLab team has surfaced. This will take us a long way towards viable as these are the biggest useability concerns. + +**Next: [Integrate with major design tools to support current workflows and increase users](https://gitlab.com/groups/gitlab-org/-/epics/2405)** - We started official [Figma](https://gitlab.com/gitlab-org/gitlab-figma-plugin) and [Sketch](https://gitlab.com/gitlab-org/gitlab-sketch-plugin) projects to work on our plgugins. The Figma MVC will ship in 13.2 - track progress in this [epic](https://gitlab.com/groups/gitlab-org/-/epics/3449). Next: Collaborate with the other design tool companies as partners and build out API support so Product Designers can post to GitLab Issues from their preferred workflow. While working on this, upgrade our Issue Descriptions to support unfurled links (with thumbnail preview) from our own Designs as well as the partner design tools. Move engineering heavy lifting to the partner integration teams so we can power through. + +**Next: [Empower Product Designers and Leaders to easily stay on top of design progress at GitLab](https://gitlab.com/gitlab-org/gitlab/issues/196240)** - Move "Designs" to its own space on the left side menu above Issues. Here we'll see all design updates in real time and map design images to issues in a more seamless and connected flow. Also to consider here would be to allow designs posted without an issue to encourage rapid feedback and turn around on ideas. + +**Next: [Developer Handoff in Review Apps](https://gitlab.com/groups/gitlab-org/-/epics/2406)** - Upgrade the existing Visual Review feature to have original Epic or Issue Designs move forward in the GitLab workflow for visual inspection in the merge request. The Product Designer would be notified and invited to also inspect which would cut down on a lot of back and forth communication that currently happens offline. Empower the Engineer and the Product Designer to compare the original design with live app. Allow them to give visual feedback by attaching comments to dom elements or on an x,y access. For example: Move a transparent overlay of the original design around to ensure check measurements and other visual aspects. + +**Later: [Design reviews and approvals](https://gitlab.com/groups/gitlab-org/-/epics/990)** - Once we have more usage of our designs throughout the DevOps flow, add approvals or other checks and balances that may be needed to lock down a design. The first step is to understand how current review and approval processes work outside of GitLab and how we could adapt those to GitLab. + +**Later: [Design Management prototyping support](https://gitlab.com/groups/gitlab-org/-/epics/1728)** - currently Design Management only supports static images which are a valuable part of the design process, but may not be able to fully communicate the user experience. Part of enabling communication around that process is to allowing users to create simple click-through prototypes for designs. + +**Later: [Adding drawing and diagram files to the Design Tab](https://gitlab.com/gitlab-org/gitlab/issues/199694)** - Allow the creation of a diagram or drawing directly inside the browser via an integration. We'll investigate the right ways to "open up the drawing board" to anyone working on an Issue. + +**Later: [Git backup of design files](https://gitlab.com/gitlab-org/gitlab/issues/200088)** - When teams share source files such as the Pajamas Sketch file there is a lot of overhead with checkign that file in and out of a repo and having a design team share the file. We also would consider LFS (Large file system) and design agencies who may have huge repositories and would only be able to check out just a part of the entire repo for use. + +## Future considerations + +**Live Sketching in Issues** Allow users to draw freehand on a digital whiteboard and see the real time cursor and sketching of other users who are live with them. We think this will enable more "off-the-cuff" brainstorming and foster an in-person experience with colleagues, even if working remote. + +**Later: Deep linking of assets** - Imagine seeing an image asset in your repo or within a wiki and being able to click a button to pull down its original artwork from Sketch/Photoshop or beyond. If we achieve git backup of design files, we should be able to create deep links to their source artboards. + +**Future: AI to compare Designs to Production** With the emergence of AI technologies, eventually Design AI could be a part of the CI pipeline to scan for visual changes against the original design, report differences, and recommend changes. + + + +## Competitive Landscape + + +Within the Design Tools market, each product broadly solves one or more of these problems: + +- Approvals and lock down of designs +- Generate developer specifications (Developer handoff) +- Version control +- Visual communication via comments +- UX Research and UI Testing +- Designing and prototyping +- Design System creation and management + +The most full featured Design Tools, that are attempting to solve all these problems are: + +- [Invision Studio](https://www.invisionapp.com/studio) +- [Figma](https://figma.com) +- [UX Pin](https://www.uxpin.com/) + +What is missed in the current market: + +- "Production Design Inspect": Visual inspection of frontend code against the original designs on the issue or original prototype with a focus on the fidelity review of the code a developer actually implemented vs. the design they meant to implement +- Tracking and conversion of local design elements to their live Design System counterpart in the repo + +Given GitLab's unique strength as the single source of truth for planning and source code, we are well positioned to work with Product Design teams and encourage Product Designers to participate from design iteration through to production: + +- Review and collaboration, bringing designers deeper into the tool that they already use to understand what needs to be designed and built, and integrating the design workflow into the planning and development workflow. +- Version control for source code is a core competency of GitLab, with great support for LFS and upcoming native support for large files in Git. Building on this to support versioning of designs and automation with CI is a natural fit. + +## Market Research + + +A [competitive analysis](https://docs.google.com/document/d/12o6h6Fm7bAjhW5AK1r-PNhvn0QrQwZncorYNia12e3Q/edit) was also conducted to further understand existing players in the market. + +## Business Opportunity + + +### Estimating our TAM for Design Management + +We've learned that a typical designer:developer ratio is [1:8](https://techcrunch.com/2017/05/31/here-are-some-reasons-behind-techs-design-shortage/) (at GitLab, our ratio is 1:7). + +Also, we know there are [24M developers worldwide](https://www.statista.com/statistics/627312/worldwide-developer-population/). + +24M / 8 = 3M designers worldwide + +If we achieved signing up all of these designers for GitLab, our TAM would be $144M on Starter/Bronze, $684M on Premium/Silver, and $3.6B on Ultimate/Gold. + +### Growth of other tools + +There is a significant opportunity for an application that can successfully engage developers and design teams before and during the DevOps lifecycle. If GitLab integrates with the major design tools such as InVision (5,000,000 users), Sketch (1,000,000 users,) and Figma (1,000,000 users) and adds value in the form of visual developer handoffs, we believe product quality will increase. + + + +## Analyst Landscape + + +In the past month, we've had briefings with Redmonk, Forrester and Gartner. We've validated that we are solving a big problem with our proposal to bring Designers into Devops. + +We learned that a new potential term for this type of software is: "Digital product design platforms" and we are also considering the term "DesignOps" which might play well with DevOps at GitLab. + +## Top Customer Success/Sales issue(s) + + +No customer issues yet, because the feature is so new + +## Top user issue(s) + + +* [Design Activity should be supported on Project, Group and User Activity Pages](https://gitlab.com/gitlab-org/gitlab/-/issues/33051) - 9 +* [Adoption: GitLab <> Figma plugin prototype MVC](https://gitlab.com/gitlab-org/gitlab/-/issues/207433) - 7 +* [Rethinking information architecture of Design Management](https://gitlab.com/gitlab-org/gitlab/-/issues/204743) - 5 +* [Design Comment: Edit Comment text](https://gitlab.com/gitlab-org/gitlab/-/issues/118609) - 5 + +## Top internal customer issue(s) + + +* [Internal dogfooding epic](https://gitlab.com/groups/gitlab-org/-/epics/2582) - this gets us through the major pain points that our internal GitLab team has surfaced +* [Versioned designs and point of interest discussions](https://gitlab.com/groups/gitlab-org/-/epics/660) - the MVC addresses the most frequent frustrations with the current workflow which involves uploading images in a markdown table. + +## Top Vision Item(s) + + +* [Design process automation](https://gitlab.com/groups/gitlab-org/-/epics/991) - version control the source files in a git repo, and push to update the designs attached to issues. +* [Design Management prototyping support](https://gitlab.com/groups/gitlab-org/-/epics/1728) - static designs don't fully communicate the user experience; adding support for prototypes can further expand collaboration +* [Design reviews and approvals](https://gitlab.com/groups/gitlab-org/-/epics/990) - like merge requests, designs need reviews and approvals before being approved to proceed. diff --git a/source/direction/create/design_system/index.html.md b/source/direction/create/design_system/index.html.md new file mode 100644 index 00000000..19a91879 --- /dev/null +++ b/source/direction/create/design_system/index.html.md @@ -0,0 +1,140 @@ +--- +layout: markdown_page +title: "Category Direction - Design System" +description: "Design Systems at GitLab compliments Design Management by adding the ability to manage, document and version your design system." +canonical_path: "/direction/create/design_system/" +--- + +- TOC + {:toc} + +## Design System + +| | | +| --- | --- | +| Stage | [Create](/direction/create/) | +| Maturity | [Planned](/direction/maturity/) | +| Content Last Reviewed | `2020-07-24` | + +## Introduction + + + +The category of *Design System at GitLab* compliments *[Design Management](https://about.gitlab.com/direction/create/design_management/)* category by adding the ability to manage, document and version your design system. + + +Please reach out to PM Christen Dybenko ([E-Mail](mailto:cdybenko@gitlab.com)) if you'd like to provide feedback or ask questions about what's coming. + +## What is a Design System? + +A Design System is a living, breathing repository that sets the look and feel of a production web app. Quite often they incorporate variables and generate production `.css` from [LESS](http://lesscss.org/) or [SASS](https://sass-lang.com/). + +The simplest way to implement a Design System is to start with an open-source library (containing HTML, CSS, and JS) like [Bootstrap](https://getbootstrap.com/) or [Material UI](https://material-ui.com/). From there you can easily include these libraries in your repository and modify the variables to set colors, spacing, and brand-specific look and feel of the styles. + +However, since it's hard to preview your changes to these libraries, most companies require a more robust system that lets them view their changes in a separate repository from the production app. This reduces the risk of putting something live that doesn't work and increases code re-use. + +At GitLab, our Design System static site called [Pajamas](https://design.gitlab.com/) and our components are edited (via code) in [Storybook](https://storybook.js.org/) in the [GitLabUI repo](https://gitlab-org.gitlab.io/gitlab-ui/?path=/story/*). + +The best Design Systems allow the creation of components in their smallest format - for example, a button (atom) or a more complex layout like a table header (molecule). Code is re-used between atoms, molecules, organisms, templates, and pages for consistency. + +It's also important that the design process for creating these new components in a design tool like Figma are connect to their live counterparts in the repository. + + +## Long Term Strategy + +`TBD` + +## Target Audience and Experience + + +The Design System category is targeted at [product designers](/handbook/marketing/product-marketing/roles-personas/#presley-product-designer) and [software developers](/handbook/marketing/product-marketing/roles-personas/#sasha-software-developer) who are both primary contributors and consumers. The belief that design systems are just for designers is a main hurdle that teams have to get over. Design systems are not fully adopted when this is the belief. Organizations have to understand that a design system improves the efficiency of their development teams while also improving the overall user experience in order for teams to invest. GitLab can help shape this story + +These two personas may interact with [product managers](/handbook/marketing/product-marketing/roles-personas/#parker-product-manager) or [software engineers in test](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#simone-software-engineer-in-test) to get these components ready for the actual app. + +The **minimal** user journey will provide designers with the ability to: `TBD` + + +## What's Next & Why + + +* Consider why this wouldn't just be a feature of Design Management as a category +* Evaluate the feature set of [zeroheight.com](https://www.zeroheight.com/) and [Invision DSM (Design System Management)](https://www.invisionapp.com/design-system-manager) + +## Future considerations + +`TBD` + + + +## Competitive Landscape + + + +- [Zeroheight](https://www.zeroheight.com/) +- [Invision DSM (Design System Management)](https://www.invisionapp.com/design-system-manager) +- [Storybook](https://storybook.js.org/) and [Chromatic](https://www.chromatic.com/) + + +What is missed in the current market: + +- Linking components to their repo counterparts + + + +## Market Research + + + +Forrester now reports that [50% of companies are using some form of a Design System](https://www.forrester.com/report/Digital+CX+And+Design+Trends+2020/-/E-RES160056). + +A [competitive analysis](https://docs.google.com/document/d/1_OpUpozFjMdRPMM7Wd6R9SPJO2PGOuyKCCW-miGDkEE/edit#) *is in progress to define players in the design system market*. + +## Business Opportunity + + +Expert from [Design Management Direction](https://about.gitlab.com/direction/create/design_management/#business-opportunity) +> The total market potential of Design Tools is over US $4 billion and growing. There is a significant opportunity for an application that can successfully engage developers and design teams before and during the DevOps lifecycle. If GitLab integrates with the major design tools such as InVision (5,000,000 users), Sketch (1,000,000 users,) and Figma (1,000,000 users) and adds value in the form of visual developer handoffs, we believe product quality will increase. + + +## Analyst Landscape + + +`TBD` + +## Top Customer Success/Sales issue(s) + + +No customer issues yet, because the feature is so new + +## Top user issue(s) + + +`TBD` + +## Top internal customer issue(s) + + +`TBD` + +## Top Vision Item(s) + + +`TBD` diff --git a/source/direction/create/ecosystem/api/index.html.md b/source/direction/create/ecosystem/api/index.html.md new file mode 100644 index 00000000..72aeb064 --- /dev/null +++ b/source/direction/create/ecosystem/api/index.html.md @@ -0,0 +1,141 @@ +--- +layout: markdown_page +title: "Category Direction - API" +--- + +- TOC + {:toc} + +| ------ | ------ | +| **Stage** | [Create](/direction/dev/#create-1) | +| **Maturity** | [Viable](/handbook/product/categories/maturity/) | +| **Last reviewed** | 2020-07-28 | + +- [Issue List](https://gitlab.com/gitlab-org/gitlab/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=group%3A%3Aecosystem&label_name[]=Category%3AAPIs%2FSDKs) +- [Overall Ecosystem Direction](/direction/create/ecosystem/) + +_This direction is a work in progress, and [everyone can contribute](#contributing):_ + +* Please comment, thumbs-up (or down!), and contribute to the linked issues and + epics on this category page. Sharing your feedback directly on GitLab.com is + the best way to contribute to our vision. +* Direct feedback can be shared via [email](mailto:pdeuley@gitlab.com), + [Twitter](https://twitter.com/gitlab) or on a video call. +* _If you're a GitLab user or developer and have direct feedback about our API, we'd love to hear from you._ + +## 概要 + +GitLab's **API** category provides all the tools and resources for +developers to integrate externally with GitLab as a platform. Our [Integrations category](/direction/create/ecosystem/integrations/) +supports key integrations directly inside the GitLab codebase. + +Currently, a REST and GraphQL API are available for developers to use to +integrate with GitLab. You can learn more about our APIs in [our developer documentation](https://docs.gitlab.com/ee/api/). + +Beyond accessing these endpoints directly, [API Clients](/partners/#api-clients) +and [CLI Clients](/partners/#cli-clients) that have been created by our community +are availalbe for a variety of platforms and languages. + +## Direction + +As the GitLab community grows and increasingly relies on GitLab as a central +part of their toolchain, it is critical that we provide support for integrating +our product with a wider variety of systems. These integrations could be with +project management systems, ERPs, custom dashboards and reporting systems, or +any other type of custom-built tool. + +To serve these needs, the [Groups and Categories](/handbook/product/categories/) +across GitLab contribute to our APIs with functionality for each of their +individual sets of functionality. Because of this distributed nature, the +`API` category is responsible for guiding the path of this development on +a holistic level. + +Over the next year, we will work with key stakeholders to refine guidelines and +best practices that will inform how these teams are designing and building their +APIs and how they will ensure that these resources remain performant for +consumers. Additionally, this team will act as a centralized resource, helping +to triage critical problems with our APIs as the need arises. + +## Future Vision + +By providing powerful and flexible development resources, we allow creators to +consume GitLab _as a platform_—giving them the freedom to create anything +they may need. [Penflip](https://www.penflip.com/) is a great example of a novel +product that was built upon GitLab that uses the core GitLab functionality to +produce a whole new experience. These developers took GitLab's core functionality +and reimagined it for a wholly different purpose and a totally different type of user. + +Making room for this sort of innovation and creativity will let us grow our +community and impact in novel ways, and the more we expand the resources we +provide, the more of this impact we will see. Over time, we would like to expand +our developer tooling to allow more of this type of creativity and build a +framework that allows us to better serve the broader variety of creative work, +driving us closer to our [Big Hairy Audacious Goal](/company/strategy/#big-hairy-audacious-goal). + +## Maturity + +Today, we consider our **API** to be [Viable](/direction/maturity/). Below is +how we think about how we'll grow that maturity level over time: + +* **Viable** APIs give developers access to the majority of core GitLab + functionality and offer basic documentation covering the usage of the API. + _(Where we are today)_ +* **Complete** APIs give developers access to almost all GitLab functionality + through direct API access, supported by robust documentation that covers + the usage of the API, best practices, and offers examples and sample code to + try yourself. +* **Lovable** APIs give developers access to almost all GitLab functionality + through direct API access, supported by robust documentation that covers + the usage of the API, best practices, and offers examples and sample code to + try yourself. Additionally, these resources are supplemented by well-supported + client libraries, CLI tools that make jumping in and developing simple. + +_[Learn more about how GitLab thinks about Maturity here.](/direction/maturity/)_ + +## What's next and why + +Based on these goals, our current priorities are: + +* **[Create a GitLab Developer Portal](https://gitlab.com/gitlab-org/gitlab/issues/34256)** + to make it easier for developers to find the resources that are currently available. +* **Refine our API guidelines and best practices** + to ensure a more consisently great experience across our APIs, and make it + clearer to our contributors what they need to be building, and why. +* **[Establish telemetry for our API and SDK](https://gitlab.com/gitlab-org/gitlab/issues/34095)** + to allow us to better understand how these resources are being used, and give + us insight to which areas need improvement or expansion. + +## What we're not doing + +### Building "all" of GitLab's APIs + +Each [Group](/handbook/product/categories/) is ultimately responsible for +building and maintaining their own APIs. Ecosystem's role is to be a source of +guidance and governance across them as a whole. + +### Creating new API client libraries + +There are currently [many client libraries](/partners/#api-clients) that were +created and are maintained by our community. We don't currently have any +plans on creating our own libraries, but are happy to support the efforts +of those contributors and community members. + +## Contributing + +At GitLab, one of our values is that everyone can contribute. If you're looking +to contribute to our API or otherwise get involved with features in the +Ecosystem area, [you can find open issues here](https://gitlab.com/gitlab-org/gitlab/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=group%3A%3Aecosystem&label_name[]=Category%3AAPIs%2FSDKs). + +Feel free to reach out to the team directly if you need guidance or want +feedback on your work by pinging [@deuley](https://gitlab.com/deuley) or +[@gitlab-ecosystem-team](https://gitlab.com/gitlab-org/ecosystem-team) on your +open MR. + +You can read more about our general contribution guidelines [here](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md). + +## Feedback & Requests + +If there's an integration that you'd like to see GitLab offer, or if you have +feedback about an existing integration: please [submit an issue](https://gitlab.com/gitlab-org/gitlab-ce/issues/new?issue%5Btitle%5D=New%20GitLab%20Integration%20with) with the label +`~Category:Integrations`, or contact [Patrick Deuley](mailto:pdeuley@gitlab.com), +Sr. Product Manager, Ecosystem. diff --git a/source/direction/create/ecosystem/frontend-ux-foundations/index.html.md b/source/direction/create/ecosystem/frontend-ux-foundations/index.html.md new file mode 100644 index 00000000..388d017b --- /dev/null +++ b/source/direction/create/ecosystem/frontend-ux-foundations/index.html.md @@ -0,0 +1,116 @@ +--- +layout: markdown_page +title: "Category Direction - Frontend & UX Foundations" +--- + +- TOC + {:toc} + +| ------ | ------ | +| **Stage** | [Create](/direction/dev) | +| **Maturity** | [Viable](/handbook/product/categories/maturity/) | +| **Last reviewed** | 2020-07-28 | + +- [GitLab UI Project](https://gitlab.com/gitlab-org/gitlab-ui/) +- [Pajamas Project](https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com) +- [Issue list](https://gitlab.com/groups/gitlab-org/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=group%3A%3Aecosystem&label_name[]=Category%3AFE%2FUX%20Foundations) +- [Epic list](https://gitlab.com/groups/gitlab-org/-/epics?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=Category%3AFE%2FUX%20Foundations) +- [Overall direction](/direction/create/ecosystem/) + +_This direction is constantly evolving, and [everyone can contribute](#contributing):_ + +* Please comment, thumbs-up (or down!), and contribute to the linked issues and + epics on this category page. Sharing your feedback directly on GitLab.com is + the best way to contribute to our vision. +* Please share feedback directly via [email](mailto:pdeuley@gitlab.com), + [Twitter](https://twitter.com/gitlab) or on a video call. If you’re a GitLab + UI or Pajamas user and have direct knowledge of your needs, we’d especially + love to hear from you. + +## 概要 + +The Frontend & UX Foundations team is responsible for leading the direction of the experience design, visual style, and technical tooling of the GitLab product. This category encompasses two broad areas of focus: + +1. Tooling-focused enhancements +1. User-focused enhancements + +Tooling-focused enhancements include: + +* Improving webpack and optimizing frontend assets. +* Improving the debugging experience, linters, and documentation with an emphasis on performance. +* Shepherding migrations away from deprecated technologies. +* Reducing technical debt. +* Addressing [Progressive Web Application](https://developers.google.com/web/progressive-web-apps) needs. + +User-focused enhancements include: + +* Building a cohesive and consistent user experience, visually and functionally. +* Providing comprehensive usage guidelines, reusable components, content standards, and usability documentation. +* Building in [accessibility](https://www.w3.org/WAI/). +* Reducing user experience and design debt. + +Both of these areas lead to a greater user and contributor experience while also increasing operational efficiencies. Our goal with the foundations team is to treat the underlying foundation of GitLab as a first-class internal product which supports product designers, engineers, and product managers to more efficiently perform their roles. + +## Direction + +As the GitLab product expands to include offerings for the entire DevOps lifecycle, it is critical to provide support for building a cohesive product that has the ability to replace disparate DevOps toolchains. + +To serve these needs, we will work with the [Groups and Categories](/handbook/product/categories/) +across GitLab to contribute to our design system, [Pajamas](https://design.gitlab.com/), while also continuing to define guidelines and best practices that will inform how these teams are designing and building products. Additionally, this team will act as a centralized resource, helping to triage large scale technical and experience problems as the need arises. + +## Target audience + +Foundations is focused on supporting internal users and product teams, with a focus on four cross-functional counterparts: Product Designers, Technical Writers, Engineers, and Product Managers. + + + +We also aim to improve the community contributor experience by streamlining the process of writing consistent code that conforms to set practices. + + + +## What’s in progress, next, and later + +### In progress + +* [Creating, building, and styling foundation components](https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com/-/boards/1261225?&label_name[]=OKR). We identified 36 foundational components that are central to building and maintaining features at GitLab. In order to streamline the process of implementing components, we’ve defined four stages of a component lifecycle: Create, Build, Style, and Integrate. This first effort is aimed at completing the first three stages (create, build, and style) of the 36 foundational components. This will allow designers and engineers to have a robust system to draw from when designing and building GitLab products. +* [Moving our Pajamas UI Kit from Sketch to Figma](https://gitlab.com/gitlab-org/gitlab-design/-/boards/1511008?&label_name[]=Figma). The move to Figma allows for greater collaboration, as well as community contributions. Currently, Sketch is only available on Mac platforms and there is no real-time collaboration features. Figma will allow us to provide a UI Kit that is available across platforms, while being available for community contributors to utilize for free. It will also promote collaboration through its use of real-time editing capabilities and version history. We will also be able to streamline developer handoff by simply linking to the design file, reducing the need for additional plugins such as Sketch Measure. +* [Updating our color palette](https://gitlab.com/groups/gitlab-org/-/epics/2964) to address color contrast for accessibility, and to normalize the palette across hues so that we can better systematize variable use throughout the UI. + +### Next + +* Creating a comprehensive action plan for integrating components into the GitLab product. +* Auditing and updating our existing VPAT. +* Building comprehensive accessibility standards into our workflows. +* Deprecating FontAwesome icons in favor of our own [SVG library](http://gitlab-org.gitlab.io/gitlab-svgs/). + +### Later +* [Updating our (Beta!) dark mode](https://gitlab.com/groups/gitlab-org/-/epics/2902), improving accessibility, audit/testing, and completeness. + +### What we’re not doing + +**Building and integrating all components across GitLab.** The scope of this category is to provide guidance and governance for our design system and related tooling, and is staffed with dedicated UX designers to support that. However, _creating_ those components and implementing them throughtout the application is a massive lift that requires participation from every [Group and Category](/handbook/product/categories/). While FE/UX Foundations has _some_ Frontend Engineering capacity, it can’t be responsible for creating and implementing everything. + +## Maturity plan +Today, we consider our **FE/UX Foundations** to be [Viable](/handbook/product/categories/maturity/). Below is how we think we’ll grow that maturity level over time: + +* **Viable:** A centralized system exists for product teams to contribute cohesive and consistent assets that aid in building the GitLab product. Documentation is in place to help offer guidance. Some reusable components exist and adhere to usage guidelines. Accessibility standards are followed in some cases. _(Where we are today)_ +* **Complete:** A centralized system exists for product teams to contribute cohesive and consistent assets that aid in building the GitLab product. Documentation is in place to help offer guidance and these docs are consistently disseminated, enabling product teams to make autonomous decisions about component usage. Almost all reusable components exist, adhere to usage guidelines, and are referenced as the single source of truth. Some components are fully integrated into the GitLab product. Accessibility standards are followed in most cases. +* **Lovable:** A centralized system exists for product teams to contribute cohesive and consistent assets that aid in building the GitLab product. Documentation is in place to help offer guidance and these docs are consistently disseminated, enabling product teams to make autonomous decisions about component usage. Almost all reusable components exist, adhere to usage guidelines, and are referenced as the single source of truth. Almost all components are fully integrated into the GitLab product. Accessibility standards are followed in almost all cases. + + \ No newline at end of file diff --git a/source/direction/create/ecosystem/gdk/index.html.md b/source/direction/create/ecosystem/gdk/index.html.md new file mode 100644 index 00000000..f80d0fc4 --- /dev/null +++ b/source/direction/create/ecosystem/gdk/index.html.md @@ -0,0 +1,149 @@ +--- +layout: markdown_page +title: "Category Direction - GDK" +--- + +- TOC + {:toc} + +| ------ | ------ | +| **Stage** | [Create](/direction/create) | +| **Maturity** | [Viable](/handbook/product/categories/maturity/) | +| **Last reviewed** | 2020-07-28 | + +- [GDK Project](https://gitlab.com/gitlab-org/gitlab-development-kit) +- [Issue List](https://gitlab.com/gitlab-org/gitlab-development-kit/-/issues) +- [Epic List](https://gitlab.com/groups/gitlab-org/-/epics?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=Category%3AGDK) +- [Overall Direction](/direction/create/ecosystem/) + +_This direction is constantly evolving, and [everyone can contribute](#contributing):_ + +* Please comment, thumbs-up (or down!), and contribute to the linked issues and + epics on this category page. Sharing your feedback directly on GitLab.com is + the best way to contribute to our vision. +* Please share feedback directly via [email](mailto:contributors@gitlab.com), + [Twitter](https://twitter.com/gitlab). There's also a [Gitter contributor channel](https://gitter.im/gitlabhq/contributors) you can give us feedback and ask questions in. +* If you're a GDK user, we'd always love to hear from you! + +### 概要 + +The GDK team is responsible for the GitLab Development Kit (GDK). The GDK +provides a self-contained GitLab environment, which can be run locally or in a +virtual machine. It's useful for developers contributing to the [GitLab project](https://gitlab.com/gitlab-org/gitlab), +or anyone needing to test, experiment with, or validate GitLab functionality. + +This category is responsible for improving the usability and reliability of the +the [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit). +The GDK is essential for locally developing and testing changes. +It is used by nearly all of the product development organization at GitLab as +well as our community of contributors and partners. + +It is therefore critical to optimize this experience for two reasons: +productivity gains made through tool enhancements have compounding returns, +and it makes it easier to get started contributing. + +In the longer term, the vision is for the GDK to be a simple, reliable, and +flexible tool that allows everyone to contribute. Developers should be able to +keep their local development environment up-to-date painlessly, designers +should be able to quickly check out a branch and validate a feature they +designed, and everyone using the GDK should be running few commands to achieve +this, and experience a highly-performant local installation when they do so. + +#### Target audience + +The GDK serves as a simple way to set up a local development environment for +working on GitLab. With that in mind, the target audience for the GDK is +_anyone who is contributing to the GitLab project_. This includes: + +* **Software engineers** directly writing code +* **Software engineers in test** who are testing that code +* **Product designers** verifying designs are implemented correctly +* **UX researchers** demonstrating functionality to users for research purposes +* **Product managers and engineering managers** performing acceptance testing + before code is merged to master +* **All of the above**, whether they are working for GitLab or are part of + our broader community of contributors. + +GitLab is an [Open Core](https://en.wikipedia.org/wiki/Open-core_model) product, +and our community is central to the continued success of our mission. This +means that tools that allow anyone to jump in and contribute are vital to +keeping that momentum going. + +### Future Vision + +We want to build towards a state in which any GitLab contributor can easily install and use the GDK +with minimal effort. By "lowering the bar" to getting started, we allow our contributors to focus +on designing and building our next great feature. + +We're iterating toward a version of the GDK that can install in a single command, updates itself +painlessly, and allows contributors to check out a feature branch with minimal effort. + +#### Challenges to address + +**Getting started with the GDK** is straightforward for GitLab employees because +of the tribal knowledge and in-company training we do. We need to move that +knowledge in to the documentation and the handbook to make it just as easy for +anyone in the community to get ramped up. + +**Examining a specific branch** is a central workflow for many of our personas. +These users would benefit greatly from a minimal-fuss, no-configuration way to +switch to a specific branch to verify various aspects of the application with +high velocity. + +**Making GDK updates a smooth experience** is a high-priority issue, as there +are a large number of reports of breaks happening when upgrading. This makes it +painful to upgrade and smoothly continue working, or (even worse) discourages +developers from upgrading in a timely manner. + +**Getting help with the GDK** isn't so bad for GitLab Team Members, since they +can just join the **#gdk** (internal) Slack channel. This +approach is not suitable for community members, and we need a better solution +that works well for everyone (so that everyone can contribute.) + +#### What's Next & Why + +[Adding `gdk checkout ` for reviewing specific branches](https://gitlab.com/gitlab-org/gitlab-development-kit/-/issues/139) +to make it simpler for users to check out a specific feature branch quickly and +easily. Currently the process is fragile and poorly documented and introducing +a simple, reliable command will make it easier for all involved. + +[Update the GDK Documentation](https://gitlab.com/groups/gitlab-org/-/epics/3218) +to increase clarity particularly for new contributors. This will include +reorganizing content to make it more discoverable and scannable, improving our +_"Preparing your computer"_ recommendations, and updating the documentation +for the latest requirements and prerequisites. + +[Introduce `gdk pristine` command](https://gitlab.com/gitlab-org/gitlab-development-kit/-/issues/843) +to allow contributors a way to get a potentially broken GDK back to a working +state in a low-touch way. + +[Allow some services to be run under Docker](https://gitlab.com/gitlab-org/gitlab-development-kit/-/issues/867) - +Convert "data-oriented" services to have the option of being run natively or via +Docker to reduce the complexity of installing/upgrading indivdual services. + +[Include 'stale process' detection as part of `gdk doctor`](https://gitlab.com/gitlab-org/gitlab-development-kit/-/issues/856). +This has bitten us a few times recently with some existing services that were re-engineered. It would have been really +helpful for `gdk doctor` to detect and suggest solutions when it detects +potential conflicts with old services that were left running after an update. + +#### What is Not Planned Right Now + +**Working on the GitLab Compose Kit (GCK).** The [GCK project](https://gitlab.com/gitlab-org/gitlab-compose-kit) +is also building local development environment tooling, however with an aim of +allowing users to spin up a container-based environment that only runs the bare +minimum of services required to maximize performance and ease of use. Whatever +the future may hold, the current standard for our developers is the _GDK_, which +is where the focus of this category will remain for the time being. + +We should investigate integrating/combining these two projects, but there are a few requirements (such as [allowing some services to be run under Docker](https://gitlab.com/gitlab-org/gitlab-development-kit/-/issues/867)) that must be completed before we can even test this out. We're keeping these requirements in mind during planning, and are hoping to revisit this soon. + +### Why is this important? + +The GDK is key to our [GitLab's Strategy](https://about.gitlab.com/company/strategy/#how) +as it is the entrypoint to contribution to the GitLab project itself. Without +the GDK, many contributors would have to learn the specifics of every required +service that a local environment must run to function, the commands required to +run each of those services, and the order they must be stood up in to function +properly. They'd have to run these commands manually, or more likely, write some +tooling that automates the process for them... which after significant amounts +of time and effort were put in to those scripts, they'd look a lot like the GDK. diff --git a/source/direction/create/ecosystem/index.html.md b/source/direction/create/ecosystem/index.html.md new file mode 100644 index 00000000..37b3478a --- /dev/null +++ b/source/direction/create/ecosystem/index.html.md @@ -0,0 +1,157 @@ +--- +layout: markdown_page +title: "Group Direction - Ecosystem" +--- + +- TOC + {:toc} + +| ------ | ------ | +| **Stage** | [Create](/direction/dev/#create-1) | +| **Last reviewed** | 2020-07-28 | + +- [Issue List](https://gitlab.com/groups/gitlab-org/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=group%3A%3Aecosystem) + +## 概要 + +Ecosystem's mission is to foster both GitLab as a platform as well as its community. +Ecosystem supports our **Integrations** with other products, our **APIs** for +connecting GitLab to external products and services, and our **GDK** and +**Frontend Foundations** that enable our community of contributors to +to develop the application itself. + +Our goal is to make integrating with, extending the functionality of, or +developing GitLab itself an easy, delightful experience. As with all things +GitLab, we strongly believe that [Everyone can contribute](#contributing), and +Ecosystem supports that mission directly through its work. + +## Categories + +### Integrations + +Integrations are places GitLab connects to features and services from other products, +_directly from the GitLab codebase_. These integrations +range from things like lightweight [Slack notifications](https://docs.gitlab.com/ee/user/project/integrations/slack.html) +for projects, to complex integrations with [Atlassian Jira](https://docs.gitlab.com/ee/user/project/integrations/jira.html). + +Today, there are several ways to integrate into GitLab—by adding your +integration to the [GitLab codebase](https://gitlab.com/gitlab-org/gitlab), by consuming our [public APIs](https://docs.gitlab.com/ee/api/), or by +using a community library to connect your code to GitLab. Many products, +tools, and services that have already integrated with GitLab can be found on +our [partner integration page](https://about.gitlab.com/partners/integrate/). + +Integrations will focus primarily on adding new integrations that are +_key to the needs of our enterprise customers_ and providing guidance for 3rd parties that are +contributing integrations for their own products. + +[Category Direction](/direction/create/ecosystem/integrations/) · +[Documentation](https://docs.gitlab.com/ee/integration/) · +[Epic](https://gitlab.com/groups/gitlab-org/-/epics/1515) · +[Open Issues](https://gitlab.com/gitlab-org/gitlab/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=group%3A%3Aecosystem&label_name[]=Category%3AIntegrations) + +### API + +The GitLab APIs enable_external products and services to access GitLab data and functionality. + +The GitLab API **category** provides guidance and governance for all the +Groups inside of GitLab that are creating and maintaining our REST and GraphQL +APIs. The goal of this effort is to define best practices and requirements +for the development of our APIs to create a consistently great experience for +those integrating with GitLab as a platform. + +[Category Direction](/direction/create/ecosystem/api/) · +[Documentation](https://docs.gitlab.com/ee/api/) · +[Epic](https://gitlab.com/groups/gitlab-org/-/epics/2040) · +[Open Issues](https://gitlab.com/gitlab-org/gitlab/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=group%3A%3Aecosystem&label_name[]=Category%3AAPIs%2FSDKs) + +### GDK + +The GitLab Development Kit (GDK) is a tool for developers contributing +to GitLab. It provides a simple way to install, configure, and run a local +development environment. This tool is key to the success of our contributor +community—both internal GitLab Team Members and the broader community of +contributors. + +[Category Direction](/direction/create/ecosystem/gdk) · +[Project Home](https://gitlab.com/gitlab-org/gitlab-development-kit/) · +[Setup Documentation](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/set-up-gdk.md) · +[Open Issues](https://gitlab.com/gitlab-org/gitlab-development-kit/-/issues) + +### FE/UX Foundations + +The work of Frontend and UX Foundations centers around resources and tools that +allow Frontend Engineers and Product Designers to design and implement the UI of +GitLab more effectively. This includes the [Pajamas Design System](https://design.gitlab.com/), +and frontend tooling such as our webpack implementation. The goal of these +efforts are to make developing the GitLab UI straightforward, performant, +and maintainable. + +[Category Direction](/direction/create/ecosystem/frontend-ux-foundations) · +[Pajamas Documentation](https://design.gitlab.com/) + +## Ecosystem Themes + +### Freedom of choice + +We firmly believe that a [single application](https://about.gitlab.com/handbook/product/single-application/) +can successfully serve all the needs of the entire DevOps lifecycle. However, we there are a myriad +of reasons that many customers can't adopt GitLab in this way. + +Customers may have specific tools they are committed to using due to factors like: + +1. The cost of migrating off of it, either based on the volume of content to + migrate, the risk of errors during the migration, the cost of training, etc. +1. The cost of building _new integrations_ with other tools in their existing toolchain +1. Specific regulatory, security, or compliance needs they must be able to meet +1. Niche or unique functionality that isn't available in GitLab + +Because of these realities, we believe that our customers should have the +**freedom to choose their tools**, and use what makes the most sense for their +business—and we will support that freedom as best we can by [playing well with others](https://about.gitlab.com/handbook/product/gitlab-the-product/#plays-well-with-others). + +### Flexibility and Extensibility + +We'll never anticipate every possible use-case, nor can we afford to support the +development of every possible integration. So to that end, our aim is to create +flexible and extensible tools so that those integrating with us can create whatever they need. + +## Further Reading + +### Problem/Solution Validation + +We work hard to understand the space we operate in, and to better understand our +customers and the problems we're solving for them, we conduct [Validation exercises](https://about.gitlab.com/handbook/product-development-flow/#validation-track). + +* [ServiceNow Problem Validation](https://gitlab.com/gitlab-org/ux-research/-/issues/518) +* [Solution Validation: Mass Integrations](https://gitlab.com/gitlab-org/ux-research/-/issues/789) +* [Integration Settings Prototype Testing](https://gitlab.com/gitlab-org/ux-research/-/issues/601) +* [Understanding our developer experience](https://gitlab.com/gitlab-org/ux-research/-/issues/511) +* [Understanding group-level integration with Jira](https://gitlab.com/gitlab-org/ux-research/-/issues/393) + +## Contributing + +At GitLab, one of our values is that everyone can contribute. If you're looking +to contribute your own integration or otherwise get involved with features in +the Ecosystem area, [you can find open issues here](https://gitlab.com/groups/gitlab-org/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=group%3A%3Aecosystem). + +Feel free to reach out to the team directly if you need guidance or want +feedback on your work by pinging [@deuley](https://gitlab.com/deuley) or +[@gitlab-ecosystem-team](https://gitlab.com/gitlab-org/ecosystem-team) on your +open MR. + +You can read more about our general contribution guidelines [here](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md). + +## Influences + +We're inspired by other companies with rich, developer-friendly experiences like +[Salesforce](https://developer.salesforce.com/), +[Shopify](https://help.shopify.com/en/api/getting-started), +[Twilio](https://www.twilio.com/docs/), +[Stripe](https://stripe.com/docs/development), +and [GitHub](https://developer.github.com/). + +A large part of the success of these companies comes from their enthusiasm +around enabling developers to integrate, extend, and interact with their +services in new and novel ways, creating a spirit of [collaboration](https://about.gitlab.com/handbook/values/#collaboration) +and [diversity](https://about.gitlab.com/handbook/values/#collaboration) that +simply can't exist any other way. diff --git a/source/direction/create/ecosystem/integrations/index.html.md b/source/direction/create/ecosystem/integrations/index.html.md new file mode 100644 index 00000000..d8eb2735 --- /dev/null +++ b/source/direction/create/ecosystem/integrations/index.html.md @@ -0,0 +1,218 @@ +--- +layout: markdown_page +title: "Category Direction - Integrations" +--- + +- TOC + {:toc} + +| ------ | ------ | +| **Stage** | [Create](/direction/dev/#create-1) | +| **Maturity** | [Viable](/handbook/product/categories/maturity/) | +| **Last reviewed** | 2020-07-28 | + +- [Issue List](https://gitlab.com/groups/gitlab-org/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=group%3A%3Aecosystem&label_name[]=Category%3AIntegrations) +- [Epic List](https://gitlab.com/groups/gitlab-org/-/epics/1515) +- [Overall Ecosystem Direction](/direction/create/ecosystem/) + +_This direction is a work in progress, and [everyone can contribute](#contributing):_ + +* Please comment, thumbs-up (or down!), and contribute to the linked issues and + epics on this category page. Sharing your feedback directly on GitLab.com is + the best way to contribute to our vision. +* Alternately, please share feedback directly via [email](mailto:pdeuley@gitlab.com) or + [Twitter](https://twitter.com/gitlab). If you're a GitLab user and have direct + knowledge of your need from a particular integration, we'd love to hear from you. + +## 概要 + +GitLab's vision is to be the best [single application for every part of the DevOps toolchain](/handbook/product/single-application/). +However, some customers use tools other than our included features, [and we respect those decisions](/handbook/product/gitlab-the-product/#plays-well-with-others). +Currently, GitLab offers [30+ Integrations](https://docs.gitlab.com/ee/user/project/integrations/overview.html) +that work with a variety of external systems. Integrations are important to +GitLab's success, and the **Integrations category** was established to develop and +maintain these integrations with key 3rd party systems and services. + +This category will primarily focus on creating new integrations that support the +needs of enterprise customers, as those customers often have hard integration-related +requirements that can fully prevent them from adopting GitLab. By supporting +these requirements, we unlock new parts of the market which are otherwise +wholly inaccessible. + +## Direction + +The **Integrations** direction is to support GitLab's efforts at making our +application _[Enterprise Ready](https://about.gitlab.com/direction/#1-year-plan)_ +by expanding and creating new high-impact integrations most in-demand by these +customers. + +Many enterprise organizations rely on systems like Jira, Jenkins, and +ServiceNow. It is often a _hard requirement_ to have a robust integration with +these services, and _not_ having that integration already can block adoption of +GitLab completely. + +By making these integrations powerful and useful, we make the lives of our +users better—even when they're using other products. This is what we mean +when we say that GitLab [plays well with others](/handbook/product/gitlab-the-product/#plays-well-with-others). + +Particularly for large organizations, existing tools and services +can be extremely difficult to migrate off of, even without any explicit vendor +lock-in. Moving _thousands of users_ or _hundreds of thousands_ of existing files +or objects off of one system to GitLab can incur more costs than might be +obvious at first. Internal tools may be tightly knit with the other internal +systems meaning numerous new integrations have to be developed just to keep +the business running. + +While GitLab has a robust API that supports integrating _almost anything you may need_, +it's a much more powerful experience to have a _native_ integration already +inside the application. + +## Maturity + +The Integrations category tracks [Maturity](/direction/maturity/) +on a per-integration basis. Each integration is evaluated based on the following +criteria: + +* A **Minimal** integration meets a single basic need for a small set of + customers, and may only push data one way from one system to the other without + surfacing much data or functionality directly in the UI. +* A **Viable** integration meets the core needs of most customers, and is robust + or configurable enough to meet all the needs of a some customers. +* A **Complete** integration meets the needs of the vast majority of usecases + for the majority of users, and the integration allows users to work painlessly + between the two products. +* A **Lovable** integration not only meets the needs of the vast majority of + users, but it makes the experience of using both products as productive and + easy as possible. This may mean things like special consideration taken to + intra-product navigation and how we surface notifications from the other + service, for example. + +## Current High-priority Integrations + +_You can view a list of all of our current integrations on our [Integrations page](https://docs.gitlab.com/ee/user/project/integrations/overview.html)_ + +| Integration | Maturity Level | ドキュメント | Epic/Issue | +| --- | --- | --- | --- | +| Atlassian Jira | Viable | [Documentation](https://docs.gitlab.com/ee/user/project/integrations/jira.html) | [Epic](https://gitlab.com/groups/gitlab-org/-/epics/1522) | +| Jenkins | Viable | [Documentation](https://docs.gitlab.com/ee/integration/jenkins.html) | [Epic](https://gitlab.com/groups/gitlab-org/-/epics/1757) | +| ServiceNow | Minimal | | [Epic](https://gitlab.com/groups/gitlab-org/-/epics/1712) | +| Rally | Planned | | [Issue](https://gitlab.com/gitlab-org/gitlab/issues/169) | +| Microsoft Teams | Minimal | | [Epic](https://gitlab.com/groups/gitlab-org/-/epics/880) | +| Jama | Under Consideration | | [Issue](https://gitlab.com/gitlab-org/gitlab/issues/16182) | + +## Prioritization + +We prioritize our Integrations work based on: + +* Reach (Customer demand) -- We want work on what the majority of our customers + need. We evaluate this based number of current users impacted, how much an + addition would increase our Total Addressable Market, and external market trends. +* Impact -- Integrations that are vital to an organizations processes and + workflow are also the ones most likely to be hard requirements for adoption. + It's unlikely that a simple notification integration would block adoption, + but not supporting Change Management tooling very much can. +* Effort (Integration complexity) -- The amount of work and time it would take + to complete that work absolutely factors in to priority. We have a limited + amount of time and resources, so we have to choose our work wisely. + +Based on the above scope and these priorities, we're currently only targeting a +limited set of products and services--specifically, those listed above and those +that are [scheduled on our backlog](https://gitlab.com/groups/gitlab-org/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=group%3A%3Aecosystem&label_name[]=Category%3AIntegrations&milestone_title=Any). +All prioritized integrations have a target maturity of `Complete`, and will +take precedent over other integrations until they hit that maturity level. + +_For all other integrations, our team also supports our [API](/handbook/direction/create/ecosystem/api) +so that developers can build anything else they need._ + +## What's next and why + +Over the next year, Ecosystem will work on improving our integrations with +existing tools and create integrations for a number of new systems. Enterprise +systems that we are working on are: + +### Improving our Jira integration + +Jira is one of our most popular integrations, and a common thread we hear is that "developers want +to be able to stay in GitLab" and not have to go to Jira to view their work. We're kicking off an +MVC experiment to try to pull some minimal Jira functionality in to GitLab to try to address this +user concern. + +* [Allow federation of Atlassian users](https://gitlab.com/gitlab-org/gitlab/-/issues/220991) +* [Add Issue Detail view from Jira Issue List](https://gitlab.com/gitlab-org/gitlab/-/issues/220999) + +### Group and Instance level integration + +This is our current top priority. Many of the integrations that we support are +key to our customers workflows, which mean that they end up getting enabled on +a majority of the projects that that customer has active. Practically, this can +mean _thousands of individual projects_ have to be enabled individually. +This causes particular pain with even simple actions like rotating an access +token or changing a URL endpoint. When integrations are set on a per-project +basis, that one token rotation could mean thousands of individual updates that +someone has to go do. + +* [Mass-integration at a Group and Instance Level](https://gitlab.com/groups/gitlab-org/-/epics/2137) + +### Integrating Rally for Project Management + +Like Jira, there are many large enterprises using Rally for their project +management needs, and being able to connect where projects are being planned +directly to the code that is being written is core to the value that GitLab +provides. + +## What we're not doing + +### Building a "marketplace" + +GitLab does not utilize a plugin model for integrations with other common tools +and services, or provide a marketplace for them. As an [open core project](https://en.wikipedia.org/wiki/Open-core_model), +integrations can live directly inside the product. Learn more about our reasons +for this in our [Product Handbook](/handbook/product/product-principles/#avoid-plugins-and-marketplaces). + +This does not mean we will **never** build a "marketplace" inside of GitLab, it +just means we have no intention of doing that at this time. + +### Integrating "everything" + +There are hundreds of products and services that customers have requested that +we build an integration with, and we sincerely wish we had the time and funding +to be able to build all of them. However, since we are a team of limited size +and there are only so many hours in a day, we are currently focused on creating +the integrations requested by our biggest customers and userbases. + +However, we're happy to [partner with your company](/partners/integrate/) if +you'd like to contribute an integration with your product. As an As an [open core project](https://en.wikipedia.org/wiki/Open-core_model), +anyone in our community is welcome to add the integrations they need. + +## Contributing + +This category develops and maintains specific integrations inside the GitLab +codebase, but that doesn't preclude you and your team from adding your own. At +GitLab, one of our values is that everyone can contribute. If you're looking +to contribute your own integration, or otherwise get involved with features in +the Ecosystem area, [you can find open issues here](https://gitlab.com/groups/gitlab-org/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=group%3A%3Aecosystem&label_name[]=Category%3AIntegrations). + +Feel free to reach out to the team directly if you need guidance or want +feedback on your work by pinging [@deuley](https://gitlab.com/deuley) or +[@gitlab-ecosystem-team](https://gitlab.com/gitlab-org/ecosystem-team) on your +open MR. + +You can read more about our general contribution guidelines [here](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md). + +## Partnership + +If your company is interested in partnering with GitLab, check out the [Partner with GitLab](https://about.gitlab.com/partners/integrate/) +page for more info. + +## Integration design guidelines + +Special considerations apply to integrations that don't apply to building native functionality. The +product handbook [has a set of recommendations and guidelines](/handbook/product#integrate-other-applications-thoughtfully) +to consider when working on these types of projects. + +## Feedback & Requests + +If there's an integration that you'd like to see GitLab offer, or if you have +feedback about an existing integration: please [submit an issue](https://gitlab.com/gitlab-org/gitlab-ce/issues/new?issue%5Btitle%5D=New%20GitLab%20Integration%20with) +with the label `~Category:Integrations`, or contact [@deuley](https://gitlab.com/deuley), +Sr. Product Manager, Ecosystem, on any open issues. diff --git a/source/direction/create/editor_extension/index.html.md b/source/direction/create/editor_extension/index.html.md new file mode 100644 index 00000000..70cd0687 --- /dev/null +++ b/source/direction/create/editor_extension/index.html.md @@ -0,0 +1,106 @@ +--- +layout: markdown_page +title: "Category Direction - Editor Extension" +--- + +- TOC + {:toc} + +## Editor Extension + +| | | +| --- | --- | +| Stage | [Create](/direction/dev/#create) | +| Maturity | [Minimal](/direction/maturity/) | +| Content Last Reviewed | `2020-08-12` | + +### Introduction and how you can help +Thanks for visiting this direction page on Editor Extension. This page belongs to the [Editor](/handbook/product/product-categories/#editor-group) group of the Create stage and is maintained by Kai Armstrong ([E-Mail](mailto:karmstrong@gitlab.com)). + +This direction is constantly evolving and everyone can contribute: + +- Please comment and contribute in the linked issues and epics on this page. Sharing your feedback directly on GitLab.com or submitting a Merge Request to this page are the best ways to contribute to our strategy. +- Please share feedback directly via email, Twitter, or on a video call. If you're a GitLab user and have direct knowledge of your need for Local Development Tools, we'd especially love to hear from you. + +### 概要 + +GitLab supports teams collaborating and building software together, however that collaboration is only available inside GitLab application. + +Developers, on the other hand, spend the majority of their time working in local editors implementing work outlined in issues, responding to merge request feedback and testing/debugging their applications. These tasks are the core of the developer experience, but GitLab is missing from this experience in any integrated way. + +### Target Audience and Experience + + +#### Challenges to address + + +### Where we are headed + +GitLab should support developers closer to where they're doing their meaningful work and enable them to be more efficient in the delivery of that work. + +### Maturity + +### Problems to Solve + +There are many specific problems that can be solved by focusing on local developer tooling: + +1. [Developers working in local editors](https://gitlab.com/groups/gitlab-org/-/epics/2431) +1. Developers working locally with local runtime +1. [Developers working locally with remote runtime](https://gitlab.com/groups/gitlab-org/-/epics/3230) + +### What's Next & Why + +**Next:** Remote Development Environments [&3230](https://gitlab.com/groups/gitlab-org/-/epics/3230) + +Developing a strategy and MVC for enabling developers to test and debug their applications utilizing remote compute will be key in expanding in this path. + +### What is Not Planned Right Now + +We're not currently focused on extensions for any other local editors or IDEs. We recognize there are a variety of these environments and we'll continue to monitor demand and market trends to look for other opportunities to support developers. + +The editor group is also not looking to connect our existing [Web IDE](https://docs.gitlab.com/ee/user/project/web_ide/index.html) to any runtime environments or local tools for further development. We may continue to explore a more advanced Web IDE that could support these itmes in the future. + +### Competitive Landscape + +#### Local Editors + +- [GitHub Pull Requests and Issues](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github) + +#### Local Runtime + +- [Skaffold](https://skaffold.dev/) + +#### Remote Runtime + +- [Okteto](https://okteto.com) +- [Tilt](https://tilt.dev) +- [Dev Pods](https://jenkins-x.io/docs/reference/devpods/) + + + + + + + + + + + + + + + + + + + diff --git a/source/direction/create/gitaly/index.html.md b/source/direction/create/gitaly/index.html.md new file mode 100644 index 00000000..7ddb40f3 --- /dev/null +++ b/source/direction/create/gitaly/index.html.md @@ -0,0 +1,225 @@ +--- +layout: markdown_page +title: "Category Direction - Gitaly" +description: "Gitaly is a Git RPC service for handling all the Git calls made by GitLab. Find more information here!" +canonical_path: "/direction/create/gitaly/" +--- + +- TOC + {:toc} + +## Gitaly + +| Section | Stage | Maturity | Last Reviewed | +| --- | --- | --- | --- | +| [Dev](/direction/dev/) | [Create](https://about.gitlab.com/stages-devops-lifecycle/create/) | Non-marketable | 2020-08-04 | + +## Introduction and how you can help + +The Gitaly direction page belongs to the [Gitaly](/handbook/product/product-categories/#source-code-group) +group of the [Create](/direction/create) stage, +and is maintained by [James Ramsay](https://gitlab.com/jramsay) . + +This strategy is a work in progress, and everyone can contribute. +Please comment and contribute in the linked issues and epics. +Sharing your feedback directly on GitLab.com is the best way to contribute to our strategy and vision. + +- [Issue List](https://gitlab.com/groups/gitlab-org/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=group%3A%3Agitaly) +- [Epic list](https://gitlab.com/groups/gitlab-org/-/epics?label_name[]=group%3A%3Agitaly) + +## 概要 + + + +Gitaly is the service responsible for the storage and maintenance of all Git repositories in GitLab. +Git repositories are essential to GitLab, for [Source Code Management](/direction/create/source-code-managent), [Wikis](/direction/create/wiki),[Snippets](/direction/create/snippets), [Design Management](/direction/create/design-management), [Web IDE](/direction/create/web-ide), and every stage to the DevOps lifecycle to the right of Create - Verify, Release, Package, Release, Configure, Monitor, Secure, and Defend - depend on the project repositories. Because the majority of GitLab capabilities depend on that information stored in Git repositories, performance and availability are of primary importance. + +GitLab is used to store Git repositories by small teams and large enterprises with many terabytes of data. For this reason, Gitaly has been built to scale from small single server GitLab instances, to large high availability architectures. The [recent release of Gitaly Cluster](/releases/2020/05/22/gitlab-13-0-released/#gitaly-cluster-for-high-availability-git-storage) is a major achievement in improving fault tolerance and performance, and is the foundation on which we are continuing to iterate to improve Gitaly for large instances. + +Continued investment in large software projects over many years can result in extremely large Git repositories. Contributing to the development of features like partial clone in Git, and improving Gitaly and GitLab for these enterprise scale repositories is an ongoing area of investment. + +Gitaly provides multiple interface to read and write Git data: + +- Git protocol over SSH, through the GitLab Shell component. +- Git protocol over HTTP, through the GitLab Workhorse component. +- gRPC internally to GitLab components. The public REST and GraphQL APIs to Git data are implemented using these RPCs. + + +