CINXE.COM
Software Development - GitHub Resources
<!doctype html> <html dir="ltr" lang="en-US"> <head> <base href="https://resources.github.com/topics/software-development/"> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'self' analytics.githubassets.com ghcc.githubassets.com js.monitor.azure.com/scripts/c/ms.analytics-web-4.min.js www.youtube.com; style-src 'self' 'unsafe-inline'; connect-src 'self' browser.events.data.microsoft.com collector.githubapp.com edge.fullstory.com rs.fullstory.com; font-src 'self' data:; img-src 'self' data: github.githubassets.com images.ctfassets.net rs.fullstory.com ad.doubleclick.net pixel.quantserve.com sp.analytics.yahoo.com www.facebook.com px.ads.linkedin.com alb.reddit.com px4.ads.linkedin.com adservice.google.com; manifest-src 'self'; frame-src 'self' www.youtube.com player.vimeo.com play.vidyard.com octocaptcha.com; media-src 'self';"> <link rel="canonical" href="https://resources.github.com/topics/software-development/"> <meta name="ha-url" content="https://collector.githubapp.com/resources/collect"> <meta name="ghcc-locale" content="en-US"> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> <link rel="manifest" href="/site.webmanifest"> <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#ab3f8b"> <meta name="apple-mobile-web-app-title" content="GitHub Resources"> <meta name="application-name" content="GitHub Resources"> <meta name="msapplication-TileColor" content="#ab3f8b"> <meta name="theme-color" content="#151920"> <meta name="description" content="From setup to optimization, learn how to use GitHub to get the job done."> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="@github"> <meta name="twitter:creator" content="@GitHub"> <meta property="og:description" content="From setup to optimization, learn how to use GitHub to get the job done."> <meta property="og:url" content="https://resources.github.com/topics/software-development/"> <meta property="og:type" content="website"> <meta property="og:locale" content="en_US"> <meta property="og:image" content="https://resources.github.com/default-og-image.jpg"> <meta property="og:image:alt" content="GitHub Resources"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="630"> <meta name="ha-page-type" content="marketing"> <title>Software Development - GitHub Resources</title> <meta name="robots" content="index,follow"> <meta property="og:title" content="Software Development - GitHub Resources"> <meta property="og:site_name" content="GitHub Resources"> <meta name="next-head-count" content="32"> <link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"> <link rel="preload" href="/_next/static/css/238ca3e7f90c682f.css" as="style"> <link rel="stylesheet" href="/_next/static/css/238ca3e7f90c682f.css" data-n-g=""> <noscript data-n-css=""></noscript> <script defer nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script> <script src="https://ghcc.githubassets.com/ghcc.min.js" defer data-nscript="beforeInteractive"></script> <script src="/_next/static/chunks/webpack-38cee4c0e358b1a3.js" defer></script> <script src="/_next/static/chunks/framework-49c6cecf1f6d5795.js" defer></script> <script src="/_next/static/chunks/main-43041a92397b9ba5.js" defer></script> <script src="/_next/static/chunks/pages/_app-4918fa68b0b899e4.js" defer></script> <script src="/_next/static/chunks/pages/topics/%5Bslug%5D-3d4606bc4b328bfe.js" defer></script> <script src="/_next/static/ZokmF09g2SkORXwoG0TZr/_buildManifest.js" defer></script> <script src="/_next/static/ZokmF09g2SkORXwoG0TZr/_ssgManifest.js" defer></script> <meta http-equiv="X-Translated-By" content="Google"> <meta http-equiv="X-Translated-To" content="ko"> <script type="text/javascript" src="https://www.gstatic.com/_/translate_http/_/js/k=translate_http.tr.en_GB.1hbgkFx4Qn8.O/am=DgY/d=1/rs=AN8SPfqlmAPxwfG457BPbRXwNq39oSMGHg/m=corsproxy" data-sourceurl="https://resources.github.com/topics/software-development/"></script> <link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200" rel="stylesheet"> <script type="text/javascript" src="https://www.gstatic.com/_/translate_http/_/js/k=translate_http.tr.en_GB.1hbgkFx4Qn8.O/am=DgY/d=1/exm=corsproxy/ed=1/rs=AN8SPfqlmAPxwfG457BPbRXwNq39oSMGHg/m=phishing_protection" data-phishing-protection-enabled="false" data-forms-warning-enabled="true" data-source-url="https://resources.github.com/topics/software-development/"></script> <meta name="robots" content="none"> </head> <body> <script type="text/javascript" src="https://www.gstatic.com/_/translate_http/_/js/k=translate_http.tr.en_GB.1hbgkFx4Qn8.O/am=DgY/d=1/exm=corsproxy,phishing_protection/ed=1/rs=AN8SPfqlmAPxwfG457BPbRXwNq39oSMGHg/m=navigationui" data-environment="prod" data-proxy-url="https://resources-github-com.translate.goog" data-proxy-full-url="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB" data-source-url="https://resources.github.com/topics/software-development/" data-source-language="pl" data-target-language="ko" data-display-language="en-GB" data-detected-source-language="" data-is-source-untranslated="false" data-source-untranslated-url="https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://resources.github.com/topics/software-development/&anno=2" data-client="tr"></script> <div id="__next"> <div data-color-mode="light" class="d-flex flex-column"> <div id="site-navigation-container" data-color-mode="light" data-light-theme="light" style="z-index:999" class="site-navigation-container position-fixed top-0 width-full color-bg-transparent"> <div class="position-relative site-navigation-container--background"> <div class="position-absolute nav-dropdown color-bg-white" data-color-mode="light" data-light-theme="light"> <div class="container-xl"> <form class="d-flex flex-column"> <button class="btn-link flex-self-end Link--muted" type="button" aria-label="Close dropdown" data-analytics-click="Search,search pane closed, query: "> <svg aria-hidden="true" role="img" class="octicon octicon-x" viewbox="0 0 24 24" width="36" height="36" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"> <path fill-rule="evenodd" d="M5.72 5.72a.75.75 0 011.06 0L12 10.94l5.22-5.22a.75.75 0 111.06 1.06L13.06 12l5.22 5.22a.75.75 0 11-1.06 1.06L12 13.06l-5.22 5.22a.75.75 0 01-1.06-1.06L10.94 12 5.72 6.78a.75.75 0 010-1.06z"></path> </svg></button> <div class="d-flex flex-column flex-md-row flex-items-center"> <input type="text" class="search-input form-control input-lg color-bg-transparent color-fg-muted flex-1 width-full mb-3 mb-md-0 mr-0 mr-md-3" placeholder="What are you looking for?" autofocus value=""><button class="btn-mktg arrow-target-mktg flex-shrink-0 width-full width-md-auto">Search</button> </div> </form> </div> </div> <ul class="position-absolute nav-dropdown mobile-nav pt-8 pb-4 color-bg-dark color-fg-white d-lg-none" data-color-mode="dark" data-dark-theme="dark"> <div class="container-sm px-6 overflow-auto height-full"> <div class="d-flex flex-column color-bg-dark height-full flex-justify-between"> <div></div> <div class="d-flex flex-column d-md-none"></div> </div> </div> </ul> <header data-testid="site-navigation-mobile" class="site-navigation d-lg-none"> <nav class="container-xl py-1" aria-label="Site navigation"> <div class="d-flex flex-items-center flex-justify-between"> <a title="Visit GitHub Resources" class="gh-icon Header-link" data-testid="navigation-home-link-mobile" href="https://resources-github-com.translate.goog/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"> <svg aria-hidden="true" role="img" class="octicon octicon-mark-github" viewbox="0 0 16 16" width="32" height="32" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"> <path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path> </svg></a> <div class="d-none d-md-flex d-lg-none"></div> </div> </nav> </header> <header data-testid="site-navigation" class="site-navigation"> <nav class="container-xl py-1 d-none d-lg-flex flex-items-center flex-justify-between" aria-label="Site navigation"> <ul class="d-flex flex-items-center"> <li><a href="https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://github.com" target="_blank" rel="noreferrer" class="gh-icon Header-link d-none d-lg-block py-3 position-relative" aria-label="GitHub homepage"> <svg aria-hidden="true" role="img" class="nav-back-arrow position-absolute" viewbox="0 0 24 24" width="32" height="32" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"> <path fill-rule="evenodd" d="M15.28 5.22a.75.75 0 00-1.06 0l-6.25 6.25a.75.75 0 000 1.06l6.25 6.25a.75.75 0 101.06-1.06L9.56 12l5.72-5.72a.75.75 0 000-1.06z"></path> </svg> <svg aria-hidden="true" role="img" class="octicon octicon-mark-github" viewbox="0 0 16 16" width="32" height="32" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"> <path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path> </svg></a></li> <li class="d-flex flex-items-center"><span class="ml-3 f1-mktg f2-md-mktg opacity-30">/</span><a data-testid="navigation-home-link" data-analytics-click="Navigation, go to homepage" class="d-none d-lg-inline-block Header-link font-weight-semibold p-3 f2" aria-label="GitHub resources homepage" href="https://resources-github-com.translate.goog/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Resources</a></li> </ul> <ul class="d-flex flex-items-center"></ul> <div class="site-navigation--background position-absolute top-0 bottom-0 left-0 right-0"></div> </nav> </header> </div> </div> <main class="flex-1 position-relative"> <section class="section"> <div class="container-xl"> <h1 class="h3-mktg mb-3">Software Development</h1> <div class="d-flex flex-items-start" data-testid="page-thumbnail-list"> <aside class="articles-sidebar sidebar d-none d-md-block"> <div class="mb-4 d-flex flex-column flex-items-start"> <h3 class="text-mono gradient-fg-purple-red f4-mktg mb-3">Type</h3><a class="py-1 mb-1 Link--primary link-mktg arrow-target-mktg font-weight-medium color-fg-accent" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">All types<!-- --> (<!-- -->10<!-- -->) <svg aria-hidden="true" role="presentation" xmlns="http://www.w3.org/2000/svg" class="octicon arrow-symbol-mktg" width="16" height="16" viewbox="0 0 16 16" fill="none"> <path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path> </svg></a><a class="py-1 mb-1 Link--primary link-mktg arrow-target-mktg font-weight-medium " href="https://resources-github-com.translate.goog/topics/software-development/?type=article&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Articles<!-- --> (<!-- -->5<!-- -->)</a><a class="py-1 mb-1 Link--primary link-mktg arrow-target-mktg font-weight-medium " href="https://resources-github-com.translate.goog/topics/software-development/?type=event&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Events<!-- --> (<!-- -->5<!-- -->)</a> </div> </aside> <div class="Layout-main"> <div class="grid grid-cols-1 grid-cols-md-2 gap-8"> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: GitHub Actions Cheat Sheet" href="https://resources-github-com.translate.goog/actions/github-actions-cheat/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://resources-github-com.translate.goog/assets/images/defaults/default-1.png?w=544&q=75&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB 544w,https://resources-github-com.translate.goog/assets/images/defaults/default-1.png?w=768&q=75&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB 768w,https://resources-github-com.translate.goog/assets/images/defaults/default-1.png?w=1012&q=75&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB 1012w,https://resources-github-com.translate.goog/assets/images/defaults/default-1.png?w=1280&q=75&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB 1280w" src="/assets/images/defaults/default-1.png?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>GitHub Actions Cheat Sheet</span></h3><time class="text-mono mb-3 color-fg-muted">March 12, 2020</time> <p class="f3-mktg color-fg-muted">Everything you need to know about getting started with GitHub Actions</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a> </div> </div> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: Integrating GitHub with Sentry to Increase Speed to Resolution " href="https://resources-github-com.translate.goog/actions/integrating-with-sentry/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://resources-github-com.translate.goog/assets/images/defaults/default-2.png?w=544&q=75&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB 544w,https://resources-github-com.translate.goog/assets/images/defaults/default-2.png?w=768&q=75&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB 768w,https://resources-github-com.translate.goog/assets/images/defaults/default-2.png?w=1012&q=75&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB 1012w,https://resources-github-com.translate.goog/assets/images/defaults/default-2.png?w=1280&q=75&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB 1280w" src="/assets/images/defaults/default-2.png?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>Integrating GitHub with Sentry to Increase Speed to Resolution </span></h3><time class="text-mono mb-3 color-fg-muted">August 8, 2022</time> <p class="f3-mktg color-fg-muted">Whether you’re already using Sentry and GitHub separately, or building a deployment workflow for the first time, you can follow these steps to create an automated workflow for your team</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a> </div> </div> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: What is GitHub Discussions? A complete guide" href="https://resources-github-com.translate.goog/devops/process/planning/discussions/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://resources-github-com.translate.goog/assets/images/defaults/default-3.png?w=544&q=75&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB 544w,https://resources-github-com.translate.goog/assets/images/defaults/default-3.png?w=768&q=75&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB 768w,https://resources-github-com.translate.goog/assets/images/defaults/default-3.png?w=1012&q=75&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB 1012w,https://resources-github-com.translate.goog/assets/images/defaults/default-3.png?w=1280&q=75&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB 1280w" src="/assets/images/defaults/default-3.png?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>What is GitHub Discussions? A complete guide</span></h3><time class="text-mono mb-3 color-fg-muted">January 19, 2022</time> <p class="f3-mktg color-fg-muted">GitHub Discussions brings community forums right to your public or private repositories on GitHub making it easy to communicate with your community, ask and answer questions, share updates, and more. Here’s what you need to know about GitHub Discussions, best practices, and how other open source projects are using it.</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a> </div> </div> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: Devoxx Belgium 2024" href="https://resources-github-com.translate.goog/events/devoxx-belgium-2024/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/2PbLYsOL4kK0KdgXFWqaL3/8b51e965e9a86e09d6843b353d12bba6/devoxxBelgium2024.png?w%3D544%26q%3D75 544w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/2PbLYsOL4kK0KdgXFWqaL3/8b51e965e9a86e09d6843b353d12bba6/devoxxBelgium2024.png?w%3D768%26q%3D75 768w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/2PbLYsOL4kK0KdgXFWqaL3/8b51e965e9a86e09d6843b353d12bba6/devoxxBelgium2024.png?w%3D1012%26q%3D75 1012w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/2PbLYsOL4kK0KdgXFWqaL3/8b51e965e9a86e09d6843b353d12bba6/devoxxBelgium2024.png?w%3D1280%26q%3D75 1280w" src="//images.ctfassets.net/wfutmusr1t3h/2PbLYsOL4kK0KdgXFWqaL3/8b51e965e9a86e09d6843b353d12bba6/devoxxBelgium2024.png?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>Devoxx Belgium 2024</span></h3><time class="text-mono mb-3 color-fg-muted">September 6, 2024</time> <p class="f3-mktg color-fg-muted">Devoxx Belgium 2024 (21st edition), a 5-day technology conference, is expected to draw over 3,500 attendees. With tickets selling out in just a few seconds last year, we anticipate the same level of excitement and rapid sell-out this year!</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/devops/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">DevOps</a>, <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a>, <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/security/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Security</a>, <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/github-advanced-security/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">GitHub Advanced Security</a>, <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/ai/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">AI</a>, <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/security-lab/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Security Lab</a> </div> </div> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: Global Game Jam" href="https://resources-github-com.translate.goog/events/global-game-jam/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/355XY9EJntM112jsmF0SAh/e56f3921226998e966b92c6ed0df2431/global-game-jam.png?w%3D544%26q%3D75 544w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/355XY9EJntM112jsmF0SAh/e56f3921226998e966b92c6ed0df2431/global-game-jam.png?w%3D768%26q%3D75 768w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/355XY9EJntM112jsmF0SAh/e56f3921226998e966b92c6ed0df2431/global-game-jam.png?w%3D1012%26q%3D75 1012w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/355XY9EJntM112jsmF0SAh/e56f3921226998e966b92c6ed0df2431/global-game-jam.png?w%3D1280%26q%3D75 1280w" src="//images.ctfassets.net/wfutmusr1t3h/355XY9EJntM112jsmF0SAh/e56f3921226998e966b92c6ed0df2431/global-game-jam.png?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>Global Game Jam</span></h3><time class="text-mono mb-3 color-fg-muted">July 30, 2024</time> <p class="f3-mktg color-fg-muted">The Global Game Jam® (GGJ®) is the world's largest game creation event taking place in physical locations across the globe. Think of it as a 48 hour hackathon focused on game development around a theme.</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a> </div> </div> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: MLH Hackcon 2024" href="https://resources-github-com.translate.goog/events/hackcon24/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/2R9YqFJnNCWm1rHXcuiAx6/e28a9fc6b27569dbfbdc4577cb434f8c/1200x900__1_-min.png?w%3D544%26q%3D75 544w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/2R9YqFJnNCWm1rHXcuiAx6/e28a9fc6b27569dbfbdc4577cb434f8c/1200x900__1_-min.png?w%3D768%26q%3D75 768w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/2R9YqFJnNCWm1rHXcuiAx6/e28a9fc6b27569dbfbdc4577cb434f8c/1200x900__1_-min.png?w%3D1012%26q%3D75 1012w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/2R9YqFJnNCWm1rHXcuiAx6/e28a9fc6b27569dbfbdc4577cb434f8c/1200x900__1_-min.png?w%3D1280%26q%3D75 1280w" src="//images.ctfassets.net/wfutmusr1t3h/2R9YqFJnNCWm1rHXcuiAx6/e28a9fc6b27569dbfbdc4577cb434f8c/1200x900__1_-min.png?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>MLH Hackcon 2024</span></h3><time class="text-mono mb-3 color-fg-muted">July 29, 2024</time> <p class="f3-mktg color-fg-muted">Hackcon brings together 300+ hackathon organizers and campus tech leaders for two days of interactive sessions on community building, event planning, and the hacker experience. Come for the learning, stay for the camp activities!</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a> </div> </div> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: Research Software Engineering Conference 2024" href="https://resources-github-com.translate.goog/events/rsec2024/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/EvC1Pp5HiKmPtWxSrHipz/863f0edbb075dac57e987d96f9e3fa5b/Screenshot_2024-08-19_at_11.53.56_AM.png?w%3D544%26q%3D75 544w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/EvC1Pp5HiKmPtWxSrHipz/863f0edbb075dac57e987d96f9e3fa5b/Screenshot_2024-08-19_at_11.53.56_AM.png?w%3D768%26q%3D75 768w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/EvC1Pp5HiKmPtWxSrHipz/863f0edbb075dac57e987d96f9e3fa5b/Screenshot_2024-08-19_at_11.53.56_AM.png?w%3D1012%26q%3D75 1012w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/EvC1Pp5HiKmPtWxSrHipz/863f0edbb075dac57e987d96f9e3fa5b/Screenshot_2024-08-19_at_11.53.56_AM.png?w%3D1280%26q%3D75 1280w" src="//images.ctfassets.net/wfutmusr1t3h/EvC1Pp5HiKmPtWxSrHipz/863f0edbb075dac57e987d96f9e3fa5b/Screenshot_2024-08-19_at_11.53.56_AM.png?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>Research Software Engineering Conference 2024</span></h3><time class="text-mono mb-3 color-fg-muted">August 19, 2024</time> <p class="f3-mktg color-fg-muted">The international Research Software Engineering community convenes for an exciting week of sessions, speakers, and networking. I will bring together a mix of hundreds of engineers, developers, researchers, community managers, funders and educators on a shared journey of learning and growth.</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/opensource/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Open Source</a>, <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a>, <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/tools/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Tools</a> </div> </div> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: Software development in the financial sector—Security is important" href="https://resources-github-com.translate.goog/financial-services/secure-software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://resources-github-com.translate.goog/assets/images/defaults/default-9.png?w=544&q=75&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB 544w,https://resources-github-com.translate.goog/assets/images/defaults/default-9.png?w=768&q=75&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB 768w,https://resources-github-com.translate.goog/assets/images/defaults/default-9.png?w=1012&q=75&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB 1012w,https://resources-github-com.translate.goog/assets/images/defaults/default-9.png?w=1280&q=75&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB 1280w" src="/assets/images/defaults/default-9.png?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>Software development in the financial sector—Security is important</span></h3><time class="text-mono mb-3 color-fg-muted">August 7, 2018</time> <p class="f3-mktg color-fg-muted">Secure financial software development is important and failure to properly safeguard data can have profound impact on a company.</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a> </div> </div> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: GitHub Winterfest 2023" href="https://resources-github-com.translate.goog/github-winterfest-2023-webinar/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/3WR1iAatDxRvTNE7YjW40i/c64ec229d9ac9a3b8373876927340b8c/Winterfest_Banner.jpg?w%3D544%26q%3D75 544w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/3WR1iAatDxRvTNE7YjW40i/c64ec229d9ac9a3b8373876927340b8c/Winterfest_Banner.jpg?w%3D768%26q%3D75 768w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/3WR1iAatDxRvTNE7YjW40i/c64ec229d9ac9a3b8373876927340b8c/Winterfest_Banner.jpg?w%3D1012%26q%3D75 1012w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/3WR1iAatDxRvTNE7YjW40i/c64ec229d9ac9a3b8373876927340b8c/Winterfest_Banner.jpg?w%3D1280%26q%3D75 1280w" src="//images.ctfassets.net/wfutmusr1t3h/3WR1iAatDxRvTNE7YjW40i/c64ec229d9ac9a3b8373876927340b8c/Winterfest_Banner.jpg?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>GitHub Winterfest 2023</span></h3><time class="text-mono mb-3 color-fg-muted">December 5, 2023</time> <p class="f3-mktg color-fg-muted">That's a wrap! Thank you for joining us at GitHub Winterfest 2023!</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/ai/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">AI</a>, <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a>, <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/github-enterprise/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">GitHub Enterprise</a> </div> </div> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: Best practices for a collaborative software development culture" href="https://resources-github-com.translate.goog/innersource/best-practices-collaborative-software-dev/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://resources-github-com.translate.goog/assets/images/defaults/default-11.png?w=544&q=75&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB 544w,https://resources-github-com.translate.goog/assets/images/defaults/default-11.png?w=768&q=75&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB 768w,https://resources-github-com.translate.goog/assets/images/defaults/default-11.png?w=1012&q=75&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB 1012w,https://resources-github-com.translate.goog/assets/images/defaults/default-11.png?w=1280&q=75&_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB 1280w" src="/assets/images/defaults/default-11.png?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>Best practices for a collaborative software development culture</span></h3><time class="text-mono mb-3 color-fg-muted">July 22, 2019</time> <p class="f3-mktg color-fg-muted">Collaboration, transparency, and code reuse aren’t just found in open source communities.</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a> </div> </div> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: How to improve code with code reviews" href="https://resources-github-com.translate.goog/software-development/how-to-improve-code-with-code-reviews/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/2spsdxzN4vkemuZIImw0UH/c2ae719a82c842dbf04eeb8297da86b4/c2.webp?w%3D544%26q%3D75 544w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/2spsdxzN4vkemuZIImw0UH/c2ae719a82c842dbf04eeb8297da86b4/c2.webp?w%3D768%26q%3D75 768w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/2spsdxzN4vkemuZIImw0UH/c2ae719a82c842dbf04eeb8297da86b4/c2.webp?w%3D1012%26q%3D75 1012w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/2spsdxzN4vkemuZIImw0UH/c2ae719a82c842dbf04eeb8297da86b4/c2.webp?w%3D1280%26q%3D75 1280w" src="//images.ctfassets.net/wfutmusr1t3h/2spsdxzN4vkemuZIImw0UH/c2ae719a82c842dbf04eeb8297da86b4/c2.webp?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>How to improve code with code reviews</span></h3> <p class="f3-mktg color-fg-muted">Learn about code reviews and gain insights into how they’re essential to increasing code quality. See how code review tools, including AI-powered tools, help development teams streamline the code review process, identify issues, and help developers ship great software faster.</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a> </div> </div> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: Modernizing COBOL with GitHub Copilot" href="https://resources-github-com.translate.goog/software-development/modernizing-cobol-with-github-copilot/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp?w%3D544%26q%3D75 544w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp?w%3D768%26q%3D75 768w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp?w%3D1012%26q%3D75 1012w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp?w%3D1280%26q%3D75 1280w" src="//images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>Modernizing COBOL with GitHub Copilot</span></h3> <p class="f3-mktg color-fg-muted">Legacy codebases, like those written in COBOL, serve as the backbone of many established industries. While these systems are reliable, they are often attached to outdated paradigms that challenge integration with newer technologies, lead to increased maintenance costs, and face a diminishing talent pool for support. Migrating from COBOL to a more modern language is a transformative and challenging process.</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a> </div> </div> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: Regression Testing: Definition, Types, and Tools" href="https://resources-github-com.translate.goog/software-development/regression-testing-definition-types-and-tools/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp?w%3D544%26q%3D75 544w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp?w%3D768%26q%3D75 768w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp?w%3D1012%26q%3D75 1012w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp?w%3D1280%26q%3D75 1280w" src="//images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>Regression Testing: Definition, Types, and Tools</span></h3> <p class="f3-mktg color-fg-muted">Regression testing ensures that previously developed and tested software performs similarly after testers or developers change it. Get an overview of regression testing, explore its role in software development, and learn more about its importance for maintaining software stability.</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a> </div> </div> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: Tools and techniques for effective code documentation" href="https://resources-github-com.translate.goog/software-development/tools-and-techniques-for-effective-code-documentation/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp?w%3D544%26q%3D75 544w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp?w%3D768%26q%3D75 768w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp?w%3D1012%26q%3D75 1012w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp?w%3D1280%26q%3D75 1280w" src="//images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>Tools and techniques for effective code documentation</span></h3> <p class="f3-mktg color-fg-muted">Get a comprehensive overview of code documentation and learn why it’s essential for delivering quality software. Gain valuable insights into best practices, strategies, and tools for well-documented code, including how AI helps developers write code documentation more efficiently.</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a> </div> </div> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: What is a programming language?" href="https://resources-github-com.translate.goog/software-development/what-is-a-programming-language/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp?w%3D544%26q%3D75 544w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp?w%3D768%26q%3D75 768w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp?w%3D1012%26q%3D75 1012w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp?w%3D1280%26q%3D75 1280w" src="//images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>What is a programming language?</span></h3> <p class="f3-mktg color-fg-muted">At its core, a programming language is a set of instructions that enables humans to communicate with computers—using a series of symbols that serve as a bridge that allows humans to turn our ideas into instructions computers can understand. Like spoken languages, each language has its own unique syntax, structure, vocabulary, and even slang or shortcuts.</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a> </div> </div> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: Understanding the SDLC: Software Development Lifecycle Explained" href="https://resources-github-com.translate.goog/software-development/what-is-sdlc/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp?w%3D544%26q%3D75 544w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp?w%3D768%26q%3D75 768w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp?w%3D1012%26q%3D75 1012w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp?w%3D1280%26q%3D75 1280w" src="//images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>Understanding the SDLC: Software Development Lifecycle Explained</span></h3> <p class="f3-mktg color-fg-muted">Learn about the software development lifecycle (SDLC) and gain valuable insights into its essential phases, methodologies, and best practices. Enhance your understanding of this crucial process to drive successful software development projects.</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a> </div> </div> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: What is software architecture?" href="https://resources-github-com.translate.goog/software-development/what-is-software-architecture/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp?w%3D544%26q%3D75 544w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp?w%3D768%26q%3D75 768w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp?w%3D1012%26q%3D75 1012w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp?w%3D1280%26q%3D75 1280w" src="//images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>What is software architecture?</span></h3> <p class="f3-mktg color-fg-muted">Learn how software architecture helps developers build scalable, efficient systems using best practices, key components, and common styles and patterns.</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a> </div> </div> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: What is software development?" href="https://resources-github-com.translate.goog/software-development/what-is-software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp?w%3D544%26q%3D75 544w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp?w%3D768%26q%3D75 768w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp?w%3D1012%26q%3D75 1012w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp?w%3D1280%26q%3D75 1280w" src="//images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>What is software development?</span></h3> <p class="f3-mktg color-fg-muted">Explore the world of software development in this comprehensive guide for beginners. Discover what software development is and why it matters, delve into key concepts, uncover the crucial steps in the development process, and learn how software shapes industries and technologies.</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a> </div> </div> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: What is software testing?" href="https://resources-github-com.translate.goog/software-development/what-is-software-testing/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/4h4pRGrs2KDTg0fBoUPTc3/82068b450fb4cd43ca4b5b217d6cfe2b/Productivity-DarkMode-3.webp?w%3D544%26q%3D75 544w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/4h4pRGrs2KDTg0fBoUPTc3/82068b450fb4cd43ca4b5b217d6cfe2b/Productivity-DarkMode-3.webp?w%3D768%26q%3D75 768w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/4h4pRGrs2KDTg0fBoUPTc3/82068b450fb4cd43ca4b5b217d6cfe2b/Productivity-DarkMode-3.webp?w%3D1012%26q%3D75 1012w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/4h4pRGrs2KDTg0fBoUPTc3/82068b450fb4cd43ca4b5b217d6cfe2b/Productivity-DarkMode-3.webp?w%3D1280%26q%3D75 1280w" src="//images.ctfassets.net/wfutmusr1t3h/4h4pRGrs2KDTg0fBoUPTc3/82068b450fb4cd43ca4b5b217d6cfe2b/Productivity-DarkMode-3.webp?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>What is software testing?</span></h3> <p class="f3-mktg color-fg-muted">Software testing is the systematic process of evaluating and verifying software applications to ensure they function correctly and meet specific requirements.</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a> </div> </div> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: What is technical debt?" href="https://resources-github-com.translate.goog/software-development/what-is-technical-debt/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp?w%3D544%26q%3D75 544w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp?w%3D768%26q%3D75 768w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp?w%3D1012%26q%3D75 1012w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp?w%3D1280%26q%3D75 1280w" src="//images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>What is technical debt?</span></h3> <p class="f3-mktg color-fg-muted">Understand the impact of technical debt on software development. Learn how to manage and mitigate technical debt for long-term code quality and maintainability.</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a> </div> </div> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: What is Version Control?" href="https://resources-github-com.translate.goog/software-development/what-is-version-control/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/22ohfL7Trxi1L2hqgCZx3F/2f55ebd77a97e2b2081c61484f9ed1a6/Productivity-LightMode-2.webp?w%3D544%26q%3D75 544w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/22ohfL7Trxi1L2hqgCZx3F/2f55ebd77a97e2b2081c61484f9ed1a6/Productivity-LightMode-2.webp?w%3D768%26q%3D75 768w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/22ohfL7Trxi1L2hqgCZx3F/2f55ebd77a97e2b2081c61484f9ed1a6/Productivity-LightMode-2.webp?w%3D1012%26q%3D75 1012w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/22ohfL7Trxi1L2hqgCZx3F/2f55ebd77a97e2b2081c61484f9ed1a6/Productivity-LightMode-2.webp?w%3D1280%26q%3D75 1280w" src="//images.ctfassets.net/wfutmusr1t3h/22ohfL7Trxi1L2hqgCZx3F/2f55ebd77a97e2b2081c61484f9ed1a6/Productivity-LightMode-2.webp?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>What is Version Control?</span></h3> <p class="f3-mktg color-fg-muted">Learn how version control systems and software help track changes, support collaboration, and ensure code integrity throughout the development process.</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a> </div> </div> <div class="resource-card animatable animate-fade-up " data-testid="page-thumbnail"> <a class="resource-card-overlay-link" aria-label="Go to page: What is software engineering?" href="https://resources-github-com.translate.goog/software-engineering/what-is-software-engineering/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB"></a><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:52.5%"></span><img alt="" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="responsive" class="resource-card-image" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover"> <noscript> <img alt="" loading="lazy" decoding="async" data-nimg="responsive" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%;object-fit:cover" class="resource-card-image" sizes="100vw" srcset="https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/22ohfL7Trxi1L2hqgCZx3F/2f55ebd77a97e2b2081c61484f9ed1a6/Productivity-LightMode-2.webp?w%3D544%26q%3D75 544w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/22ohfL7Trxi1L2hqgCZx3F/2f55ebd77a97e2b2081c61484f9ed1a6/Productivity-LightMode-2.webp?w%3D768%26q%3D75 768w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/22ohfL7Trxi1L2hqgCZx3F/2f55ebd77a97e2b2081c61484f9ed1a6/Productivity-LightMode-2.webp?w%3D1012%26q%3D75 1012w,https://translate.google.com/website?sl=pl&tl=ko&hl=en-GB&u=https://images.ctfassets.net/wfutmusr1t3h/22ohfL7Trxi1L2hqgCZx3F/2f55ebd77a97e2b2081c61484f9ed1a6/Productivity-LightMode-2.webp?w%3D1280%26q%3D75 1280w" src="//images.ctfassets.net/wfutmusr1t3h/22ohfL7Trxi1L2hqgCZx3F/2f55ebd77a97e2b2081c61484f9ed1a6/Productivity-LightMode-2.webp?w=1280&q=75"> </noscript></span> <h3 class="h4-mktg font-weight-semibold heading"><span>What is software engineering?</span></h3> <p class="f3-mktg color-fg-muted">Software engineering is the job of designing, developing, testing, and maintaining software applications and systems.</p> <div class="text-mono f5 mt-4"> <a class="Link--primary no-underline resource-card-tag" href="https://resources-github-com.translate.goog/topics/software-development/?_x_tr_sl=pl&_x_tr_tl=ko&_x_tr_hl=en-GB">Software Development</a> </div> </div> </div> </div> </div> </div> </section> </main> </div> </div> <script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"topic":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}},"pages":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6Nqduj185GQThUH5ZGp036","type":"Entry","createdAt":"2023-08-24T13:15:05.363Z","updatedAt":"2024-02-21T16:25:53.838Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":3,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/actions/github-actions-cheat","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4O4manbELTpGbKm6dKuYbi","type":"Entry","createdAt":"2021-11-19T17:33:34.822Z","updatedAt":"2024-10-03T12:39:01.023Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":63,"revision":29,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"resourceContainer"}},"locale":"en-US"},"fields":{"internalTitle":"Resource Page for /actions/github-actions-cheat","path":"/actions/github-actions-cheat","title":"GitHub Actions Cheat Sheet","description":"Everything you need to know about getting started with GitHub Actions","body":"\nGitHub Actions help you automate your software development workflows in the same place you store and collaborate on code. Individual actions are reusable pieces of code that let you build, test, package, or deploy projects on GitHub. But you can also use them to automate any step of your workflow.\n\n\n\u003ch3 style=\"padding-bottom: 15px; color: #586069;\"\u003e\n How to get started in four simple steps\n\u003c/h3\u003e\n\n\u003col\u003e\n \u003cli\u003e\u003cb\u003eClick the “Actions” tab in your repository\u003c/b\u003e\u003cbr\u003e\n GitHub Actions is tightly integrated with your code and with the rest of the experiences on GitHub.\n \u003c/li\u003e\n \u003cli\u003e\u003cb\u003eChoose the workflow that’s best for your type of project\u003c/b\u003e\u003cbr\u003e\n GitHub Actions offers helpful workflow templates to get you started, including templates for Node.js, Rust, .NET Core, and more.\n \u003c/li\u003e\n \u003cli\u003e\u003cb\u003eCustomize your workflow\u003c/b\u003e\u003cbr\u003e\n You can start with the workflow templates that we provide, and then you can customize them to your project’s exact requirements.\n \u003c/li\u003e\n \u003cli\u003e\u003cb\u003eOnce you’ve chosen your workflow, press the “start commit” button\u003c/b\u003e\u003cbr\u003e\n Your workflow configuration lives in your repository, so the build definition is versioned alongside the finished code.\n \u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e\n GitHub Actions guide: \u003ca href=\"https://help.github.com/en/actions\"\u003ehttps://help.github.com/en/actions\u003c/a\u003e\n \u003cbr\u003e\n Questions and answers on GitHub Actions: \u003ca href=\"https://github.community\"\u003egithub.community\u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch3 style=\"padding-bottom: 15px; color: #586069;\"\u003e\n Helpful terms to know\n\u003c/h3\u003e\n\u003cp\u003e\n \u003cb\u003eAction\u003c/b\u003e\u003cbr\u003e\n A program that becomes a reusable component to be used in workflows. Actions can install software for the environment, set up authentication, or automate complex sets of tasks. You can find actions in the GitHub Marketplace, or create your own and share them with your community.\n\u003c/p\u003e \n\u003cp\u003e\n \u003cb\u003eWorkflow\u003c/b\u003e\u003cbr\u003e\n A configurable, automated process that you can use in your repository to build, test, package, release, or deploy your project. Workflows are made up of one or more “jobs” and can be triggered by GitHub events.\n\u003c/p\u003e\n\u003cp\u003e\n \u003cb\u003eContinuous integration (CI)\u003c/b\u003e\u003cbr\u003e\n The software development practice of frequently committing small code changes to a shared repository. With GitHub Actions, you can create custom CI workflows that automatically build and test your code. From your repository, you can view the status of your code changes and detailed logs for each action in your workflow. CI saves developers time by providing immediate feedback on code changes to detect and resolve bugs faster.\n\u003c/p\u003e\n\u003cp\u003e\n \u003cb\u003eYAML\u003c/b\u003e\u003cbr\u003e\n YAML stands for “Yet Another Markup Language”. It’s a human-readable markup language commonly used for configuration files, especially by CI- and \u003ca href=\"https://resources.github.com/devops\"\u003eDevOps\u003c/a\u003e-focused software tools. GitHub Actions uses YAML as the basis of its configuration workflows.\n\u003c/p\u003e\n\u003cp\u003e\n \u003cb\u003eWorkflow file\u003c/b\u003e\u003cbr\u003e \n The configuration file that defines your GitHub Actions workflow. This is written in YAML and lives inside your GitHub repository in the \u003ci\u003e.github/workflows\u003c/i\u003e directory. Each file in that directory that is named with a \u003ci\u003e.yaml\u003c/i\u003e extension will define a unique workflow.\n\u003c/p\u003e\n\n\u003ch3 style=\"padding-bottom: 15px; color: #586069;\"\u003e\n Example workflow file\n\u003c/h3\u003e\n\n```yaml\nname: CI for Node.js Project\non:\n push:\n branches: [ master ]\n pull_request:\n branches: [ master ]\njobs:\n build:\n runs-on: ubuntu-latest\n name: Build and Test\n steps:\n - uses: actions/checkout@v2\n name: Check out repository\n - uses: actions/setup-node@v1\n name: Set up Node.js\n with:\n node-version: 12\n - run: |\n npm ci\n npm run build\n npm test\n name: Build and Test\n```\n\n\u003ch4\u003e\n An explanation of this example workflow:\n\u003c/h4\u003e\n\u003cp\u003e\n \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003e\u003cb\u003ename\u003c/b\u003e\u003c/i\u003e\u003c/font\u003e\u003cbr\u003e\n The name of your workflow will be displayed on your repository’s actions page.\n\u003c/p\u003e\n\u003cp\u003e\n \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003e\u003cb\u003eon\u003c/b\u003e\u003c/i\u003e\u003c/font\u003e\u003cbr\u003e\n The events that occur on GitHub that will cause your workflow to be executed. For example, you can run your workflow on \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003epush\u003c/i\u003e\u003c/font\u003e and \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003epull_request\u003c/i\u003e\u003c/font\u003e triggers, which will let you build your code and run your tests in a \u003ca href=\"https://resources.github.com/ci-cd\"\u003eContinuous Integration\u003c/a\u003e workflow. You can add additional constraints on these triggers, like running when certain files or changed or when a certain branch is pushed to.\n\u003c/p\u003e\n\u003cp\u003e\n \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003e\u003cb\u003ejobs\u003c/b\u003e\u003c/i\u003e\u003c/font\u003e\u003cbr\u003e\n A list of the jobs that run as part of the workflow. Each job will run independently of the others, and will run on a different virtual environment. Jobs may have a \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003e\u003cb\u003ename\u003c/b\u003e\u003c/i\u003e\u003c/font\u003e to make them easily identifiable in the UI or in logs. Jobs contain a set of \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003e\u003cb\u003esteps\u003c/b\u003e\u003c/i\u003e\u003c/font\u003e that will be executed, in order. This workflow has a single job, the \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003ebuild\u003c/i\u003e\u003c/font\u003e job.\n\u003c/p\u003e\n\u003cp\u003e\n \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003e\u003cb\u003ejobs.\u0026lt;job-id\u0026gt;.runs-on\u003c/b\u003e\u003c/i\u003e\u003c/font\u003e\u003cbr\u003e\n The type of runner to use to run the given job on, either a runner provided by GitHub or a self-hosted runner that you configure. GitHub provides three main types of runners: Linux (named \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003eubuntu-latest\u003c/i\u003e\u003c/font\u003e), Windows (named \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003ewindows-latest\u003c/i\u003e\u003c/font\u003e) and macOS (named \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003emacos-latest\u003c/i\u003e\u003c/font\u003e).\n\u003c/p\u003e\n\u003cp\u003e\n \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003e\u003cb\u003ejobs.\u0026lt;job-id\u0026gt;.steps\u003c/b\u003e\u003c/i\u003e\u003c/font\u003e\u003cbr\u003e\n A list of the steps that will run as part of the job. Each step will run one after another, all on the same virtual environment. By default, if any step fails then the entire job will stop. In this workflow, the \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003ebuild\u003c/i\u003e\u003c/font\u003e job contains three steps:\n \u003col\u003e\n \u003cli\u003e\n The first step \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003e\u003cb\u003euses\u003c/b\u003e\u003c/i\u003e\u003c/font\u003e an action named \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003eactions/checkout@v2\u003c/i\u003e\u003c/font\u003e. This is an action provided by GitHub that will check out your repository onto the runner, so that it can be built and tested.\n \u003c/li\u003e\n \u003cli\u003e\n The second step \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003e\u003cb\u003euses\u003c/b\u003e\u003c/i\u003e\u003c/font\u003e an action named \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003eactions/setup-node@v1\u003c/i\u003e\u003c/font\u003e. This is an action provided by GitHub that will set up a particular version of Node.js on the runner. Arguments can be provided to the action in the \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003e\u003cb\u003ewith\u003c/b\u003e\u003c/i\u003e\u003c/font\u003e section; in this example, the \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003enode-version\u003c/i\u003e\u003c/font\u003e argument is set to 12, which instructs the action to put Node.js version \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003e12\u003c/i\u003e\u003c/font\u003e in the PATH for subsequent steps.\n \u003c/li\u003e\n \u003cli\u003e\n The final step \u003cfont style=\"background-color: #f6f8fa;\"\u003e\u003ci\u003e\u003cb\u003eruns\u003c/b\u003e\u003c/i\u003e\u003c/font\u003e programs on the command-line. By default, these programs will be run with bash (on Linux and macOS) or PowerShell (on Windows). A single command may be specified, or multiple commands can be specified by starting them with a leading pipe (|) symbol.\n \u003cbr\u003e\u003cbr\u003e\n In this case, a Node.js continuous integration build will be performed by running \u003cfont style=\"font-family: courier;\"\u003e\u003cb\u003enpm ci\u003c/b\u003e\u003c/font\u003e to download and install packages from the npm registry, then running \u003cfont style=\"font-family: courier;\"\u003e\u003cb\u003enpm run\u003c/b\u003e\u003c/font\u003e build to run the build script specified by the project, and finally running \u003cfont style=\"font-family: courier;\"\u003e\u003cb\u003enpm test\u003c/b\u003e\u003c/font\u003e to run any unit tests in the project.\n \u003c/li\u003e\n \u003c/ol\u003e\n\u003c/p\u003e\n","resource":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7nKe0raenV5uUBjtNCm6LA","type":"Entry","createdAt":"2021-11-19T17:33:33.932Z","updatedAt":"2021-11-19T17:33:33.932Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":1,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"article"}},"locale":"en-US"},"fields":{"attachment":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"0HWtwIjwrnhdV3m50ZV87","type":"Asset","createdAt":"2021-11-19T17:25:10.259Z","updatedAt":"2022-03-12T22:46:04.747Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":2,"locale":"en-US"},"fields":{"title":"/downloads/GitHub_Actions-Cheat-Sheet-One-Pager.pdf","description":"GitHub_Actions-Cheat-Sheet-One-Pager","file":{"url":"//assets.ctfassets.net/wfutmusr1t3h/0HWtwIjwrnhdV3m50ZV87/5d0092144f32beeec76fb26ea17abfd8/_downloads_GitHub_Actions-Cheat-Sheet-One-Pager.pdf","details":{"size":45298},"fileName":"/downloads/GitHub_Actions-Cheat-Sheet-One-Pager.pdf","contentType":"application/pdf"}}}}},"gated":false,"sfCampaignID":"7015c000001SNN7AAO","campaign":"Resources_Contact_Us","contentForm":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3qHQ6eSp20iGQrFIfaBJnn","type":"Entry","createdAt":"2022-09-29T19:33:25.277Z","updatedAt":"2024-11-21T18:47:33.914Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":240,"revision":109,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"form"}},"locale":"en-US"},"fields":{"name":"Form_Ungated_Contact","title":"Wondering how GitHub can help your business?","subtitle":"Tell us more about your needs","eloquaFormName":"ContactUs_TemplateForm","formCTA":"Contact GitHub","formElements":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3Euizanl72D7hjUPBu1cz4","type":"Entry","createdAt":"2023-04-04T12:27:44.815Z","updatedAt":"2024-11-21T18:50:24.686Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":364,"revision":182,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Last name","htmlName":"lastName","type":"text","placeholder":"Last name","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6FMPEpNvfZnVg5o5pNdmAz","type":"Entry","createdAt":"2023-04-04T12:27:23.053Z","updatedAt":"2024-11-21T18:50:31.728Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":365,"revision":182,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"First name","htmlName":"firstName","type":"text","placeholder":"First name","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6s0zB2lwQZz6ZhWkZQd5r0","type":"Entry","createdAt":"2022-09-29T18:54:51.900Z","updatedAt":"2024-11-21T18:50:59.400Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":226,"revision":108,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Work Email","htmlName":"emailAddress","type":"email","placeholder":"you@company.com","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3IumXBD9IQf1aCt2cTCoVh","type":"Entry","createdAt":"2023-06-23T19:25:51.253Z","updatedAt":"2024-11-21T18:50:49.013Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":204,"revision":101,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Phone","htmlName":"phone1","type":"tel","placeholder":"12 3456 7890","required":false}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5HOQnFx9120Wj4hlsjXaJn","type":"Entry","createdAt":"2022-03-12T20:19:03.843Z","updatedAt":"2024-11-21T18:50:03.222Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":366,"revision":182,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Company","htmlName":"company","type":"text","placeholder":"Acme, Inc","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1MS9X9RNVd6BmPN91fMsVg","type":"Entry","createdAt":"2022-09-29T19:31:39.832Z","updatedAt":"2024-11-21T18:50:39.044Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":201,"revision":100,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"What can we help you with?","htmlName":"contactComments","type":"textarea","placeholder":"Tell us how we can help. For support questions, head to github.com/contact ","required":false}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5zNCZ4hVsez1AWpp6Fga7h","type":"Entry","createdAt":"2022-03-12T20:23:32.191Z","updatedAt":"2024-11-20T14:58:44.487Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":16,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"htmlName":"elqCustomerGUID","type":"hidden","required":false}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7a3HDjJcLkWmsPKHATLvna","type":"Entry","createdAt":"2022-03-12T20:24:00.556Z","updatedAt":"2024-11-20T14:58:44.527Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":18,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"htmlName":"elqCookieWrite","type":"hidden","required":false,"defaultValue":"0"}}]}},"headerCTA":"Download PDF","publicationDate":"2020-03-12T00:00:00.000Z","hidden":false,"marketoCampaign":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2ywGzPlFH9kTdiOBF75ggA","type":"Entry","createdAt":"2023-09-15T23:09:46.917Z","updatedAt":"2024-11-20T14:58:44.542Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":14,"revision":7,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"marketoCampaign"}},"locale":"en-US"},"fields":{"title":"CO-GHG-CONTACT-FY23-10Oct-01-WW-Resources-Contact-Request/406214","cDLProgramName":"406214","source":"Contact Request","formFields":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6z2cGa4cuvoWqGxS3Ejhv4","type":"Entry","createdAt":"2023-09-12T16:31:47.760Z","updatedAt":"2024-11-21T18:54:10.268Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":119,"revision":55,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"sFDCLastCampaignStatus","htmlName":"sFDCLastCampaignStatus","type":"hidden","required":false,"defaultValue":"Responded"}}],"active":true}}}},"seo":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"seo--whitepapers-GitHub-Actions-Cheat","type":"Entry","createdAt":"2022-02-28T21:20:37.846Z","updatedAt":"2024-10-03T13:04:57.346Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":12,"revision":6,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"seo"}},"locale":"en-US"},"fields":{"metaTitle":"GitHub Actions Cheat Sheet","metaDescription":"Everything you need to know about getting started with GitHub Actions","openGraphTitle":"GitHub Actions Cheat Sheet","openGraphDescription":"Everything you need to know about getting started with GitHub Actions"}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4BxdmtZNPo7EA3wR55El1E","type":"Entry","createdAt":"2023-08-24T13:18:30.421Z","updatedAt":"2024-02-21T16:27:05.018Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":3,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/actions/integrating-with-sentry","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3uLoDNEnWzN1uFzHbVpAgV","type":"Entry","createdAt":"2022-07-28T13:02:52.125Z","updatedAt":"2024-10-03T12:40:57.740Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":188,"revision":37,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"resourceContainer"}},"locale":"en-US"},"fields":{"internalTitle":"Resource Page for /actions/integrating-with-sentry","path":"/actions/integrating-with-sentry","title":"Integrating GitHub with Sentry to Increase Speed to Resolution ","description":"Whether you’re already using Sentry and GitHub separately, or building a deployment workflow for the first time, you can follow these steps to create an automated workflow for your team","body":"By: Angela Jiang, Product Marketing Manager @Sentry\n\n*[Sentry](https://sentry.io/welcome/) is an application monitoring platform that helps over 3.5 million developers see what actually matters, solve quicker, and learn continuously about their applications - from the frontend to the backend.*\n\n\u003ch2\u003e Toolchains are complicated—developers and engineering managers are working with more tools than they probably care to count. In order to maintain efficiency in today’s world, having smart integrations in place is becoming less of a nice-to-have and more of a necessity.\u003c/h2\u003e\n\nAt Sentry, we're focusing on [improving the developer workflow](https://blog.sentry.io/2022/05/06/workflow-2-0) and that means in part building deeper integrations with tools like Github to make it easier for developers to monitor every stage of the release cycle - giving developers a more automated deployment workflow to catch errors as quickly as code is shipped to production (with no superfluous button-clicking).\n\nWhether you’re already using Sentry and GitHub separately, or building a deployment workflow for the first time, you can follow these steps to create an automated workflow for your team:\n\n - [Sign in](https://sentry.io/auth/login/) to your Sentry account\n - Connect your [GitHub repositories to Sentry](https://docs.sentry.io/product/integrations/source-code-mgmt/github/) to begin tracking commit data\n - Import your GitHub CODEOWNERS file to [automatically map issues](https://docs.sentry.io/product/issues/issue-owners/#code-owners) to teams or people in Sentry\n - Install the [Sentry Release GitHub Action](https://github.com/marketplace/actions/sentry-release) in GitHub to automatically upload sourcemaps, manage releases in Sentry and track how the release is trending\n\nCustomers like [Forethought](https://forethought.ai/), who have growing engineering teams and are shipping continuously, often operate with limited visibility into the code they ship and ownership over who should fix what once it's released. In Forethought’s case, integrating their GitHub CODEOWNERS file with Sentry allowed them to divide up and assign responsibilities to specific teams, [reducing their time to resolution by up to 94%](https://blog.sentry.io/2022/05/02/an-engineering-managers-tips-for-scaling-teams#defining-roles).\n\nIn addition to improving issue ownership, integrating GitHub with Sentry allows customers like Forethought to: \n- Automatically monitor the health of a new release and its impacts on users with Sentry Release GitHub Actions\n- Create or link GitHub issues directly in Sentry\n- Predict which commit caused an issue and who is likely responsible to resolve it\n- Link Sentry stack traces back to the GitHub source code to see the line of code causing an error\n- Resolve issues via a pull request or commit\n\nLet’s walk through an example of how customers typically use Sentry and GitHub together and how you can see the above in action.\n\nAfter a release is deployed, you head into your [Release Health](https://docs.sentry.io/platforms/android/configuration/releases/#release-health) tab within Sentry to monitor the stability, user adoption, and issues in a release so you can identify and stop the roll out of a bad release before it impacts customers. Within Release Health, you will see historical commit details and key stats like user adoption, application usage, and crash-rates. You can also view new, unhandled, regressed issues, and related performance problems in each release. \n\n![Sentry screen shot](//images.ctfassets.net/wfutmusr1t3h/6B01Y7E1ynj59MPXSjHGTq/09072f16a26588f0225dcdd20f8bc188/Sentry4.png)\n\nWith the [Sentry Release GitHub Action](https://github.com/marketplace/actions/sentry-release) installed, every new release (major or minor) will be automatically recorded and [suspect commits](https://docs.sentry.io/product/cli/releases/#sentry-cli-sourcemaps) automatically configured. Sentry will also upload the original, untransformed source code (aka [sourcemaps](https://docs.sentry.io/product/cli/releases/#sentry-cli-sourcemaps)) which un-minifies any Javascript code that is present. You can see when a release is not trending well by looking at key metrics such as the user adoption and crash-free session rate. \n\n![Sentry image 1](//images.ctfassets.net/wfutmusr1t3h/6BynkLIwSS0z6L3GHO3CS0/e245a166103fb599c05df87db8f0d190/Sentry1.png)\n\nWith the GitHub CODEOWNERS file synced to Sentry’s Code Owners rules, Sentry will not only capture the issue impacting users, but will also surface the specific commit related to the issue and automatically suggest the right team member to triage the issue. This way, you no longer need to scramble to figure out who is responsible for what when critical outages occur. \n\n![Sentry image 2](//images.ctfassets.net/wfutmusr1t3h/6sNxO3E0qkiqcN57Ghjbi5/9d2ecb917889876a783e95016d087573/Sentry2.png)\n\nFrom here, you can create a GitHub issue directly from Sentry and tag the suggested assignee to an issue.\n\n![Sentry screen shot ](//images.ctfassets.net/wfutmusr1t3h/1mWMC7oNxUPQkSoRnS7VLq/9c68b750edb78a21e5e0e96c65b39c7a/sentry5.png)\n\nBy clicking into the Sentry error report, the developer assigned to the issue can see the stack trace and easily navigate to the relevant GitHub file that is deep linked in the stack trace to investigate the issue further. \n\n![Sentry screen shot](//images.ctfassets.net/wfutmusr1t3h/2GOLy1bEkMUT2PiL2D1idr/7a2b4e84ee30c62e00f7a5e3c3fc61d8/sentry6.png)\n\nLastly, the developer who owns the issue can quickly identify what the problem is, fix it, and open a pull request with the Sentry Issue ID included in the comments. (Sentry automatically annotates the matching issue with a reference to the commit or pull request, and, later, when that commit or pull request is part of a release, mark the issue as resolved). \n\n![Sentry image 3](//images.ctfassets.net/wfutmusr1t3h/5upZY2BsVxt515vikOkZqM/357c4b2f2e7154abdb90e81c3c043b84/Sentry3.png)\n\nBy integrating GitHub with Sentry, you will be able to unlock the full potential of both tools to simplify your team’s workflow, increase speed to resolution, and learn from trends to optimize code health over time. \n\nAs we continue to strive to improve how developers ship and improve software, [we'd love to hear from you](https://github.com/getsentry/sentry/issues/34327)-what part of the workflow works well, what is completely terrible, and what can we do better?\n\nNew to Sentry and want to try it out for free? [Sign up](https://sentry.io/signup/) or try out the latest version of the Action [here](https://github.com/marketplace/actions/sentry-release). \n","resource":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"CG8OcpODww1BLiFhuACCX","type":"Entry","createdAt":"2022-07-28T13:02:45.851Z","updatedAt":"2022-08-08T22:33:46.981Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"article"}},"locale":"en-US"},"fields":{}},"gated":false,"sfCampaignID":"7015c000001SNN7AAO","campaign":"Resources_Contact_Us","contentForm":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3qHQ6eSp20iGQrFIfaBJnn","type":"Entry","createdAt":"2022-09-29T19:33:25.277Z","updatedAt":"2024-11-21T18:47:33.914Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":240,"revision":109,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"form"}},"locale":"en-US"},"fields":{"name":"Form_Ungated_Contact","title":"Wondering how GitHub can help your business?","subtitle":"Tell us more about your needs","eloquaFormName":"ContactUs_TemplateForm","formCTA":"Contact GitHub","formElements":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3Euizanl72D7hjUPBu1cz4","type":"Entry","createdAt":"2023-04-04T12:27:44.815Z","updatedAt":"2024-11-21T18:50:24.686Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":364,"revision":182,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Last name","htmlName":"lastName","type":"text","placeholder":"Last name","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6FMPEpNvfZnVg5o5pNdmAz","type":"Entry","createdAt":"2023-04-04T12:27:23.053Z","updatedAt":"2024-11-21T18:50:31.728Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":365,"revision":182,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"First name","htmlName":"firstName","type":"text","placeholder":"First name","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6s0zB2lwQZz6ZhWkZQd5r0","type":"Entry","createdAt":"2022-09-29T18:54:51.900Z","updatedAt":"2024-11-21T18:50:59.400Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":226,"revision":108,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Work Email","htmlName":"emailAddress","type":"email","placeholder":"you@company.com","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3IumXBD9IQf1aCt2cTCoVh","type":"Entry","createdAt":"2023-06-23T19:25:51.253Z","updatedAt":"2024-11-21T18:50:49.013Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":204,"revision":101,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Phone","htmlName":"phone1","type":"tel","placeholder":"12 3456 7890","required":false}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5HOQnFx9120Wj4hlsjXaJn","type":"Entry","createdAt":"2022-03-12T20:19:03.843Z","updatedAt":"2024-11-21T18:50:03.222Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":366,"revision":182,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Company","htmlName":"company","type":"text","placeholder":"Acme, Inc","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1MS9X9RNVd6BmPN91fMsVg","type":"Entry","createdAt":"2022-09-29T19:31:39.832Z","updatedAt":"2024-11-21T18:50:39.044Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":201,"revision":100,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"What can we help you with?","htmlName":"contactComments","type":"textarea","placeholder":"Tell us how we can help. For support questions, head to github.com/contact ","required":false}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5zNCZ4hVsez1AWpp6Fga7h","type":"Entry","createdAt":"2022-03-12T20:23:32.191Z","updatedAt":"2024-11-20T14:58:44.487Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":16,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"htmlName":"elqCustomerGUID","type":"hidden","required":false}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7a3HDjJcLkWmsPKHATLvna","type":"Entry","createdAt":"2022-03-12T20:24:00.556Z","updatedAt":"2024-11-20T14:58:44.527Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":18,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"htmlName":"elqCookieWrite","type":"hidden","required":false,"defaultValue":"0"}}]}},"publicationDate":"2022-08-08T16:40-06:00","hidden":false,"rendersRichText":false,"marketoCampaign":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2ywGzPlFH9kTdiOBF75ggA","type":"Entry","createdAt":"2023-09-15T23:09:46.917Z","updatedAt":"2024-11-20T14:58:44.542Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":14,"revision":7,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"marketoCampaign"}},"locale":"en-US"},"fields":{"title":"CO-GHG-CONTACT-FY23-10Oct-01-WW-Resources-Contact-Request/406214","cDLProgramName":"406214","source":"Contact Request","formFields":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6z2cGa4cuvoWqGxS3Ejhv4","type":"Entry","createdAt":"2023-09-12T16:31:47.760Z","updatedAt":"2024-11-21T18:54:10.268Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":119,"revision":55,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"sFDCLastCampaignStatus","htmlName":"sFDCLastCampaignStatus","type":"hidden","required":false,"defaultValue":"Responded"}}],"active":true}}}},"seo":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"517MskJDaiwFLa9KGvIjbx","type":"Entry","createdAt":"2022-07-26T21:23:22.776Z","updatedAt":"2024-10-03T13:06:04.176Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":14,"revision":6,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"seo"}},"locale":"en-US"},"fields":{"metaTitle":"Integrating GitHub with Sentry to Increase Speed to Resolution ","openGraphTitle":"Integrating GitHub with Sentry to Increase Speed to Resolution "}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rgFbmgZfw4ilT8WtHONgF","type":"Entry","createdAt":"2023-08-24T13:15:59.365Z","updatedAt":"2024-02-21T16:26:05.870Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":3,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/devops/process/planning/discussions","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5pJ7zwG8NJtgO6W3f50bSn","type":"Entry","createdAt":"2022-03-30T19:24:36.889Z","updatedAt":"2024-10-17T17:51:02.748Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":56,"revision":19,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"resourceContainer"}},"locale":"en-US"},"fields":{"internalTitle":"Resource Page for /devops/process/planning/discussions","path":"/devops/process/planning/discussions","title":"What is GitHub Discussions? A complete guide","description":"GitHub Discussions brings community forums right to your public or private repositories on GitHub making it easy to communicate with your community, ask and answer questions, share updates, and more. Here’s what you need to know about GitHub Discussions, best practices, and how other open source projects are using it.","body":"\u003ch2 style=\"margin-top: -5px;\"\u003eWhat’s inside\u003c/h2\u003e\n\n- **Getting started with GitHub Discussions:** How to enable GitHub Discussions in your repository and popular use cases.\n\n- **Best practices for using GitHub Discussions:** Key tips on how to use GitHub Discussions successfully as a community engagement tool.\n\n- **GitHub Discussions vs. GitHub Issues:** When to use each: When and how to use Discussions and Issues on a project—and how to turn a Discussion into an Issue (and vice versa).\n\nBuilding great software involves more than just the source code. If you have a growing community, there’s so many other things that may occupy your time. There’s roadmap planning, working with your community on potential features, succinctly sharing progress updates with collaborators, attracting and onboarding new contributors, and more. \n\nAll of these things can be solved with a central gathering space where maintainers and contributors can all get together to capture ideas, converse, and plan for the future. \n\nThe answer? GitHub Discussions. \u003ca href=\"https://github.blog/2020-05-06-new-from-satellite-2020-github-codespaces-github-discussions-securing-code-in-private-repositories-and-more/\"\u003eLaunched in 2020\u003c/a\u003e, Discussions brings community forums to GitHub making it easier for open source communities, developer teams, and companies to ask questions, share ideas, and build connections with each other — all right next to their code.\n\nIn this guide, we’ll explore GitHub Discussions, including how to use it, best practices, and how it complements other GitHub features (like Issues) to support the full developer experience. \n\n\u003ch2 style=\"margin-top: -3px;\"\u003eGetting started with GitHub Discussions: The basics\u003c/h2\u003e\n\nDesigned for any developer community working on something together, GitHub Discussions offers a big benefit: It lives directly in your repository (aka, right where you’re already working and where your community is), reducing the context-switching that comes with managing third-party forums on other websites. \n\nIt also gives you an asynchronous communication platform that allows for open-ended conversations, making it easier to save historical information, frequently asked questions, and feature ideas. \n\n\u003ch2 style=\"margin-top: -3px;\"\u003eHow to enable GitHub Discussions in your repository\u003c/h2\u003e\n\nDiscussions can be enabled in any public or private repository by an admin, maintainer, or anyone with write access. Here’s how: \n\n\u003col\u003e\n\u003cli\u003eOpen your repository settings and go to “Features”\u003c/li\u003e\n\u003cli\u003eCheck the box next to “Discussions”\u003c/li\u003e\n\u003cli\u003eCreate a welcome post to start your forum\u003c/li\u003e\n\u003c/ol\u003e\n\nIt’s that simple. Don’t believe us? Here’s proof 👇. \n\n\u003cdiv align=\"center\"\u003e\u003cimg width=\"75%\" alt=\"discussions1\" src=\"https://resources.github.com/assets/img/whitepapers/discussions1.gif\"\u003e\u003c/div\u003e\n\n\u003cp class=\"text-center\" style=\"padding: 10px;\"\u003e\u003ci\u003eA GIF showing a GitHub user enabling Discussions in their repository.\u003c/i\u003e\u003c/p\u003e\n\u003cp class=\"text-left\"\u003e\u003ca href=\"https://docs.github.com/en/discussions/quickstart#enabling-github-discussions-on-your-repository\"\u003eLearn more about getting started with Discussions\u003c/a\u003e\u003c/p\u003e\n\n\u003ch2 style=\"margin-top: -3px;\"\u003eWhat you can do with GitHub Discussions: Examples of common use cases \u003c/h2\u003e\n\nDiscussions gives you the ability to directly engage with your communities and collaborators, all while staying on GitHub. To help facilitate, it also provides features like labeling, marking helpful answers, upvoting, and more. \n\nHere are some ways open source communities and teams are using GitHub Discussions: \n\n\u003cul\u003e\n\u003cli\u003e\u003cb\u003eCreate community announcements:\u003c/b\u003e Whether you’re an admin, maintainer, or contributor, you can use Discussions to make community announcements about upcoming releases, roadmap decisions, and more. Need proof? Check out how \u003ca href=\"https://github.com/nodejs/node/discussions/40637\"\u003ethe open source community Node announced its roadmap to its community.\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cb\u003eShare ideas and get community feedback:\u003c/b\u003e Maybe you need feedback on a problem you’re trying to solve. Or maybe you want to share ideas about new features you want to see as part of a future sprint. Discussions is designed to make community engagement simple and collaborative—and a popular use case among open source communities and teams is using it to share ideas and get feedback (take a look at \u003ca href=\"https://github.com/gatsbyjs/gatsby/discussions/31599\"\u003ehow the open source community Gatsby did just this).\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cb\u003eDiscuss a new release:\u003c/b\u003e Some open source communities use Discussions to answer questions about a new release from their wider communities—that’s something we’ve seen to great effect from the React team, which \u003ca href=\"https://github.com/reactwg/react-18/discussions/4\"\u003eused Discussions to field questions about its latest release\u003c/a\u003e (and explain a little more about what that release does, too). \u003c/li\u003e\n\u003cli\u003e\u003cb\u003eSpotlight important conversations by pinning them:\u003c/b\u003e Discussions supports pinning conversations and announcements to the top of the feed which makes it easy to make sure your community or team has access to important information. \u003ca href=\"https://github.com/vercel/next.js/discussions\"\u003eA great example of this in action comes from the Next.JS community\u003c/a\u003e, which pins important and helpful conversations to the top of its Discussions board.\u003c/li\u003e\n\u003cli\u003e\u003cb\u003eDetermine hot topics in your community:\u003c/b\u003e You can sort all conversations in a given Discussions instance by how many upvotes they’ve received—and you can do this by day, month, year, or all time. This is a great way to keep track of what conversations are triggering the most interest in your community.\u003c/li\u003e\n\u003cli\u003e\u003cb\u003eAsk questions and get answers with Q\u0026A posts:\u003c/b\u003e Have a question about a pull request, issue, or problem you’re confronting? Try posting a Q\u0026A discussion to find an answer. And the best part: You can mark which responses are helpful answers so other people can quickly find out what helped you most. Want an example? Try checking out \u003ca href=\"https://github.com/jspsych/jsPsych/discussions/categories/q-a\"\u003ethe jsPsych community Discussion board\u003c/a\u003e, which features a number of Q\u0026A posts (with helpful answers marked). \u003c/li\u003e\n\u003cli\u003e\u003cb\u003eCoordinate engineering resources:\u003c/b\u003e Another popular use case for Discussions among some communities is coordinating team resources and sprint planning. Not only that but you can create and assign Issues directly from your discussion, which makes it easy to plan sprints (more on this in a bit).\u003c/li\u003e\n\u003cli\u003e\u003cb\u003eHold general discussions:\u003c/b\u003e You can use Discussions to talk shop (or life) with general posts to engage your community or team. For instance, the Next.JS community uses Discussions to \u003ca href=\"https://github.com/vercel/next.js/discussions/10640\"\u003eshowcase what companies and websites are using its software.\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch2 style=\"margin-top: -3px;\"\u003eBest practices for using and moderating GitHub Discussions\u003c/h2\u003e\n\nDiscussions gives you a community forum right in your repository, making it easy to communicate with collaborators and foster community—all right from GitHub. \n\nBut we all know that successful forums need moderation to make sure the conversation stays productive and helpful. Whether you’re using Discussions for a small team or as part of a large open source project, here are some best practices to keep in mind: \n\n\u003cul\u003e\n\u003cli\u003e\u003cb\u003eUse labels to keep your spaces organized.\u003c/b\u003e Discussions supports labels, which you can customize to fit your needs. These labels can be applied to any discussion and can be used to surface important information, make searching for a specific discussion easier, and help avoid duplicative content.\u003c/li\u003e\n\u003cli\u003e\u003cb\u003eIn Q\u0026A discussions, mark which reply answers the question.\u003c/b\u003e A popular use case of Discussions is Q\u0026A posts, which can be helpful to crowdsource an answer from your team or community. But when you ask a question, be sure to mark which reply answered your question. This can help you avoid duplicative content (or necro posting). It’s also a good practice to upvote any comment or reply that’s helpful or accurate.\u003c/li\u003e\n\u003cdiv align=\"center\"\u003e\u003cimg width=\"75%\" alt=\"discussions2\" src=\"https://resources.github.com/assets/img/whitepapers/discussions2.png\"\u003e\u003c/div\u003e \n\u003cp class=\"text-center\" style=\"padding: 10px;\"\u003e\u003ci\u003eA picture showing an answer that has been marked as helpful in a GitHub Discussions thread.\u003c/i\u003e\u003c/p\u003e\n\u003cli\u003e\u003cb\u003eUse Discussions to trigger automations:\u003c/b\u003e Discussions supports the GraphQL API—and that means you can use GitHub Actions to trigger automations off of new Discussions and comment events. Popular use cases include triggering chat app notifications when a new Discussion or comment is created, and sending automatic updates to websites with key Discussions such as announcements. \u003c/li\u003e\n\u003cli\u003e\u003cb\u003eTurn collaborators into moderators and assign them triage permissions.\u003c/b\u003e If your community is big enough, you’ll be well served by turning a number of collaborators into moderators to help you keep your Discussions instance running smoothly. You can do this by \u003ca href=\"https://docs.github.com/en/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization\"\u003eassigning triage permissions to people in your project\u003c/a\u003e. This turns them into moderators who can mark answers, manage the forum, remote content, and more.\u003c/li\u003e\n\u003cli\u003e\u003cb\u003eUse the top sort feature to find trending conversations.\u003c/b\u003e Once a Discussions forum gets big enough (here’s looking at you Next.JS), you’ll likely find a lot of day-to-day activity and plenty of posts. If you don’t have time to go through every conversation, you can look at the top trending conversations by selecting the top sort feature and setting it to your preferred time frame (day, week, month, year, or all).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv align=\"center\"\u003e\u003cimg width=\"50%\" alt=\"discussions3\" src=\"https://resources.github.com/assets/img/whitepapers/discussions3.png\"\u003e\u003c/div\u003e\n\u003cp class=\"text-center\" style=\"padding: 10px;\"\u003e\u003ci\u003eA picture showing an answer that has been marked as helpful in a GitHub Discussions thread.\u003c/i\u003e\u003c/p\u003e\n\n\u003ch2 style=\"margin-top: -3px;\"\u003eGitHub Discussions vs. GitHub Issues: When to use each\u003c/h2\u003e \n\nA common question among developers new to GitHub Discussions goes something like this: When should I use Discussions and when should I use Issues? \n\n\u003cb\u003eThe short answer:\u003c/b\u003e Discussions are great for questions and ideas that require team communication to make a decision, while Issues are defined pieces of work. \n\n\u003cb\u003eThe slightly longer answer:\u003c/b\u003e In any given project or sprint, you have things you need to discuss and those you need to do. Discussions are for—no surprise here—discussing things. Issues are for cataloguing the work you need to do after you’ve reached a decision about how to move forward.\u003cbr\u003e \n\n\u003ch3 style=\"margin-top: -1.5px;\"\u003e\u003cb\u003eWhen to use GitHub Discussions\u003c/b\u003e\u003c/h3\u003e\u003cbr\u003e\nGitHub Discussions is best suited as a tool to share questions, ideas, conversations, requests for comment (RFC), resource planning, and announcements.\n\n\u003ch3 style=\"margin-top: -1.5px;\"\u003e\u003cb\u003eWhen to use GitHub Issues\u003c/b\u003e\u003c/h3\u003e\u003cbr\u003e\nGitHub Issues are used to track executable pieces of work with a defined start and end point. These can include new features, fixing bugs, general updates, and tracking for epics and sprints, among other things.\n\n\u003cbr\u003e\nBoth Issues and Discussions can help you be more productive and collaborative. But when they’re used together, you can be more efficient by reserving Issues and pull requests for active work and Discussions for conversations, questions, and community engagement. \n\nAnd there’s another benefit: You can reference a discussion in an issue, which can help provide background and context for a piece of work. You can also convert an issue into a discussion if you need additional information and decisions before a task can be completed.\n\n\u003ch2 style=\"margin-top: -3px;\"\u003eHow to create an issue from a Discussion\u003c/h2\u003e\n\nDiscussions offers an asynchronous communication platform that saves historical information, notes, ideas, and more. The best part: \u003ca href=\"https://docs.github.com/en/issues/tracking-your-work-with-issues/creating-an-issue#creating-an-issue-from-discussion\"\u003eYou can create an issue directly from a discussion\u003c/a\u003e, which means you can attach your notes and decisions that led to a piece of a work directly in an Issue. \n\nTo do this, go to the right sidebar and click \u003cb\u003eCreate issue from discussion\u003c/b\u003e and then build out your issue and assign it to someone (or yourself). \n\n\u003ch2 style=\"margin-top: -3px;\"\u003eHow to convert an issue into a discussion\u003c/h2\u003e\n\nLet’s be honest: Sometimes people use issues as a default bucket for anything that is a conversation—or doesn’t have an executable task involved. Other times, people will create an issue and then realize they need a team decision before they can start moving forward. \n\nIn this case, you can convert an issue into a discussion by going to the bottom right corner of the issue and selecting “Convert to discussion.” \n\nDoing this will close and lock the issue while preserving the title, description, and author for the new discussion. \n\n\u003ch2 style=\"margin-top: -3px;\"\u003eTake this with you\u003c/h2\u003e \n\nWhether you’re planning for a feature roadmap, asking questions about something you’re working on, or engaging with an open source community that’s building software you use, GitHub Discussions offers a central space for all communities—both open source and private—to connect and collaborate. \n\nDiscussions is designed to do three things: \n\n\u003cul\u003e\n\u003cli\u003e\u003cb\u003eProvide a centralized community space\u003c/b\u003e for conversations and questions (and make the lives of maintainers easier when it comes to Issues and pull requests)\u003c/li\u003e\n\u003cli\u003e\u003cb\u003eCreate a place for newcomers and non-code collaborators\u003c/b\u003e to participate in a larger community\u003c/li\u003e\n\u003cli\u003e\u003cb\u003eHighlight project contributors\u003c/b\u003e to help develop the next generation of maintainers\u003c/li\u003e\n\u003c/ul\u003e\n\nTry enabling it today in your public or private repositories—or engaging with any number of open source communities you’re interested in learning more about. \n\n\u003ch3 style=\"margin-top: -3px;\"\u003eAdditional resources\u003c/h3\u003e \n\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.blog/2021-11-10-7-unique-software-collaboration-features-in-github-discussions/\"\u003e7 things you didn’t know you could do with GitHub Discussions\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.github.com/en/discussions/quickstart\"\u003eQuickstart for GitHub Discussions\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.blog/2022-01-13-how-five-open-source-communities-are-using-github-discussions/\"\u003e5 open source communities using GitHub Discussions\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n","resource":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7fYKx1mFmCFlSTdJDg20L3","type":"Entry","createdAt":"2022-03-30T19:22:23.449Z","updatedAt":"2022-03-30T19:22:23.449Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":2,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"article"}},"locale":"en-US"},"fields":{}},"gated":false,"sfCampaignID":"7015c000001SNN7AAO","campaign":"Resources_Contact_Us","contentForm":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3qHQ6eSp20iGQrFIfaBJnn","type":"Entry","createdAt":"2022-09-29T19:33:25.277Z","updatedAt":"2024-11-21T18:47:33.914Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":240,"revision":109,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"form"}},"locale":"en-US"},"fields":{"name":"Form_Ungated_Contact","title":"Wondering how GitHub can help your business?","subtitle":"Tell us more about your needs","eloquaFormName":"ContactUs_TemplateForm","formCTA":"Contact GitHub","formElements":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3Euizanl72D7hjUPBu1cz4","type":"Entry","createdAt":"2023-04-04T12:27:44.815Z","updatedAt":"2024-11-21T18:50:24.686Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":364,"revision":182,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Last name","htmlName":"lastName","type":"text","placeholder":"Last name","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6FMPEpNvfZnVg5o5pNdmAz","type":"Entry","createdAt":"2023-04-04T12:27:23.053Z","updatedAt":"2024-11-21T18:50:31.728Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":365,"revision":182,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"First name","htmlName":"firstName","type":"text","placeholder":"First name","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6s0zB2lwQZz6ZhWkZQd5r0","type":"Entry","createdAt":"2022-09-29T18:54:51.900Z","updatedAt":"2024-11-21T18:50:59.400Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":226,"revision":108,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Work Email","htmlName":"emailAddress","type":"email","placeholder":"you@company.com","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3IumXBD9IQf1aCt2cTCoVh","type":"Entry","createdAt":"2023-06-23T19:25:51.253Z","updatedAt":"2024-11-21T18:50:49.013Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":204,"revision":101,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Phone","htmlName":"phone1","type":"tel","placeholder":"12 3456 7890","required":false}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5HOQnFx9120Wj4hlsjXaJn","type":"Entry","createdAt":"2022-03-12T20:19:03.843Z","updatedAt":"2024-11-21T18:50:03.222Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":366,"revision":182,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Company","htmlName":"company","type":"text","placeholder":"Acme, Inc","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1MS9X9RNVd6BmPN91fMsVg","type":"Entry","createdAt":"2022-09-29T19:31:39.832Z","updatedAt":"2024-11-21T18:50:39.044Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":201,"revision":100,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"What can we help you with?","htmlName":"contactComments","type":"textarea","placeholder":"Tell us how we can help. For support questions, head to github.com/contact ","required":false}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5zNCZ4hVsez1AWpp6Fga7h","type":"Entry","createdAt":"2022-03-12T20:23:32.191Z","updatedAt":"2024-11-20T14:58:44.487Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":16,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"htmlName":"elqCustomerGUID","type":"hidden","required":false}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7a3HDjJcLkWmsPKHATLvna","type":"Entry","createdAt":"2022-03-12T20:24:00.556Z","updatedAt":"2024-11-20T14:58:44.527Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":18,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"htmlName":"elqCookieWrite","type":"hidden","required":false,"defaultValue":"0"}}]}},"publicationDate":"2022-01-19T12:00-04:00","hidden":false,"marketoCampaign":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2ywGzPlFH9kTdiOBF75ggA","type":"Entry","createdAt":"2023-09-15T23:09:46.917Z","updatedAt":"2024-11-20T14:58:44.542Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":14,"revision":7,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"marketoCampaign"}},"locale":"en-US"},"fields":{"title":"CO-GHG-CONTACT-FY23-10Oct-01-WW-Resources-Contact-Request/406214","cDLProgramName":"406214","source":"Contact Request","formFields":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6z2cGa4cuvoWqGxS3Ejhv4","type":"Entry","createdAt":"2023-09-12T16:31:47.760Z","updatedAt":"2024-11-21T18:54:10.268Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":119,"revision":55,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"sFDCLastCampaignStatus","htmlName":"sFDCLastCampaignStatus","type":"hidden","required":false,"defaultValue":"Responded"}}],"active":true}}}},"seo":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3fFeP8yUcVJK25OHVlDwRN","type":"Entry","createdAt":"2022-03-30T19:23:05.264Z","updatedAt":"2024-10-03T13:05:15.484Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":17,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"seo"}},"locale":"en-US"},"fields":{"metaTitle":"What is GitHub Discussions? A complete guide","metaDescription":"GitHub Discussions brings community forums right to your public or private repositories on GitHub making it easy to communicate with your community, ask and answer questions, share updates, and more.","metaImage":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5rH9sGD0HgoiWqxBkoQghA","type":"Asset","createdAt":"2022-03-30T19:23:36.505Z","updatedAt":"2022-03-31T18:01:15.901Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":6,"revision":2,"locale":"en-US"},"fields":{"title":"/assets/img/whitepapers/social-card-actions-paper.png","description":"social-card-actions-paper","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/5rH9sGD0HgoiWqxBkoQghA/591bdb2ff0c60a0463dd09ca002b2f1b/social-card-actions-paper.png","details":{"size":888374,"image":{"width":1200,"height":627}},"fileName":"social-card-actions-paper.png","contentType":"image/png"}}},"openGraphTitle":"What is GitHub Discussions? A complete guide","openGraphDescription":"GitHub Discussions brings community forums right to your public or private repositories on GitHub making it easy to communicate with your community, ask and answer questions, share updates, and more."}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"13vIJfCXYXYh4KikbTbdp6","type":"Entry","createdAt":"2024-10-14T20:06:14.236Z","updatedAt":"2024-10-14T20:06:14.236Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":6,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/events/constellation-joburg","seo":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"717KpK7xmjt1JwMuyTAiGf","type":"Entry","createdAt":"2024-10-14T19:52:58.871Z","updatedAt":"2024-10-22T13:55:06.224Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":14,"revision":4,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"seo"}},"locale":"en-US"},"fields":{"metaTitle":"Constellation 2024: GitHub’s Premier Developer Conference in South Africa","metaDescription":"Join Constellation 2024, GitHub’s in-person developer conference in Johannesburg. Explore AI, Collaboration, Community, and Security with industry leaders and participate in a hands-on hackathon focused on social impact.","metaImage":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6M6vRsGVY4Z5RR0zGayrDm","type":"Asset","createdAt":"2024-10-14T19:39:43.439Z","updatedAt":"2024-10-14T19:39:43.439Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"locale":"en-US"},"fields":{"title":"GitHub Constellation South Africa","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/6M6vRsGVY4Z5RR0zGayrDm/e6d975e106c97403d585ba4b9f15bca8/hero-constellation.png","details":{"size":1208510,"image":{"width":2400,"height":1260}},"fileName":"hero-constellation.png","contentType":"image/png"}}},"openGraphTitle":"Constellation 2024: GitHub’s Developer Conference in Johannesburg","openGraphDescription":"Join GitHub’s Constellation 2024 in Johannesburg for a full day of learning, collaboration, and innovation. Featuring AI-focused sessions, GitHub Copilot training, a hackathon, and a keynote by GitHub CEO Thomas Dohmke."}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6ugth2XnkhdWN46UK5gb7b","type":"Entry","createdAt":"2024-01-11T21:00:29.738Z","updatedAt":"2024-10-09T18:28:03.127Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":28,"revision":14,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"cloud","label":"Cloud"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3vQGRghKWPkjZOXF1XJQ1h","type":"Entry","createdAt":"2024-01-11T21:00:33.222Z","updatedAt":"2024-10-09T18:27:56.917Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":75,"revision":38,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"developer-productivity","label":"Developer Productivity"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7wXHiRnPRdKceDxtr3CQRj","type":"Entry","createdAt":"2024-01-11T21:00:26.704Z","updatedAt":"2024-11-21T18:57:48.990Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":111,"revision":56,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"github-actions","label":"GitHub Actions"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6pxXKKKDPAgHO6RN44qaQ","type":"Entry","createdAt":"2024-01-11T21:00:30.179Z","updatedAt":"2024-10-09T18:27:45.823Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":27,"revision":14,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"opensource","label":"Open Source"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1hE6fjVTs38kbzDviYCJcF","type":"Entry","createdAt":"2024-01-11T21:00:25.764Z","updatedAt":"2024-10-09T18:27:34.550Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":11,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"web-development","label":"Web Development"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2UAcvr6PzVPi56m6nsBv2F","type":"Entry","createdAt":"2024-03-19T16:15:17.347Z","updatedAt":"2024-10-09T18:27:26.169Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"startups","label":"Startups"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rym8Y8A56ngjMrr6oSlmh","type":"Entry","createdAt":"2024-01-11T21:00:35.775Z","updatedAt":"2024-11-21T18:57:56.722Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":186,"revision":94,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"devops","label":"DevOps"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1W2ZAgfSK2jhEsyHPYV3ic","type":"Entry","createdAt":"2024-01-11T21:00:29.315Z","updatedAt":"2024-11-21T18:57:45.088Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":162,"revision":82,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"ai","label":"AI"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3eooBSzENNTxGyphoW95TR","type":"Entry","createdAt":"2024-01-11T21:00:28.899Z","updatedAt":"2024-11-21T18:58:04.176Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":142,"revision":73,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"security","label":"Security"}}],"settings":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"LWmmcZOWG55rwQfwAumwE","type":"Entry","createdAt":"2024-10-14T19:50:19.827Z","updatedAt":"2024-10-14T20:03:09.129Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":6,"revision":3,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"pageSettings"}},"locale":"en-US"},"fields":{"title":"/events/constellation-joburg","hasMinimalFooter":false,"isHidden":false}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6rMgBauS5tzkJLqA4KVwL1","type":"Entry","createdAt":"2024-09-06T13:17:51.852Z","updatedAt":"2024-09-11T13:01:28.011Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":12,"revision":4,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/events/devoxx-belgium-2024","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6iEhRYjER372wvSHNKZrOv","type":"Entry","createdAt":"2024-09-06T13:17:52.288Z","updatedAt":"2024-09-06T13:17:52.288Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":12,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"resourceContainer"}},"locale":"en-US"},"fields":{"internalTitle":"Resource Page for /events/devoxx-belgium-2024","title":"Devoxx Belgium 2024","description":"Devoxx Belgium 2024 (21st edition), a 5-day technology conference, is expected to draw over 3,500 attendees. With tickets selling out in just a few seconds last year, we anticipate the same level of excitement and rapid sell-out this year!","body":"This year’s event will showcase some of the most innovative and inspiring speakers in the industry, with a special focus on Java 23 and Generative AI. Attendees will experience a diverse range of local and global talent, presenting groundbreaking developments in programming such as Java, Cloud, AI \u0026 Big Data, Security, Architecture, Programming Languages, Methodologies, and Developer Culture.\n\nAttending Devoxx Belgium provides an excellent opportunity to expand your knowledge, sharpen your skills, and gain hands-on experience with the latest technologies, especially in AI and its applications.\n\nDevoxx, a series of technology conferences, is held in various countries including Belgium, France, the UK, Poland, Morocco, Ukraine and Greece. Additionally, our platform for smaller events, VoxxedDays, is organized in various locations globally.","resource":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"734kOH7GhQ6jLuIakHCw5R","type":"Entry","createdAt":"2024-09-06T13:17:52.350Z","updatedAt":"2024-10-03T12:52:30.556Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":14,"revision":3,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"event"}},"locale":"en-US"},"fields":{"startTime":"2024-10-07T09:00+01:00","endTime":"2024-10-11T18:00+01:00","location":"Belgium","speakers":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7vePCd4zeREwsEQydwFIxU","type":"Entry","createdAt":"2024-09-05T09:42:10.551Z","updatedAt":"2024-11-21T19:13:19.211Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":45,"revision":22,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"person"}},"locale":"en-US"},"fields":{"name":"Joseph Katsioloudes","avatar":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"454KCkAzNVz3Vd7ZN1k9W0","type":"Asset","createdAt":"2024-09-05T09:42:10.375Z","updatedAt":"2024-09-06T13:41:28.954Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":6,"revision":3,"locale":"en-US"},"fields":{"title":"Joseph Katsioloudes","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/454KCkAzNVz3Vd7ZN1k9W0/1a00f5fbfe6df1972918cfb1f318727d/jkcso-prof-photo-small.jpg","details":{"size":203875,"image":{"width":851,"height":1026}},"fileName":"jkcso-prof-photo-small.jpg","contentType":"image/jpeg"}}},"title":"Senior Developer Advocate","company":"GitHub","bio":"Joseph is a security expert who empowers developers to ship secure software through his research and education work at the GitHub Security Lab. His recent contributions include video content with combined 1M+ views packed with practical security tips, and the free game gh.io/securecodegame for software developers who want to build a security skillset with 3K+ players worldwide in the first 6 months. As a speaker with 36 talks in the past 2 years, he captivates audiences with his insights and dynamic presentation style."}}],"externalLink":"https://devoxx.be/","eventType":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3WlH36Y45eTchbEmePi3k3","type":"Entry","createdAt":"2024-04-29T16:04:20.836Z","updatedAt":"2024-09-06T13:41:29.135Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":3,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"eventType"}},"locale":"en-US"},"fields":{"title":"Event Type: Conference","text":"conference"}}}},"gated":false,"headerImage":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2PbLYsOL4kK0KdgXFWqaL3","type":"Asset","createdAt":"2024-09-06T13:17:51.813Z","updatedAt":"2024-09-06T13:17:51.813Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":1,"locale":"en-US"},"fields":{"title":"Devoxx Belgium 2024","description":"Devoxx Belgium 2024 (21st edition), a 5-day technology conference, is expected to draw over 3,500 attendees. With tickets selling out in just a few seconds last year, we anticipate the same level of excitement and rapid sell-out this year!","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/2PbLYsOL4kK0KdgXFWqaL3/8b51e965e9a86e09d6843b353d12bba6/devoxxBelgium2024.png","details":{"size":4715095,"image":{"width":3066,"height":1272}},"fileName":"devoxxBelgium2024.png","contentType":"image/png"}}},"headerCTA":"Learn more","buttonCTA":"Learn more","publicationDate":"2024-09-06T00:00","renderedDate":"7-11 October 2024","hidden":false,"rendersRichText":false}},"seo":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"40MmyAmebRLyKWWnMcRvVX","type":"Entry","createdAt":"2024-09-06T13:17:52.443Z","updatedAt":"2024-10-03T12:22:04.834Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":12,"revision":5,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"seo"}},"locale":"en-US"},"fields":{"metaTitle":"Devoxx Belgium 2024","metaDescription":"Devoxx Belgium 2024 (21st edition), a 5-day technology conference, is expected to draw over 3,500 attendees. With tickets selling out in just a few seconds last year, we anticipate the same level of excitement and rapid sell-out this year!","openGraphTitle":"Devoxx Belgium 2024","openGraphDescription":"Devoxx Belgium 2024 (21st edition), a 5-day technology conference, is expected to draw over 3,500 attendees. With tickets selling out in just a few seconds last year, we anticipate the same level of excitement and rapid sell-out this year!"}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rym8Y8A56ngjMrr6oSlmh","type":"Entry","createdAt":"2024-01-11T21:00:35.775Z","updatedAt":"2024-11-21T18:57:56.722Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":186,"revision":94,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"devops","label":"DevOps"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3eooBSzENNTxGyphoW95TR","type":"Entry","createdAt":"2024-01-11T21:00:28.899Z","updatedAt":"2024-11-21T18:58:04.176Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":142,"revision":73,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"security","label":"Security"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5R9zfL5sHOvIqOX4WnG1mJ","type":"Entry","createdAt":"2024-01-11T21:00:30.758Z","updatedAt":"2024-11-21T18:58:00.399Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":77,"revision":40,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"github-advanced-security","label":"GitHub Advanced Security"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1W2ZAgfSK2jhEsyHPYV3ic","type":"Entry","createdAt":"2024-01-11T21:00:29.315Z","updatedAt":"2024-11-21T18:57:45.088Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":162,"revision":82,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"ai","label":"AI"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"30jxd01lzaVcW2aRJaGbLm","type":"Entry","createdAt":"2024-09-09T13:45:31.541Z","updatedAt":"2024-10-09T18:27:12.216Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":15,"revision":7,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"security-lab","label":"Security Lab"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3WJ35qNgeGZjq46S5MZ4Zw","type":"Entry","createdAt":"2024-07-30T15:54:40.997Z","updatedAt":"2024-07-30T15:54:40.997Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/events/global-game-jam","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3kct8wvB4RN3dZyccBNENH","type":"Entry","createdAt":"2024-07-30T15:54:41.095Z","updatedAt":"2024-10-03T12:25:49.003Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":23,"revision":4,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"resourceContainer"}},"locale":"en-US"},"fields":{"internalTitle":"Resource Page for /events/global-game-jam","title":"Global Game Jam","description":"The Global Game Jam® (GGJ®) is the world's largest game creation event taking place in physical locations across the globe. Think of it as a 48 hour hackathon focused on game development around a theme.","body":"The Global Game Jam’s mission is to stimulate innovation, experimentation, and collaboration in games. The annual event begins on a Friday afternoon in January and kicks off with video keynotes and advice from leaders in the game development industry.","resource":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7vzt4iiAaN9cx41ai4AA57","type":"Entry","createdAt":"2024-07-30T15:54:41.147Z","updatedAt":"2024-07-30T15:56:29.007Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":7,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"event"}},"locale":"en-US"},"fields":{"startTime":"2025-01-20T00:00-04:00","endTime":"2025-01-26T00:00-04:00","externalLink":"https://globalgamejam.org","eventType":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"gnBkIzA4fPap0Wxvao9SF","type":"Entry","createdAt":"2024-04-29T16:04:20.729Z","updatedAt":"2024-04-29T16:04:20.729Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":1,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"eventType"}},"locale":"en-US"},"fields":{"title":"Event Type: Coding Competition","text":"coding competition"}}}},"gated":false,"headerImage":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"355XY9EJntM112jsmF0SAh","type":"Asset","createdAt":"2024-07-30T15:54:40.968Z","updatedAt":"2024-07-30T15:54:40.968Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":1,"locale":"en-US"},"fields":{"title":"global-game-jam","description":"Global Game Jam","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/355XY9EJntM112jsmF0SAh/e56f3921226998e966b92c6ed0df2431/global-game-jam.png","details":{"size":245926,"image":{"width":1200,"height":630}},"fileName":"global-game-jam.png","contentType":"image/png"}}},"headerCTA":"Learn more","buttonCTA":"Learn more","publicationDate":"2024-07-30T00:00","renderedDate":"January, 20-26 2025","hidden":false,"rendersRichText":false}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"66ZbPV0otmVKN6yFLZzjdT","type":"Entry","createdAt":"2024-07-29T23:07:42.173Z","updatedAt":"2024-07-29T23:07:42.173Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":7,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/events/hackcon24","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"61P9gDo3KcEplokAGLbwuj","type":"Entry","createdAt":"2024-07-29T23:07:42.306Z","updatedAt":"2024-10-03T12:26:10.576Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":25,"revision":3,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"resourceContainer"}},"locale":"en-US"},"fields":{"internalTitle":"Resource Page for /events/hackcon24","title":"MLH Hackcon 2024","description":"Hackcon brings together 300+ hackathon organizers and campus tech leaders for two days of interactive sessions on community building, event planning, and the hacker experience. Come for the learning, stay for the camp activities!","body":"## Meet Community Leaders\n\nHackcon is a unique opportunity to meet like-minded individuals from across the country. It’s where friendships are formed, partnerships are started, and tech leaders meet all together in-person one last time before they go off into the real world.\n\n## Learn from the Best\n\nThere is no better place to learn how to organize a hackathon and run a community on campus. At Hackcon, you’ll have the chance to meet like-minded individuals and hear from the most experienced leaders in our community.\n## Enjoy the Great Outdoors\n\nUnplug from your devices and enjoy the beautiful scenery of upstate New York. Enjoy a range of fun outdoor activities like swimming, s’mores, and tie dye! By the end of the event, you’ll feel relaxed and recharged for the new school year. ","resource":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4xM7rGsBuN8efjNxNykH9T","type":"Entry","createdAt":"2024-07-29T23:07:42.342Z","updatedAt":"2024-08-06T18:24:41.526Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":10,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"event"}},"locale":"en-US"},"fields":{"startTime":"2024-08-23T00:00-07:00","endTime":"2024-08-25T00:00-07:00","speakers":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6PcFnnLBbb42zpAt0sOzlK","type":"Entry","createdAt":"2024-07-29T21:34:26.342Z","updatedAt":"2024-10-09T19:03:05.804Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"person"}},"locale":"en-US"},"fields":{"name":"Mike Swift","avatar":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3mKqpTEk2eBqpttewz7vXJ","type":"Asset","createdAt":"2024-07-29T21:32:32.338Z","updatedAt":"2024-07-29T21:32:32.338Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":1,"locale":"en-US"},"fields":{"title":"Mike Swift","description":"Mike Swift","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/3mKqpTEk2eBqpttewz7vXJ/7a18b383f8042fd011b5056cbb6a8229/swift.jpeg","details":{"size":43317,"image":{"width":192,"height":192}},"fileName":"swift.jpeg","contentType":"image/jpeg"}}},"title":"CEO","company":"Major League Hacking","bio":"Swift is the CEO \u0026 Co-Founder of [Major League Hacking (MLH)](https://mlh.io/), where they have played a pivotal role in building one of the largest developer communities in the world. MLH's community is a platform where the next generation of technologists and founders learn essential skills and build their professional networks.\n\nSwift was previously named to the Forbes 30 Under 30 in the Education category. They founded Hacker League, which was acquired by Intel in 2013, and served as the first developer evangelist for SendGrid, which went public in 2017 and was later acquired by Twilio in 2019."}}],"externalLink":"https://ti.to/mlh/mlh-hackcon-2024","eventType":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3WlH36Y45eTchbEmePi3k3","type":"Entry","createdAt":"2024-04-29T16:04:20.836Z","updatedAt":"2024-09-06T13:41:29.135Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":3,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"eventType"}},"locale":"en-US"},"fields":{"title":"Event Type: Conference","text":"conference"}}}},"gated":false,"headerImage":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2R9YqFJnNCWm1rHXcuiAx6","type":"Asset","createdAt":"2024-07-29T22:51:41.202Z","updatedAt":"2024-07-29T23:06:51.917Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":15,"revision":3,"locale":"en-US"},"fields":{"title":"MLH Hackcon x GitHub","description":"MLH Hackcon","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/2R9YqFJnNCWm1rHXcuiAx6/e28a9fc6b27569dbfbdc4577cb434f8c/1200x900__1_-min.png","details":{"size":142569,"image":{"width":1200,"height":630}},"fileName":"1200x900 (1)-min.png","contentType":"image/png"}}},"headerCTA":"Learn more","buttonCTA":"Learn more","publicationDate":"2024-07-29T00:00","renderedDate":"August 22-25, 2024","hidden":false,"rendersRichText":false}},"seo":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rNhJrlnsGdDutmfoVxvyy","type":"Entry","createdAt":"2024-07-29T23:07:42.371Z","updatedAt":"2024-10-03T12:24:51.849Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":17,"revision":5,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"seo"}},"locale":"en-US"},"fields":{"metaTitle":"MLH Hackcon 24 x GitHub","metaDescription":"Hackcon brings together 300+ hackathon organizers and campus tech leaders for two days of interactive sessions on community building, event planning, and the hacker experience. Come for the learning, stay for the camp activities! ","metaImage":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2R9YqFJnNCWm1rHXcuiAx6","type":"Asset","createdAt":"2024-07-29T22:51:41.202Z","updatedAt":"2024-07-29T23:06:51.917Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":15,"revision":3,"locale":"en-US"},"fields":{"title":"MLH Hackcon x GitHub","description":"MLH Hackcon","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/2R9YqFJnNCWm1rHXcuiAx6/e28a9fc6b27569dbfbdc4577cb434f8c/1200x900__1_-min.png","details":{"size":142569,"image":{"width":1200,"height":630}},"fileName":"1200x900 (1)-min.png","contentType":"image/png"}}},"openGraphTitle":"MLH Hackcon 24 x GitHub","openGraphDescription":"Hackcon brings together 300+ hackathon organizers and campus tech leaders for two days of interactive sessions on community building, event planning, and the hacker experience. Come for the learning, stay for the camp activities! "}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1YYJMTgxg4N4gN2GHbkIez","type":"Entry","createdAt":"2024-08-19T18:59:58.369Z","updatedAt":"2024-08-19T18:59:58.369Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/events/rsec2024","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2JQMsZ4yphNcqXCwbDRDYj","type":"Entry","createdAt":"2024-08-19T18:59:58.460Z","updatedAt":"2024-10-03T12:23:10.297Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"resourceContainer"}},"locale":"en-US"},"fields":{"internalTitle":"Resource Page for /events/rsec2024","title":"Research Software Engineering Conference 2024","description":"The international Research Software Engineering community convenes for an exciting week of sessions, speakers, and networking. I will bring together a mix of hundreds of engineers, developers, researchers, community managers, funders and educators on a shared journey of learning and growth.","body":"## Keynotes\nOpen to all registered attendees, our keynote addresses feature inspirational and visionary thought leaders from academia and industry. We are pleased to welcome Anne-Marie Imafidon (one of Forbes Magazine's top 50 women in tech globally), Muzlifah Haniffa (Interim Head of Cellular Genetics at the Wellcome Sanger Institute), and Martin Sharkey (founder and CEO of CloudKubed) to speak at RSECon24.\n\n## Programme\nRSECon aims to deliver a relevant, inclusive, and engaging conference experience for the RSE community, featuring a balanced and varied programme that caters to all roles and skill levels. We are committed to creating an environment where individuals from diverse backgrounds can fully participate and contribute.\n\n## Networking\nWe’re hosting a series of enjoyable and relaxed social events and activities designed to help you mingle and network with friends and colleagues from the community.\n\n## Community Awards\nWe’d like to recognise three amazing people for their outstanding contribution to the RSE Community in the past 12 months. The categories are : Impact, Rising Star, and Training \u0026 Education.","resource":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1tYwoUjec34i2u2VE8RyWq","type":"Entry","createdAt":"2024-08-19T18:51:33.426Z","updatedAt":"2024-10-03T12:23:12.883Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":9,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"event"}},"locale":"en-US"},"fields":{"startTime":"2024-09-03T00:00-07:00","endTime":"2024-09-05T00:00-07:00","location":"United Kingdom","speakers":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3GhfZDodxK05abFsXP1zqv","type":"Entry","createdAt":"2024-08-19T18:50:14.007Z","updatedAt":"2024-10-09T19:02:43.423Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":19,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"person"}},"locale":"en-US"},"fields":{"name":"Dr Anne-Marie Imafidon","avatar":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6MQVV4jLkvjSXRcJxk211h","type":"Asset","createdAt":"2024-08-19T18:47:34.779Z","updatedAt":"2024-08-19T18:47:34.779Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"locale":"en-US"},"fields":{"title":"Dr Anne-Marie Imafidon","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/6MQVV4jLkvjSXRcJxk211h/7e00ad5475c906631402af124800c9c4/AM-Imafidon.webp","details":{"size":73314,"image":{"width":610,"height":610}},"fileName":"AM-Imafidon.webp","contentType":"image/webp"}}},"title":"Chancellor ","company":"Glasgow Caledonian University","bio":"Dr Anne-Marie Imafidon MBE is a prodigy in every sense of the word. Aged 11, she was the youngest girl ever to pass A-level computing, and was just 20 years old when she received her Master’s Degree in Mathematics and Computer Science from the University of Oxford.\n\nSince then, she has forged an enviable CV, including positions at Goldman Sachs, Hewlett-Packard and Deutsche Bank. Then there are the Honorary Doctorates from Open University, Glasgow Caledonian University, Kent University, Bristol University, Coventry University, Royal Holloway, University of London \u0026 Bath University and an Honorary Fellowship at Keble College, Oxford. She chairs UD Music Foundation, sits on the Council of Research England and served as the 2022-2023 President of the British Science Association. In 2021 she began a run as temporary Arithmetician on Channel 4’s longest running gameshow Countdown, as maternity cover for Rachel Riley. In 2024 she became Chancellor of Glasgow Caledonian University.\n\nIt is this wealth of experience and pioneering spirit that led her to co-found the Stemettes, an award-winning social initiative dedicated to inspiring and promoting the next generation of young women in the STEM sectors. Since its inception 11 years ago, it has exposed more than 65,000 young people across Europe to Anne-Marie’s vision for a more diverse and balanced science and tech community. In 2022 she released her book She’s in CTRL a guidebook for women to take back tech."}}],"externalLink":"https://rsecon24.society-rse.org/","eventType":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3WlH36Y45eTchbEmePi3k3","type":"Entry","createdAt":"2024-04-29T16:04:20.836Z","updatedAt":"2024-09-06T13:41:29.135Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":3,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"eventType"}},"locale":"en-US"},"fields":{"title":"Event Type: Conference","text":"conference"}}}},"gated":false,"headerImage":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"EvC1Pp5HiKmPtWxSrHipz","type":"Asset","createdAt":"2024-08-19T18:55:10.800Z","updatedAt":"2024-08-19T18:55:10.800Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":8,"revision":1,"locale":"en-US"},"fields":{"title":"RSEC Conf 2024 Hero","description":"rsec conf 2024 save the date image","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/EvC1Pp5HiKmPtWxSrHipz/863f0edbb075dac57e987d96f9e3fa5b/Screenshot_2024-08-19_at_11.53.56_AM.png","details":{"size":795526,"image":{"width":1379,"height":570}},"fileName":"Screenshot 2024-08-19 at 11.53.56 AM.png","contentType":"image/png"}}},"headerCTA":"Learn More","buttonCTA":"Learn More","publicationDate":"2024-08-19T00:00","renderedDate":"Sept 03-05, 2024","hidden":false,"rendersRichText":false}},"seo":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"0WZ8wSCU2xerreS8bN7HQ","type":"Entry","createdAt":"2024-08-19T18:59:58.604Z","updatedAt":"2024-10-03T12:23:02.474Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":14,"revision":5,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"seo"}},"locale":"en-US"},"fields":{"metaTitle":"GitHub at RSEC 2024","metaDescription":"The international Research Software Engineering community convenes for an exciting week of sessions, speakers, and networking. We will bring together a mix of hundreds of engineers, developers, researchers, community managers, funders and educators on a shared journey of learning and growth.","metaImage":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"EvC1Pp5HiKmPtWxSrHipz","type":"Asset","createdAt":"2024-08-19T18:55:10.800Z","updatedAt":"2024-08-19T18:55:10.800Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":8,"revision":1,"locale":"en-US"},"fields":{"title":"RSEC Conf 2024 Hero","description":"rsec conf 2024 save the date image","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/EvC1Pp5HiKmPtWxSrHipz/863f0edbb075dac57e987d96f9e3fa5b/Screenshot_2024-08-19_at_11.53.56_AM.png","details":{"size":795526,"image":{"width":1379,"height":570}},"fileName":"Screenshot 2024-08-19 at 11.53.56 AM.png","contentType":"image/png"}}},"openGraphTitle":"GitHub at RSEC 2024","openGraphDescription":"The international Research Software Engineering community convenes for an exciting week of sessions, speakers, and networking. We will bring together a mix of hundreds of engineers, developers, researchers, community managers, funders and educators on a shared journey of learning and growth."}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6pxXKKKDPAgHO6RN44qaQ","type":"Entry","createdAt":"2024-01-11T21:00:30.179Z","updatedAt":"2024-10-09T18:27:45.823Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":27,"revision":14,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"opensource","label":"Open Source"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1ZjQDPJVVVexnIuDxA6sTe","type":"Entry","createdAt":"2024-01-11T21:00:23.186Z","updatedAt":"2024-10-09T18:27:29.216Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":19,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"tools","label":"Tools"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7w5vv6s54daf382juJ9tmU","type":"Entry","createdAt":"2023-08-24T13:18:51.433Z","updatedAt":"2024-02-21T16:27:07.746Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":3,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/financial-services/secure-software-development","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"29UxrdEKZvA6c8zpGrVxiQ","type":"Entry","createdAt":"2022-03-14T02:31:53.306Z","updatedAt":"2024-10-03T12:41:00.867Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":57,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"resourceContainer"}},"locale":"en-US"},"fields":{"internalTitle":"Resource Page for /financial-services/secure-software-development","path":"/financial-services/secure-software-development","title":"Software development in the financial sector—Security is important","description":"Secure financial software development is important and failure to properly safeguard data can have profound impact on a company.","body":"## Introduction\n\nTrust is the foundation of the relationship between financial service\ninstitutions (FSIs) and their customers—and with each other. FSIs’ ability to\nprevent sensitive data from falling into the wrong hands is a cornerstone of\nthis trust. Globally, governments have responded with a variety of regulatory\nframeworks obligating FSIs to protect customer data with severe sanctions\nimposed on firms that fail to do so. Failure to properly safeguard data can have\nprofound and lasting impact on a company’s reputation and their business.\n\nTo make matters more complex, software has become a central component of FSIs’\nbusiness and will continue to increase in importance. However, strict regulatory\nand compliance requirements govern the way FSIs build their software, from the\nprocesses they follow to tools they use. These requirements are often\nprohibitive enough to compromise performance and stifle innovation.\n\nThe good news is secure development doesn’t have to be a barrier to\ncollaboration or innovation. Financial institutions are uniquely positioned to\ncreate impactful, forward-thinking user experiences, and many of them are doing\njust that. Thousands of organizations are using GitHub to free their workflows\nfrom insular development and build secure processes that give engineering teams\nthe flexibility to do their best work.\n\nWith consumer expectations higher than ever and increased pressure to lower\ncosts, efficient, collaborative, and secure workflows can help teams shift focus\nto where it matters most: Building the best, most innovative software for their\ncustomers.\n\nIn this article, we’ll outline the unique regulatory and technical challenges\nthat FSIs face, how to address them, and how GitHub can help.\n\n## Safeguarding customer data\n\nFSIs handle some of the most sensitive data in the world. They’re engaged in a\nconstant arms race with those trying to obtain this data for criminal\npurposes—from individual hackers to state actors deploying considerable skill\nand resources in their efforts to undermine security. Fortunately, there are\nbest practices and tools that can help companies secure their development\nprocesses and keep sensitive data safe.\n\nThere is no single solution or approach that can guarantee security. Instead,\neffective security relies on a layered approach, enforcing checks and safeguards\nat multiple points across data paths and workflows. This layered approach\nincludes a combination of tools, practices, and culture.\n\n### Build a culture of security\n\nA corporate culture that places security at the center of everything is key to\nenforcing security policies at scale. Creating a security culture means building\nprocesses that make everyone’s job. Examples include regular training on secure\npractices, highlighting the danger of social paths to infiltration like phishing\nattacks, as well as technical means.\n\n#### Specific best practices include:\n\n- Enforcement of password policies, including complex passwords, regular password changes, and the use of password managers and generators to enhance password security\n- Use of two factor authentication\n- Education and training regarding the dangers of public networks, as well as the physical protection of devices like laptops, tablets, and cell phones\n- Use of VPNs to secure access to internal corporate networks\n\n### Always encrypt data\n\nOne of the best ways to avoid unauthorized access to data is encryption. Even if\na bad actor obtains access to data transmission, strong encryption can render\nthat success of little or no value. Again, employing a layered approach is most\neffective when implementing an encryption strategy. This means:\n\n- Encrypting data in transit when it’s being transmitted between a permanent store and an end user\n- Encrypting data ‘at rest’ in the databases where it’s stored\n\n#### Encryption in transit\n\nAs a standard practice, any web-based effort should employ end-to-end encryption\nusing modern encryption protocols such as TLS. TLS helps secure communication\nusing strong, certificate-based encryption that can be essentially unbreakable\nin any practical sense. TLS also verifies each party in a network transaction,\npreventing ‘man-in-the-middle’ attacks, where a bad actor poses as a trusted\npartner in a transaction. Services like LetsEncrypt have greatly reduced the\ncost and complexity of implementing effective TLS and obtaining the required\ncertificates.\n\n#### Encryption at rest\n\nSome applications provide encryption services at the software layer. This sort\nof encryption is better than none but can bring significant costs in terms of\ncomplexity and reduced performance. Encryption solutions that run as close to\nthe storage hardware as possible, such as filesystem encryption or hardware\nappliance level encryption can provide a transparent layer of encryption for all\napplications.\n\n#### Encryption with GitHub\n\nAll communication to and from our self-hosted solution GitHub Enterprise Server\nis protected by TLS with the option to use LetsEncrypt for inexpensive and\nsimple certificate maintenance. GitHub also secures communication between Git\nclients used by developers and the server using SSH. Both are strong\ncryptographic protocols that present robust barriers to unauthorized\ninterception or leakage of sensitive data.\n\n### Adopt strong identity management practices\n\nThe more passwords users have to remember, the more likely they are to default\nto insecure practices like writing passwords down or reusing easy-to-remember\n(and thus easy to crack) passwords. Using a centralized identity management\nsystem like LDAP, coupled with a single sign-on (SSO) solution can greatly\nreduce the number of passwords users have to manage, making it easier for them\nto follow sound password management practices.\n\n#### Using GitHub with identity management systems\n\nGitHub Enterprise supports authentication and authorization using a variety of\nidentity management solutions like Active Directory and LDAP. GitHub also\nsupports SAML, which allows enterprises to provide a single sign-on experience\nfor users.\n\n### Prevent database attacks\n\nData entering an organization can be a dangerous vector that bad actors use to\nattempt to gain access to your systems. Many of these strategies rely on passing\ndangerous payloads to poorly designed systems, exploiting flaws to gain control.\nSQL Injection is a classic example, occuring when a bad actor intentionally\nappends SQL code to seemingly harmless data like a customer name in a web\napplication. Flaws in the underlying software can result in arbitrary execution\nof this code, resulting in data being unintentionally returned to the user.\nThese attacks are particularly dangerous because they may not cause an error or\nother event that might attract the attention of IT administrators overseeing\nsecurity.\n\nAgain, a layered approach is most effective in ensuring that only valid data\nenters your environment. This begins with the code in the user interface and\nextends throughout the datapath through middleware to underlying data stores.\nBuilding validation into the code at each step can dramatically reduce your\nvulnerability to these sorts of attacks. A combination of frequent manual and\nautomated reviews and tests are critical to supporting this effort.\n\n\u003caside\u003e\n \u003ch4\u003eThree ways you can prevent common vulnerabilities:\u003c/h4\u003e\n \u003col\u003e\n \u003cli\u003eOnly accept validated data into production systems\u003c/li\u003e\n \u003cli\u003eMonitor systems for errors and edge cases\u003c/li\u003e\n \u003cli\u003eRestrict access to data systems of records as much as possible by adopting an identity management system\u003c/li\u003e\n \u003c/ol\u003e\n\u003c/aside\u003e\n\n### Segregate sensitive data\n\nThe fewer places sensitive data exists, the fewer opportunities (or less\n“surface area”) attackers have available to exploit. Reducing surface area means\nimplementing practices like storing passwords in a password manager rather than\nentrusting them to individuals and never committing passwords, access/ API\ntokens, encryption keys, and other sensitive data to publicly accessible\nrepositories.\n\nSensitive data should never be used or stored in non-production systems. Of\ncourse, teams might require large amounts of data that reliably mimic the real\nthing for testing, tempting some engineers to ‘refresh’ development and testing\nenvironments with production data. Instead of using production data, consider\nusing a tool that allows you to configure and then generate large sets of dummy\ndata. These allow reliable, realistic testing without risking sensitive\ninformation.\n\n#### Preventing sensitive data from reaching repositories with pre-receive hooks\n\nIn addition to storing sensitive data separately, you can prevent the\ninadvertent (or deliberate) committing of protected data to repositories with\npre-receive hooks —simple scripts that run in an isolated environment on the\nGitHub appliance. These scripts are triggered before code is pushed to GitHub to\nexamine commits, identify sensitive information, and prevent it from being added\nto your repositories.\n\nAfter examining code, pre-receive hooks return only one of two possible values:\nsuccess, or failure. If it fails, developers will see a message informing them\nthat their commit failed, along with any other useful information your team\nchooses to include. The code is committed to the repository only if the\npre-receive hooks succeeds. The result? No unwanted code makes it to your\nrepositories, protecting your company from violations, liability threats, and\nregulatory penalties.\n\n### Enforce protections on source code\n\nEffective security requires controlling access to sensitive information and the\nsource code for the software that manages it. Granular controls mean you can\neffectively protect this information without creating a security-bound\nenvironment that denies access too comprehensively. GitHub can support your\naccess policies with **protected branches**. Protected branches help maintain\nthe integrity of your code by limiting several features of Git on any branch an\nadministrator chooses to protect. For example, administrators can restrict who\ncan post to a branch to specific users and teams. They can also disable force\npushes that might change or delete code on certain branches.\n\n#### Additional safeguards include:\n\n- Preventing deletion of a branch\n- Preventing code which fails automated testing and Continuous Integration (CI) checks from being merged\n- Requiring manual, auditable reviews from one or more people\n- Specifying ‘code owners’ for any part of a codebase and requiring their review\n\n\u003caside\u003e\n \u003ch4\u003eSteps you can take to protect your customer’s most important information:\u003c/h4\u003e\n \u003cul\u003e\n \u003cli\u003eUse secure connections everywhere (no excuses!) and only transfer data using protocols like SSH and SFTP\u003c/li\u003e\n \u003cli\u003eNever commit passwords, access/API tokens, encryption keys, and more to publicly accessible repositories\u003c/li\u003e\n \u003cli\u003eUse protected branches and pre-receive hooks to account for human error and protect sensitive data from making it to production\u003c/li\u003e\n \u003cli\u003eUse an identity solution to restrict access and make sure only the right people have access to sensitive data\u003c/li\u003e\n \u003c/ul\u003e\n\u003c/aside\u003e\n\n## Securing the entire development process\n\nYour software codebase and the development processes that shape the way your\nteam builds are at the center of your layered security strategy. As developers\nwork together and contribute changes, it’s important to put certain safeguards\nin place through a combination of best practices and GitHub features that make\nsure the code that reaches production is secure.\n\n### Include legacy core systems\n\nTools like mainframes remain central to FSI operations more than 50 years after\ntheir initial introduction. These systems provide unparalleled capabilities but\ncan also pose unique challenges to secure. FSI teams should periodically\nevaluate all legacy systems and balance the cost of updating them against the\npotential risks they pose in terms of causing a security breach. Replacing a\nlegacy system may not seem cost-effective until the threat of fines in the\nbillions of dollars or a devastating security breach destroying public goodwill\nare included in the equation.\n\n#### Selecting a mainframe system\n\nGitHub’s partner ecosystem includes many vendors producing, selling, and\nmaintaining mainframe systems. For example, IBM recently announced extensions\nfor Git, the technology underpinning GitHub, that allow modern DevSecOps\npractices to be applied to mainframe development workflows.\n\n### Automate processes to prevent bugs and errors\n\nManual oversight is a critical component of an effective, layered security\nstrategy. However, overreliance on people can be dangerous. People get tired,\nbecome distracted, or simply make mistakes. Put people to work where their\nskills are most important, and delegate repetitive, tedious, yet still critical\ntasks to machines. Your team can leverage fully automated **Continuous\nIntegration and Delivery (CI/CD)** in your GitHub workflows.\n\n\u003caside\u003e\n \u003ch4\u003eOrganizations that implemented automated dependency management, for example, had \u003cem\u003e60 percent fewer\u003c/em\u003e security vulnerabilities in their delivered software than those which did not.\u003c/h4\u003e\n\u003c/aside\u003e\n\nCI/CD tools test and evaluate your code every single time a commit is pushed to\na repository. With CI/ CD in place, GitHub can test new code with existing\nproduction code to ensure the proposed changes work as intended and do not\nintroduce security flaws into existing systems. These tests can also extend to\nexamining all the code that your code depends on (its dependencies).\n\nImplementing automation isn’t difficult—and it can yield immediate and\nmeasurable results. In a 2017 study, the IEEE found that organizations that\nimplemented automated dependency management, for example, had 60 percent fewer\nsecurity vulnerabilities in their delivered software than those which did not\n\n#### Integrating CI/CD with GitHub\n\nIntegrating CI/CD is easy with GitHub, and it won’t affect developers’ existing\nworkflows unless an automated test result requires them to take action. The less\nintrusive automation is for developers, the more likely it is to be widely\nadopted and its benefits felt across an organization.\n\nGitHub integrates with a variety of CI tools like Jenkins, Travis, and CircleCI.\nThese automatically fetch code from a GitHub repository every time code is\npushed, run tests, and return the results to GitHub with either a pass/fail\nstatus.\n\nThey also return notifications on the status of each test, so developers can see\nwhere their code is failing. You and your team can decide whether or not you’d\nlike the results of CI tests to prevent code from getting merged into the code\nbase or simply alert developers without taking action. If CI statuses are\nrequired, the pull request can only be merged when all required CI jobs\ncomplete. If you choose to prevent merging, the pull request can’t be merged\nuntil the required tests return successfully.\n\n\u003caside\u003e\n \u003ch4\u003eIntegrating security tools and workflows\u003c/h4\u003e\n \u003cp\u003eHundreds of tools integrate with GitHub — and many of them can help you keep your code and customer data safe\u003c/p\u003e\n \u003cul\u003e\n \u003cli\u003e\u003cstrong\u003eCI:\u003c/strong\u003e CI tools like Travis CI, CircleCI, and AppVeyor automatically build and test code as you push it to GitHub, preventing bugs from being deployed to production\u003c/li\u003e\n \u003cli\u003e\u003cstrong\u003eError reporting:\u003c/strong\u003e Tools like Snyk, Sentry, and Dependabot help your team find, fix, and prevent vulnerabilities\u003c/li\u003e\n \u003cli\u003e\u003cstrong\u003eCode quality:\u003c/strong\u003e Code Climate and Codeacy automate reviews with security and quality checks to prevent human error and streamline your team’s code review processes\u003c/li\u003e\n \u003c/ul\u003e\n \u003cp\u003e\u003cstrong\u003eReady to see what kinds of tools are available to your team? Visit GitHub Marketplace at github.com/marketplace or browse \u003ca href=\"https://github.com/works-with\"\u003egithub.com/works-with\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003c/aside\u003e\n\n### Enforce manual reviews with required code review\n\nAutomation is important, but manual review of code will always remain a critical\ncomponent of your security strategy. The more eyes on a given codebase, the more\nlikely errors or vulnerabilities are likely to be detected. Reviews also serve a\nvaluable function beyond security, helping ensure that institutional knowledge\nis shared, and providing learning and mentoring opportunities for developers of\nall skill levels. The result of regular, organization-sanctioned reviews is a\ncodebase that is not only more secure but also healthier and more consistent.\n\nGitHub provides a flexible framework for mandating code reviews. You can:\n- Require reviews from one or more users with write access to the repository containing the changes\n- Require additional review and approval by one or more **code owners**. Code owners can be any combination of individual users or teams assigned specific responsibility for a section of a codebase, a particular technology, or any combination of the two\n- Empower reviewers to provide detailed, line-by-line feedback on any proposed changes\n- Ensure that all reviews are logged and auditable in the future\n\n\u003caside\u003e\n \u003ch4\u003eThree steps to take to help your team prevent bugs and errors:\u003c/h4\u003e\n \u003col\u003e\n \u003cli\u003eBuild in automated security scanning to reduce human error, test for weaknesses that may not be introduced otherwise, and save developers time\u003c/li\u003e\n \u003cli\u003eIntegrate automation directly into your team’s GitHub workflow with status checks\u003c/li\u003e\n \u003cli\u003eEnsure all of your team members feel an equal and shared responsibility for building and maintaining secure software\u003c/li\u003e\n \u003c/ol\u003e\n\u003c/aside\u003e\n\n### Audit and compliance-proof your workflow\n\nThe regulatory standards under which FSIs work today require a robust logging\nand auditing capability. Not only do teams need to create an effective security\nstrategy. They also have to prove they’ve done so to regulators. GitHub provides\nflexible and powerful logging, auditing, and reporting frameworks to help ensure\ncompliance and the ability to prove it.\n\n#### Audit logging\n\nGitHub Enterprise maintains comprehensive logs of user and system activity.\nAudited activity includes every `git push` operation, including who initiated\nthe push, their IP address, and repositories affected by the operation. Logs can\nbe forwarded to an external system (like Logstash or Splunk) for analysis,\nreporting and storage, ensuring compliance with regulatory requirements.\n\n#### Archiving respositories\n\nRepositories that are no longer maintained can be archived a nd set to\n‘read-only’ mode. This ensures that no new code can be committed to the\nrepository while still allowing users to view its content.\n\n#### Blocking force pushes\n\nGit allows developers to rewrite commit history by ‘force pushing’ changes.\nWhile sometimes necessary in order to fix mistakes, this capability presents a\nchallenge when regulations require data to be immutable. GitHub Enterprise\nallows administrators to block force pushes for individual repositories or for\nthe entire appliance, ensuring commit history can never be rewritten.\n\n#### Preventing users from deleting repositories\n\nThe ability to delete repositories can be restricted to administrators.\n\n### Move security all the way left\n\nIn the past, security was all too often an afterthought. In fact, the protocols\nwhich run the internet were not designed with security in mind at all. Bolted-on\naftermarket security is better than nothing, but far from sufficient in today’s\nfrenzied threat environment. To be effective, security must be built into every\nsoftware project from its very inception. Moving security left means shifting\nsecurity from the right-hand side of your timeline, near delivery, all the way\nto the left, at the beginning. This ensures that security remains front and\ncenter throughout the entire product lifecycle.\n\nInvolving security teams early can also influence design, development, and\nmaintenance decisions before they become too difficult and expensive to change.\nThis advice is simple enough, but process means very little if leadership and\nengineering teams aren’t on board. Secure development requires everyone to adopt\nan effective security culture.\n\n#### Creating a security culture\n\nDevSecOps is a way of thinking about security throughout the development cycle\nand distributing it across teams and roles. It no longer makes sense for\nsecurity teams to join the process after an application is built, only to\ndiscover exploitable flaws. With security experts closely aligned from the\nstart, teams can create collaborative processes that proactively support\nsecurity as they build.\n\nDevSecOps principles may require organizations to shift their team culture in\naddition to their infrastructure, but more reliable software and fewer surprises\nare worthwhile results. Some companies even invite security specialists into\nscrum teams to make sure it’s a priority throughout the process.\n\n## Customer story: Societe Generale\n\nSociete Generale is a French multinational banking and financial services\ncompany, employing 146,000 people in 66 countries worldwide. Global Banking \u0026\nInvestor Solutions (GBIS) is one of the bank's three core businesses, bringing\ntogether Corporate and Investment Banking, Asset Management, Private Banking and\nSecurities Services.\n\n\u003e Our digital transformation is a strategic priority for the bank [...] We firmly believe that adopting the same tools and practices as the world's top software companies is the key to our success!\n\n\u003csmall\u003e\u003cstrong\u003eAmir Jaballah\u003c/strong\u003e, Global Head of Continuous Delivery Platform, Societe Generale\u003c/small\u003e\n\nLed by Chief Information Officer Carlos Goncalves, GBIS embarked on a major\noverhaul of its information systems aimed primarily at embracing continuous\ndelivery. In 2014, the Information Systems department equipped its continuous\ndelivery platform with GitHub, which has since been adopted by more than 3,000\nemployees worldwide.\n\n\u003e There has been an 80 percent reduction in administration costs over Societe Generale's previous solution. [GitHub] has freed up more time to provide change management support for the teams involved.\n\n\u003csmall\u003e\u003cstrong\u003eAmir Jaballah\u003c/strong\u003e\u003c/small\u003e\n\nTo meet its strategic objective of transforming 50 percent of GBIS software\napplications by the end of 2016, the GBIS IT department required a fast,\nhigh performance version control platform that fit seamlessly with the\ndepartment's integration and test systems. To offer its developers the a high\nstandard for functionality and performance levels, the bank shifted away from\ncentralized version control to GitHub Enterprise Server — the best solution to\nmeet these needs.\n\n\u003caside\u003e\n \u003ch4\u003eFive key features convinced Societe Generale upfront that GitHub offered the best solution:\u003c/h4\u003e\n \u003cul\u003e\n \u003cli\u003e\u003cstrong\u003eRepositories:\u003c/strong\u003e Developers can create their own repositories and work in teams, significantly reducing project delivery time\u003c/li\u003e\n \u003cli\u003e\u003cstrong\u003eCode review:\u003c/strong\u003e Developers can review and propose changes to code developed by their co-workers, ensuring it’s free of errors\u003c/li\u003e\n \u003cli\u003e\u003cstrong\u003eCollaboration:\u003c/strong\u003e Developers can also search and reuse code that already exists across the organization instead of reinventing field-tested solutions developed for other project\u003c/li\u003e\n \u003cli\u003e\u003cstrong\u003eDocumentation versioning:\u003c/strong\u003e Programmers can create and host documentation as close as possible to the applications\u003c/li\u003e\n \u003cli\u003e\u003cstrong\u003eSecurity:\u003c/strong\u003e the platform is hosted on internal servers. GitHub Enterprise Server uses the enterprise directory to manage user authentication and logs all user and system activity\u003c/li\u003e\n \u003c/ul\u003e\n\u003c/aside\u003e\n\n## Summary\n\nKeeping data safe has never been more critical to the success, even survival of\nyour business. Implementing effective security might seem overwhelming, but it\ndoesn’t have to be. One of the advantages of a layered defense is to break up\nthe task of implementing security into multiple, less daunting sub-projects. The\nmost important thing to do is to start, or if you’ve started, continue to test,\nexamine, question, and improve. Attackers never rest, and neither can you.\n\nPart of the challenge in implementing effective security lies in balancing it\nwith the freedom that software developers need to innovate, thrive, and be\nproductive. Too little security is simply ineffective.\n\nToo much, on the other hand, can stifle creativity or encourage people to avoid\nyour security efforts altogether. Tools like GitHub provide you with the\ncontrols you need to help find that balance for your organization.\n\nUltimately our goal is to help you transform your perception of security beyond\na threat and into an opportunity to build customer satisfaction, attract new\ncustomers, and further differentiate your business. Good security pays off in\ncustomer trust—and partners like GitHub can help you on your way to an effective\nsecurity strategy.\n\n---\n\n\u003caside\u003e\n \u003ch4\u003eKey Takeaways:\u003c/h4\u003e\n \u003col\u003e\n \u003cli\u003eYour data are under constant attack. A breach can have very serious consequences for your business and, increasingly, for you personally\u003c/li\u003e\n \u003cli\u003eThere is no magic fix for security. Instead, a layered defense comprised of multiple tools, processes, and practices is much more resilient and effective\u003c/li\u003e\n \u003cli\u003eEffective security requires an effective security culture. Security must be a stakeholder in every important initiative and decision\u003c/li\u003e\n \u003cli\u003eEncrypt everything — no exceptions\u003c/li\u003e\n \u003cli\u003eUse a multi-layered approach to vet and validate all data entering your systems to prevent malicious attacks like SQL Injection\u003c/li\u003e\n \u003cli\u003ePlan for and include older, but still mission-critical systems like mainframes. Include the possible costs in terms of fines, civil liability, and lost goodwill when evaluating and upgrading legacy tools\u003c/li\u003e\n \u003cli\u003eLeverage automation where you can, particularly for software testing\u003c/li\u003e\n \u003c/ol\u003e\n\u003c/aside\u003e\n\n---\n\n#### We’re here to help! GitHub supports building robust, secure code in all of these ways, and more. Ready to get in touch?","resource":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"493R4A2eqboFQUlUnaoYn5","type":"Entry","createdAt":"2022-03-14T02:31:19.966Z","updatedAt":"2022-03-14T02:31:19.966Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"article"}},"locale":"en-US"},"fields":{"attachment":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6TrzMl8SzaInSlABhd13aO","type":"Asset","createdAt":"2022-03-12T00:39:38.305Z","updatedAt":"2022-03-12T22:50:56.408Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":6,"revision":2,"locale":"en-US"},"fields":{"title":"/downloads/GitHub_eBook_FSI_Secure_Development.pdf","description":"GitHub_eBook_FSI_Secure_Development","file":{"url":"//assets.ctfassets.net/wfutmusr1t3h/6TrzMl8SzaInSlABhd13aO/97261e260ddcca1d6e1692b0044f31ec/GitHub_eBook_FSI_Secure_Development.pdf","details":{"size":1344492},"fileName":"GitHub_eBook_FSI_Secure_Development.pdf","contentType":"application/pdf"}}}}},"gated":false,"sfCampaignID":"7015c000001SNN7AAO","campaign":"Resources_Contact_Us","contentForm":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3qHQ6eSp20iGQrFIfaBJnn","type":"Entry","createdAt":"2022-09-29T19:33:25.277Z","updatedAt":"2024-11-21T18:47:33.914Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":240,"revision":109,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"form"}},"locale":"en-US"},"fields":{"name":"Form_Ungated_Contact","title":"Wondering how GitHub can help your business?","subtitle":"Tell us more about your needs","eloquaFormName":"ContactUs_TemplateForm","formCTA":"Contact GitHub","formElements":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3Euizanl72D7hjUPBu1cz4","type":"Entry","createdAt":"2023-04-04T12:27:44.815Z","updatedAt":"2024-11-21T18:50:24.686Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":364,"revision":182,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Last name","htmlName":"lastName","type":"text","placeholder":"Last name","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6FMPEpNvfZnVg5o5pNdmAz","type":"Entry","createdAt":"2023-04-04T12:27:23.053Z","updatedAt":"2024-11-21T18:50:31.728Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":365,"revision":182,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"First name","htmlName":"firstName","type":"text","placeholder":"First name","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6s0zB2lwQZz6ZhWkZQd5r0","type":"Entry","createdAt":"2022-09-29T18:54:51.900Z","updatedAt":"2024-11-21T18:50:59.400Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":226,"revision":108,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Work Email","htmlName":"emailAddress","type":"email","placeholder":"you@company.com","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3IumXBD9IQf1aCt2cTCoVh","type":"Entry","createdAt":"2023-06-23T19:25:51.253Z","updatedAt":"2024-11-21T18:50:49.013Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":204,"revision":101,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Phone","htmlName":"phone1","type":"tel","placeholder":"12 3456 7890","required":false}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5HOQnFx9120Wj4hlsjXaJn","type":"Entry","createdAt":"2022-03-12T20:19:03.843Z","updatedAt":"2024-11-21T18:50:03.222Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":366,"revision":182,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Company","htmlName":"company","type":"text","placeholder":"Acme, Inc","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1MS9X9RNVd6BmPN91fMsVg","type":"Entry","createdAt":"2022-09-29T19:31:39.832Z","updatedAt":"2024-11-21T18:50:39.044Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":201,"revision":100,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"What can we help you with?","htmlName":"contactComments","type":"textarea","placeholder":"Tell us how we can help. For support questions, head to github.com/contact ","required":false}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5zNCZ4hVsez1AWpp6Fga7h","type":"Entry","createdAt":"2022-03-12T20:23:32.191Z","updatedAt":"2024-11-20T14:58:44.487Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":16,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"htmlName":"elqCustomerGUID","type":"hidden","required":false}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7a3HDjJcLkWmsPKHATLvna","type":"Entry","createdAt":"2022-03-12T20:24:00.556Z","updatedAt":"2024-11-20T14:58:44.527Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":18,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"htmlName":"elqCookieWrite","type":"hidden","required":false,"defaultValue":"0"}}]}},"headerCTA":"Download PDF","publicationDate":"2018-08-07T00:00-05:00","hidden":false,"marketoCampaign":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2ywGzPlFH9kTdiOBF75ggA","type":"Entry","createdAt":"2023-09-15T23:09:46.917Z","updatedAt":"2024-11-20T14:58:44.542Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":14,"revision":7,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"marketoCampaign"}},"locale":"en-US"},"fields":{"title":"CO-GHG-CONTACT-FY23-10Oct-01-WW-Resources-Contact-Request/406214","cDLProgramName":"406214","source":"Contact Request","formFields":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6z2cGa4cuvoWqGxS3Ejhv4","type":"Entry","createdAt":"2023-09-12T16:31:47.760Z","updatedAt":"2024-11-21T18:54:10.268Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":119,"revision":55,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"sFDCLastCampaignStatus","htmlName":"sFDCLastCampaignStatus","type":"hidden","required":false,"defaultValue":"Responded"}}],"active":true}}}},"seo":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2m5qsRuzVJTVPeJ1pJykB6","type":"Entry","createdAt":"2022-03-14T02:30:38.028Z","updatedAt":"2024-10-03T13:06:06.739Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":13,"revision":6,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"seo"}},"locale":"en-US"},"fields":{"metaTitle":"Software development in the financial sector—Security is important","metaDescription":"Secure financial software development is important and failure to properly safeguard data can have profound impact on a company.","openGraphTitle":"Software development in the financial sector—Security is important","openGraphDescription":"Secure financial software development is important and failure to properly safeguard data can have profound impact on a company."}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3opE463NGWveGk1zw6ac90","type":"Entry","createdAt":"2023-10-21T12:18:44.781Z","updatedAt":"2024-02-21T16:27:28.411Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":9,"revision":3,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/github-winterfest-2023-webinar","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5ymAkscqET45LWc2wTLC9a","type":"Entry","createdAt":"2023-10-21T11:52:47.063Z","updatedAt":"2024-10-03T12:50:12.033Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":204,"revision":15,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"resourceContainer"}},"locale":"en-US"},"fields":{"internalTitle":"Resource Page for /github-winterfest-2023-webinar","path":"/github-winterfest-2023-webinar","title":"GitHub Winterfest 2023","description":"That's a wrap! Thank you for joining us at GitHub Winterfest 2023!","body":"The on-demand video is here. If you’re interested in experimenting with the projects presented, we made all the source code of the demos publicly available—and you can find out more in the [GitHub Winterfest 2023 repository](https://github.com/github-winterfest-2023).\n \u003cbr\u003e\n\n\u003cdiv class=\"embed-responsive embed-responsive-16by9\"\u003e\n \u003ciframe src=\"https://www.youtube.com/embed/-ZElrarlCyw\" width=\"640\" height=\"375\" frameborder=\"0\" allowfullscreen\u003e\u003c/iframe\u003e\n\u003c/div\u003e\n\n### What was in store: \u003cbr\u003e\n\n- __From code to cookies: A sweet and simple guide to GitHub Projects__ \u003cbr\u003e\nIn this session, we’ll teach you how to use GitHub Projects to make your holiday baking easier and more fun. You’ll learn how to create a project board, add issues and pull requests, and move them across different stages of your baking pipeline.\n\n- __Fast-track your season’s greetings using GitHub and AI__ \u003cbr\u003e\nAre you finding it stressful getting all those season’s greetings in the (virtual) mail? Using automation and AI on GitHub, you can accelerate the process and make sure that all your loved ones receive a beautiful AI-crafted message just in time.\n\n- __AI-powered winter whimsy: Create a poetry generator with GitHub Copilot and Codespaces__ \u003cbr\u003e \nExplore the synergy between human imagination and AI as we build a winter-themed poetry generator using GitHub Copilot and Codespaces. Whether you’re a developer or a poetry enthusiast (or both!), we hope you’ll join us for this literary adventure. \u003cbr\u003e\n\nWe look forward to welcoming you again to our next event!\n","resource":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6OnJZDjOBTajSB96jqnUBq","type":"Entry","createdAt":"2023-12-06T21:48:38.804Z","updatedAt":"2023-12-06T21:48:38.804Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"event"}},"locale":"en-US"},"fields":{"startTime":"2023-12-05T16:00+01:00","endTime":"2023-12-05T17:00+01:00","speakers":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1DIwUxEdy9yyhfLCf4Ving","type":"Entry","createdAt":"2023-04-17T14:32:44.660Z","updatedAt":"2024-11-21T19:13:11.688Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":65,"revision":30,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"person"}},"locale":"en-US"},"fields":{"name":"April Yoho","avatar":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5hdevqYBWfI6v8rxh1587i","type":"Asset","createdAt":"2023-04-17T18:44:10.524Z","updatedAt":"2024-10-24T12:30:34.612Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":8,"revision":2,"locale":"en-US"},"fields":{"title":"April Yoho","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/5hdevqYBWfI6v8rxh1587i/045044f24f509b977f3f88c04d485368/1708685949857.jpeg","details":{"size":105545,"image":{"width":800,"height":800}},"fileName":"1708685949857.jpeg","contentType":"image/jpeg"}}},"title":"Senior Developer Advocate","company":"GitHub"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2sVccrLc7Rkp8RaQ8ydHez","type":"Entry","createdAt":"2023-04-26T10:29:20.935Z","updatedAt":"2024-10-09T18:45:58.630Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":38,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"person"}},"locale":"en-US"},"fields":{"name":"Anna Wintermann","avatar":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"WHwmNzRP1jJEaoGmr5pGc","type":"Asset","createdAt":"2023-04-26T10:28:59.995Z","updatedAt":"2023-04-26T10:28:59.995Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"locale":"en-US"},"fields":{"title":"1581086337693","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/WHwmNzRP1jJEaoGmr5pGc/9951d9f0c8139cb322b43f58820425a7/1581086337693.jpeg","details":{"size":81731,"image":{"width":800,"height":800}},"fileName":"1581086337693.jpeg","contentType":"image/jpeg"}}},"title":"Enterprise Sales Manager","company":"GitHub "}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"WwknbUvSD7xtVfC3RKenS","type":"Entry","createdAt":"2023-10-21T11:49:34.137Z","updatedAt":"2024-10-09T18:43:58.350Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":37,"revision":17,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"person"}},"locale":"en-US"},"fields":{"name":"Malte Lantin","avatar":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"65jmc76NU0vDxRECeg8AQp","type":"Asset","createdAt":"2023-10-21T11:48:03.354Z","updatedAt":"2023-10-21T11:48:11.954Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":2,"locale":"en-US"},"fields":{"title":"Malte Lantin","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/65jmc76NU0vDxRECeg8AQp/4d428315cc60c4095f69c1ec0ca3e966/1693230994509.jpeg","details":{"size":40840,"image":{"width":500,"height":500}},"fileName":"1693230994509.jpeg","contentType":"image/jpeg"}}},"title":"Senior Solutions Engineer","company":"GitHub"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3zmjlzngaaJj54egRtb5ae","type":"Entry","createdAt":"2023-10-21T11:47:03.452Z","updatedAt":"2024-10-09T18:43:54.936Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":47,"revision":21,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"person"}},"locale":"en-US"},"fields":{"name":"Emmanuel Roullit","avatar":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5adhBbHkAzUzoxuLvNDzNa","type":"Asset","createdAt":"2024-09-11T13:24:45.186Z","updatedAt":"2024-09-11T13:24:45.186Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"locale":"en-US"},"fields":{"title":"Screenshot 2024-09-11 at 15.24.38","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/5adhBbHkAzUzoxuLvNDzNa/5b2300314e80fb6f796705f9f2778e7b/Screenshot_2024-09-11_at_15.24.38.png","details":{"size":454060,"image":{"width":548,"height":558}},"fileName":"Screenshot 2024-09-11 at 15.24.38.png","contentType":"image/png"}}},"title":"Senior Solutions Engineer","company":"GitHub"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2NjFrTTJyfqWnB5dDY9xpQ","type":"Entry","createdAt":"2023-10-21T11:49:38.478Z","updatedAt":"2024-11-21T19:21:09.436Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":45,"revision":21,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"person"}},"locale":"en-US"},"fields":{"name":"Valentin Heidelberger","avatar":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"25PSvL10azgJR1CBMw9u2T","type":"Asset","createdAt":"2023-10-21T11:49:19.370Z","updatedAt":"2023-10-21T11:49:19.370Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"locale":"en-US"},"fields":{"title":"Valentin Heidelberger","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/25PSvL10azgJR1CBMw9u2T/e55d84c14f71db8ac76e8c465aeb3027/1517948648336.jpeg","details":{"size":33311,"image":{"width":500,"height":500}},"fileName":"1517948648336.jpeg","contentType":"image/jpeg"}}},"title":"Senior Solutions Engineer","company":"GitHub"}}]}},"gated":false,"sfCampaignID":"7015c000001igkyAAA","campaign":"2024q2-evt-emea-regionalmarketing-winterfest2023","contentForm":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"600bbq5DhOwybc3yBeFDGI","type":"Entry","createdAt":"2022-03-14T00:23:20.654Z","updatedAt":"2024-11-21T18:47:49.244Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":122,"revision":53,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"form"}},"locale":"en-US"},"fields":{"name":"form-webcast-signup","title":"Sign Up to Join","subtitle":" ","eloquaFormName":"Webinar_TemplateForm","formCTA":"Register","formElements":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1oc1nNacqE77XQSuJXaNdl","type":"Entry","createdAt":"2022-03-12T20:17:06.911Z","updatedAt":"2024-11-21T18:50:17.376Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":273,"revision":134,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Work Email Address","htmlName":"emailAddress","type":"email","placeholder":"you@example.com","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6FMPEpNvfZnVg5o5pNdmAz","type":"Entry","createdAt":"2023-04-04T12:27:23.053Z","updatedAt":"2024-11-21T18:50:31.728Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":365,"revision":182,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"First name","htmlName":"firstName","type":"text","placeholder":"First name","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3Euizanl72D7hjUPBu1cz4","type":"Entry","createdAt":"2023-04-04T12:27:44.815Z","updatedAt":"2024-11-21T18:50:24.686Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":364,"revision":182,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Last name","htmlName":"lastName","type":"text","placeholder":"Last name","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"40sP3SIDeLJIKo7gAvmAdv","type":"Entry","createdAt":"2022-03-12T20:30:16.766Z","updatedAt":"2024-11-21T18:50:10.375Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":256,"revision":126,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Job Title","htmlName":"title","type":"text","placeholder":"Job Title","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5HOQnFx9120Wj4hlsjXaJn","type":"Entry","createdAt":"2022-03-12T20:19:03.843Z","updatedAt":"2024-11-21T18:50:03.222Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":366,"revision":182,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Company","htmlName":"company","type":"text","placeholder":"Acme, Inc","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5zNCZ4hVsez1AWpp6Fga7h","type":"Entry","createdAt":"2022-03-12T20:23:32.191Z","updatedAt":"2024-11-20T14:58:44.487Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":16,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"htmlName":"elqCustomerGUID","type":"hidden","required":false}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7a3HDjJcLkWmsPKHATLvna","type":"Entry","createdAt":"2022-03-12T20:24:00.556Z","updatedAt":"2024-11-20T14:58:44.527Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":18,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"htmlName":"elqCookieWrite","type":"hidden","required":false,"defaultValue":"0"}}]}},"extraFormFields":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3h8RLi98FBWNpCNOaFk0wY","type":"Entry","createdAt":"2022-03-30T18:37:38.562Z","updatedAt":"2024-11-21T18:49:47.789Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":180,"revision":86,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Phone","htmlName":"phone","type":"tel","placeholder":"12 3456 7890","required":false}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"54pKfmh8xnI4ZrKFEoRAJ8","type":"Entry","createdAt":"2022-10-21T13:47:11.540Z","updatedAt":"2024-11-21T18:51:26.608Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":45,"revision":20,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Address","htmlName":"address","type":"text","placeholder":"123 Street","required":false}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6zCQSKjJTZ5g5ggies06vj","type":"Entry","createdAt":"2022-10-21T13:47:59.282Z","updatedAt":"2024-11-21T18:51:33.970Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":45,"revision":21,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"City","htmlName":"city2","type":"text","required":false}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6rFt7nPOYMxrgnVv1VQK5","type":"Entry","createdAt":"2022-10-21T13:48:23.006Z","updatedAt":"2024-11-21T18:51:41.073Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":44,"revision":21,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Postal Code","htmlName":"zip","type":"text","required":false}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6shzXkav3X5xzvnIRMCf5E","type":"Entry","createdAt":"2022-03-30T19:00:54.871Z","updatedAt":"2024-11-21T18:49:55.990Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":194,"revision":91,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Country","htmlName":"country2","type":"dropdown","placeholder":"Select country","required":true,"dropdownAsJson":[{"label":"Select Country","value":""},{"label":"Albania","value":"AL"},{"label":"Åland Islands","value":"AX"},{"label":"Algeria","value":"DZ"},{"label":"American Samoa","value":"AS"},{"label":"Andorra","value":"AD"},{"label":"Angola","value":"AO"},{"label":"Anguilla","value":"AI"},{"label":"Antarctica","value":"AQ"},{"label":"Antigua and Barbuda","value":"AG"},{"label":"Argentina","value":"AR"},{"label":"Armenia","value":"AM"},{"label":"Aruba","value":"AW"},{"label":"Australia","value":"AU"},{"label":"Austria","value":"AT"},{"label":"Azerbaijan","value":"AZ"},{"label":"Bahamas (the)","value":"BS"},{"label":"Bahrain","value":"BH"},{"label":"Bangladesh","value":"BD"},{"label":"Barbados","value":"BB"},{"label":"Belarus","value":"BY"},{"label":"Belgium","value":"BE"},{"label":"Belize","value":"BZ"},{"label":"Benin","value":"BJ"},{"label":"Bermuda","value":"BM"},{"label":"Bhutan","value":"BT"},{"label":"Bolivia (Plurinational State of)","value":"BO"},{"label":"Bonaire, Sint Eustatius and Saba","value":"BQ"},{"label":"Bosnia and Herzegovina","value":"BA"},{"label":"Botswana","value":"BW"},{"label":"Bouvet Island","value":"BV"},{"label":"Brazil","value":"BR"},{"label":"British Indian Ocean Territory (the)","value":"IO"},{"label":"Brunei Darussalam","value":"BN"},{"label":"Bulgaria","value":"BG"},{"label":"Burkina Faso","value":"BF"},{"label":"Burundi","value":"BI"},{"label":"Cabo Verde","value":"CV"},{"label":"Cambodia","value":"KH"},{"label":"Cameroon","value":"CM"},{"label":"Canada","value":"CA"},{"label":"Cayman Islands (the)","value":"KY"},{"label":"Central African Republic (the)","value":"CF"},{"label":"Chad","value":"TD"},{"label":"Chile","value":"CL"},{"label":"China","value":"CN"},{"label":"Christmas Island","value":"CX"},{"label":"Cocos (Keeling) Islands (the)","value":"CC"},{"label":"Colombia","value":"CO"},{"label":"Comoros (the)","value":"KM"},{"label":"Congo (the Democratic Republic of the)","value":"CD"},{"label":"Congo (the)","value":"CG"},{"label":"Cook Islands (the)","value":"CK"},{"label":"Costa Rica","value":"CR"},{"label":"Croatia","value":"HR"},{"label":"Cuba","value":"CU"},{"label":"Curaçao","value":"CW"},{"label":"Cyprus","value":"CY"},{"label":"Czechia","value":"CZ"},{"label":"Côte d'Ivoire","value":"CI"},{"label":"Denmark","value":"DK"},{"label":"Djibouti","value":"DJ"},{"label":"Dominica","value":"DM"},{"label":"Dominican Republic (the)","value":"DO"},{"label":"Ecuador","value":"EC"},{"label":"Egypt","value":"EG"},{"label":"El Salvador","value":"SV"},{"label":"Equatorial Guinea","value":"GQ"},{"label":"Eritrea","value":"ER"},{"label":"Estonia","value":"EE"},{"label":"Eswatini","value":"SZ"},{"label":"Ethiopia","value":"ET"},{"label":"Falkland Islands (the) [Malvinas]","value":"FK"},{"label":"Faroe Islands (the)","value":"FO"},{"label":"Fiji","value":"FJ"},{"label":"Finland","value":"FI"},{"label":"France","value":"FR"},{"label":"French Guiana","value":"GF"},{"label":"French Polynesia","value":"PF"},{"label":"French Southern Territories (the)","value":"TF"},{"label":"Gabon","value":"GA"},{"label":"Gambia (the)","value":"GM"},{"label":"Georgia","value":"GE"},{"label":"Germany","value":"DE"},{"label":"Ghana","value":"GH"},{"label":"Gibraltar","value":"GI"},{"label":"Greece","value":"GR"},{"label":"Greenland","value":"GL"},{"label":"Grenada","value":"GD"},{"label":"Guadeloupe","value":"GP"},{"label":"Guam","value":"GU"},{"label":"Guatemala","value":"GT"},{"label":"Guernsey","value":"GG"},{"label":"Guinea","value":"GN"},{"label":"Guinea-Bissau","value":"GW"},{"label":"Guyana","value":"GY"},{"label":"Haiti","value":"HT"},{"label":"Heard Island and McDonald Islands","value":"HM"},{"label":"Holy See (the)","value":"VA"},{"label":"Honduras","value":"HN"},{"label":"Hong Kong","value":"HK"},{"label":"Hungary","value":"HU"},{"label":"Iceland","value":"IS"},{"label":"India","value":"IN"},{"label":"Indonesia","value":"ID"},{"label":"Iran (Islamic Republic of)","value":"IR"},{"label":"Iraq","value":"IQ"},{"label":"Ireland","value":"IE"},{"label":"Isle of Man","value":"IM"},{"label":"Israel","value":"IL"},{"label":"Italy","value":"IT"},{"label":"Jamaica","value":"JM"},{"label":"Japan","value":"JP"},{"label":"Jersey","value":"JE"},{"label":"Jordan","value":"JO"},{"label":"Kazakhstan","value":"KZ"},{"label":"Kenya","value":"KE"},{"label":"Kiribati","value":"KI"},{"label":"Korea (the Democratic People's Republic of)","value":"KP"},{"label":"Korea (the Republic of)","value":"KR"},{"label":"Kuwait","value":"KW"},{"label":"Kyrgyzstan","value":"KG"},{"label":"Lao People's Democratic Republic (the)","value":"LA"},{"label":"Latvia","value":"LV"},{"label":"Lebanon","value":"LB"},{"label":"Lesotho","value":"LS"},{"label":"Liberia","value":"LR"},{"label":"Libya","value":"LY"},{"label":"Liechtenstein","value":"LI"},{"label":"Lithuania","value":"LT"},{"label":"Luxembourg","value":"LU"},{"label":"Macao","value":"MO"},{"label":"Madagascar","value":"MG"},{"label":"Malawi","value":"MW"},{"label":"Malaysia","value":"MY"},{"label":"Maldives","value":"MV"},{"label":"Mali","value":"ML"},{"label":"Malta","value":"MT"},{"label":"Marshall Islands (the)","value":"MH"},{"label":"Martinique","value":"MQ"},{"label":"Mauritania","value":"MR"},{"label":"Mauritius","value":"MU"},{"label":"Mayotte","value":"YT"},{"label":"Mexico","value":"MX"},{"label":"Micronesia (Federated States of)","value":"FM"},{"label":"Moldova (the Republic of)","value":"MD"},{"label":"Monaco","value":"MC"},{"label":"Mongolia","value":"MN"},{"label":"Montenegro","value":"ME"},{"label":"Montserrat","value":"MS"},{"label":"Morocco","value":"MA"},{"label":"Mozambique","value":"MZ"},{"label":"Myanmar","value":"MM"},{"label":"Namibia","value":"NA"},{"label":"Nauru","value":"NR"},{"label":"Nepal","value":"NP"},{"label":"Netherlands (the)","value":"NL"},{"label":"New Caledonia","value":"NC"},{"label":"New Zealand","value":"NZ"},{"label":"Nicaragua","value":"NI"},{"label":"Niger (the)","value":"NE"},{"label":"Nigeria","value":"NG"},{"label":"Niue","value":"NU"},{"label":"Norfolk Island","value":"NF"},{"label":"Northern Mariana Islands (the)","value":"MP"},{"label":"Norway","value":"NO"},{"label":"Oman","value":"OM"},{"label":"Pakistan","value":"PK"},{"label":"Palau","value":"PW"},{"label":"Palestine, State of","value":"PS"},{"label":"Panama","value":"PA"},{"label":"Papua New Guinea","value":"PG"},{"label":"Paraguay","value":"PY"},{"label":"Peru","value":"PE"},{"label":"Philippines (the)","value":"PH"},{"label":"Pitcairn","value":"PN"},{"label":"Poland","value":"PL"},{"label":"Portugal","value":"PT"},{"label":"Puerto Rico","value":"PR"},{"label":"Qatar","value":"QA"},{"label":"Republic of North Macedonia","value":"MK"},{"label":"Romania","value":"RO"},{"label":"Russian Federation (the)","value":"RU"},{"label":"Rwanda","value":"RW"},{"label":"Réunion","value":"RE"},{"label":"Saint Barthélemy","value":"BL"},{"label":"Saint Helena, Ascension and Tristan da Cunha","value":"SH"},{"label":"Saint Kitts and Nevis","value":"KN"},{"label":"Saint Lucia","value":"LC"},{"label":"Saint Martin (French part)","value":"MF"},{"label":"Saint Pierre and Miquelon","value":"PM"},{"label":"Saint Vincent and the Grenadines","value":"VC"},{"label":"Samoa","value":"WS"},{"label":"San Marino","value":"SM"},{"label":"Sao Tome and Principe","value":"ST"},{"label":"Saudi Arabia","value":"SA"},{"label":"Senegal","value":"SN"},{"label":"Serbia","value":"RS"},{"label":"Seychelles","value":"SC"},{"label":"Sierra Leone","value":"SL"},{"label":"Singapore","value":"SG"},{"label":"Sint Maarten (Dutch part)","value":"SX"},{"label":"Slovakia","value":"SK"},{"label":"Slovenia","value":"SI"},{"label":"Solomon Islands","value":"SB"},{"label":"Somalia","value":"SO"},{"label":"South Africa","value":"ZA"},{"label":"South Georgia and the South Sandwich Islands","value":"GS"},{"label":"South Sudan","value":"SS"},{"label":"Spain","value":"ES"},{"label":"Sri Lanka","value":"LK"},{"label":"Sudan (the)","value":"SD"},{"label":"Surilabel","value":"SR"},{"label":"Svalbard and Jan Mayen","value":"SJ"},{"label":"Sweden","value":"SE"},{"label":"Switzerland","value":"CH"},{"label":"Syrian Arab Republic","value":"SY"},{"label":"Taiwan","value":"TW"},{"label":"Tajikistan","value":"TJ"},{"label":"Tanzania, United Republic of","value":"TZ"},{"label":"Thailand","value":"TH"},{"label":"Timor-Leste","value":"TL"},{"label":"Togo","value":"TG"},{"label":"Tokelau","value":"TK"},{"label":"Tonga","value":"TO"},{"label":"Trinidad and Tobago","value":"TT"},{"label":"Tunisia","value":"TN"},{"label":"Turkey","value":"TR"},{"label":"Turkmenistan","value":"TM"},{"label":"Turks and Caicos Islands (the)","value":"TC"},{"label":"Tuvalu","value":"TV"},{"label":"Uganda","value":"UG"},{"label":"Ukraine","value":"UA"},{"label":"United Arab Emirates (the)","value":"AE"},{"label":"United Kingdom of Great Britain and Northern Ireland (the)","value":"GB"},{"label":"United States Minor Outlying Islands (the)","value":"UM"},{"label":"United States of America (the)","value":"US"},{"label":"Uruguay","value":"UY"},{"label":"Uzbekistan","value":"UZ"},{"label":"Vanuatu","value":"VU"},{"label":"Venezuela (Bolivarian Republic of)","value":"VE"},{"label":"Viet Nam","value":"VN"},{"label":"Virgin Islands (British)","value":"VG"},{"label":"Virgin Islands (U.S.)","value":"VI"},{"label":"Wallis and Futuna","value":"WF"},{"label":"Western Sahara","value":"EH"},{"label":"Yemen","value":"YE"},{"label":"Zambia","value":"ZM"},{"label":"Zimbabwe","value":"ZW"}]}}],"headerImage":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3WR1iAatDxRvTNE7YjW40i","type":"Asset","createdAt":"2023-11-08T19:32:53.735Z","updatedAt":"2023-11-08T19:32:53.735Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"locale":"en-US"},"fields":{"title":"Winterfest Banner","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/3WR1iAatDxRvTNE7YjW40i/c64ec229d9ac9a3b8373876927340b8c/Winterfest_Banner.jpg","details":{"size":397911,"image":{"width":1029,"height":541}},"fileName":"Winterfest Banner.jpg","contentType":"image/jpeg"}}},"headerCTA":"Register Now","buttonCTA":"Register Now","publicationDate":"2023-12-05T16:00","renderedDate":"December 5, 2023 | 16:00 - 17:00pm CET","hidden":false,"rendersRichText":false,"marketoCampaign":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"68mO57cLk1sgarhi8lFrPr","type":"Entry","createdAt":"2023-11-06T18:59:55.757Z","updatedAt":"2024-06-20T16:33:39.662Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":11,"revision":4,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"marketoCampaign"}},"locale":"en-US"},"fields":{"title":"CO-GHDO-WBNR-FY24-11Nov-06-GitHub Winterfest 2023/416823","cDLProgramName":"416823","source":"Owned Event: Webinar","formFields":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"bY1toaC1jk9iKFTsHBwFd","type":"Entry","createdAt":"2023-09-12T16:44:56.720Z","updatedAt":"2024-10-03T13:13:47.754Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":28,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"sFDCLastCampaignStatus","htmlName":"sFDCLastCampaignStatus","type":"hidden","required":false,"defaultValue":"Registered"}}],"active":true}}}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1W2ZAgfSK2jhEsyHPYV3ic","type":"Entry","createdAt":"2024-01-11T21:00:29.315Z","updatedAt":"2024-11-21T18:57:45.088Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":162,"revision":82,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"ai","label":"AI"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1GGixFoOiUOgBnnF8gzEFJ","type":"Entry","createdAt":"2024-01-11T21:00:32.787Z","updatedAt":"2024-10-09T18:27:51.429Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":67,"revision":34,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"github-enterprise","label":"GitHub Enterprise"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4ik6i2JvceWSMqqKncAonq","type":"Entry","createdAt":"2023-08-24T13:17:28.274Z","updatedAt":"2024-02-21T16:26:41.328Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":3,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/innersource/best-practices-collaborative-software-dev","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"632AER4k76CfSdFpNvWrlU","type":"Entry","createdAt":"2021-11-19T17:32:39.032Z","updatedAt":"2024-10-03T12:40:32.410Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":52,"revision":21,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"resourceContainer"}},"locale":"en-US"},"fields":{"internalTitle":"Resource Page for /innersource/best-practices-collaborative-software-dev","path":"/innersource/best-practices-collaborative-software-dev","title":"Best practices for a collaborative software development culture","description":"Collaboration, transparency, and code reuse aren’t just found in open source communities.","body":"\nSuccessful software developers build together the same way at work—an approach known as “innersource.” These innersource best practices will help your team create a developer culture that is effective and collaborative.\n\n## Be transparent\n\nTransparency is the baseline for any innersource culture, just as it is for the wider open source community.\n\n- Share projects across your organization as broadly as possible. Exceptions can be made for projects that require a higher level of security on a case-by-case basis.\n- Ensure that your team has the tools and processes to communicate openly and build consistently—and that those tools and processes are being used. If they’re not, find out why and make adjustments until you establish a solid routine.\n- Confirm that your engineering initiatives are well-resourced and supported by leadership.\n- Give developers enough autonomy to contribute to projects outside their immediate teams.\n\n## Distribute workloads\n\nTo effectively adopt innersource practices, contributors need to be able to work easily across teams and organizational silos.\n\n- Make approvals and reviews more effective by distributing control across a smaller group of participants. A small, cross-functional team of decision-makers can also help teams stick to quality standards and get support from leadership.\n- Spread heavy workloads across geographically distributed developers or even with non-developer team members.\n- Keep in mind that non-developers are a valuable asset to your innersource community.\n - **Project managers** can quickly assess the state of the project, and changes made to project timelines can be tied directly to the code in question.\n - **Technical writers** should be encouraged to work alongside project engineers, precisely documenting code features where they originate.\n - **Security engineers** can review code for compliance and security-related weaknesses, preventing issues earlier in the workflow.\n\n## Encourage communication and ongoing review\n\nOpenly sharing work and feedback brings more ideas into your innersource community—and more code.\n\n- Make ample use of your version control system’s commenting, tagging, and review features.\n- Use forks and branches so developers can try different changes without affecting original projects. These tools also make it easy to start with existing solutions, instead of writing new code each time.\n- Encourage developers to share their latest work early on and often by tagging others in their code commits.\n- If someone finds a bug, they should create an issue describing the problem. Tag that same contributor when you update the code so they know the bug has been fixed.\n- Make each step in the software development lifecycle (such as testing and deployment) visible to everyone.\n\n## Don’t forget the documentation\n\nAs innersource projects become more complex, in-code documentation keeps work moving and consistent.\n\n- Document by default, not as an afterthought. Effective documentation makes your decision process clear to outside contributors and avoids wasted resources and duplication.\n- Add README and CONTRIBUTING guides to all repositories to help everyone understand basic usage and project best practices.\n- Use documentation to help onboard and acclimate new contributors and other participants into your process.\n- Update in-code documentation regularly to keep user guides and manuals in sync with the latest version of the code.\n","resource":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4kUV1SzMjJPQxTEw3PKQpJ","type":"Entry","createdAt":"2021-11-19T17:32:37.808Z","updatedAt":"2021-11-19T17:32:37.808Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":1,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"article"}},"locale":"en-US"},"fields":{"attachment":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6o9TRXtsH5IYh6huBiAebK","type":"Asset","createdAt":"2021-11-19T17:32:37.295Z","updatedAt":"2022-03-12T22:14:33.058Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":8,"revision":3,"locale":"en-US"},"fields":{"title":"/downloads/78_GitHub_Best.practices_8.5x11_D1.1.pdf","description":"78_GitHub_Best.practices_8.5x11_D1.1","file":{"url":"//assets.ctfassets.net/wfutmusr1t3h/6o9TRXtsH5IYh6huBiAebK/9df2712da36aa692feab2535e1162160/_downloads_78_GitHub_Best.practices_8.5x11_D1.1.pdf","details":{"size":41538},"fileName":"/downloads/78_GitHub_Best.practices_8.5x11_D1.1.pdf","contentType":"application/pdf"}}}}},"gated":false,"sfCampaignID":"7015c000001SNN7AAO","campaign":"Resources_Contact_Us","contentForm":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3qHQ6eSp20iGQrFIfaBJnn","type":"Entry","createdAt":"2022-09-29T19:33:25.277Z","updatedAt":"2024-11-21T18:47:33.914Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":240,"revision":109,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"form"}},"locale":"en-US"},"fields":{"name":"Form_Ungated_Contact","title":"Wondering how GitHub can help your business?","subtitle":"Tell us more about your needs","eloquaFormName":"ContactUs_TemplateForm","formCTA":"Contact GitHub","formElements":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3Euizanl72D7hjUPBu1cz4","type":"Entry","createdAt":"2023-04-04T12:27:44.815Z","updatedAt":"2024-11-21T18:50:24.686Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":364,"revision":182,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Last name","htmlName":"lastName","type":"text","placeholder":"Last name","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6FMPEpNvfZnVg5o5pNdmAz","type":"Entry","createdAt":"2023-04-04T12:27:23.053Z","updatedAt":"2024-11-21T18:50:31.728Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":365,"revision":182,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"First name","htmlName":"firstName","type":"text","placeholder":"First name","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6s0zB2lwQZz6ZhWkZQd5r0","type":"Entry","createdAt":"2022-09-29T18:54:51.900Z","updatedAt":"2024-11-21T18:50:59.400Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":226,"revision":108,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Work Email","htmlName":"emailAddress","type":"email","placeholder":"you@company.com","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3IumXBD9IQf1aCt2cTCoVh","type":"Entry","createdAt":"2023-06-23T19:25:51.253Z","updatedAt":"2024-11-21T18:50:49.013Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":204,"revision":101,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Phone","htmlName":"phone1","type":"tel","placeholder":"12 3456 7890","required":false}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5HOQnFx9120Wj4hlsjXaJn","type":"Entry","createdAt":"2022-03-12T20:19:03.843Z","updatedAt":"2024-11-21T18:50:03.222Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":366,"revision":182,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Company","htmlName":"company","type":"text","placeholder":"Acme, Inc","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1MS9X9RNVd6BmPN91fMsVg","type":"Entry","createdAt":"2022-09-29T19:31:39.832Z","updatedAt":"2024-11-21T18:50:39.044Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":201,"revision":100,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"What can we help you with?","htmlName":"contactComments","type":"textarea","placeholder":"Tell us how we can help. For support questions, head to github.com/contact ","required":false}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5zNCZ4hVsez1AWpp6Fga7h","type":"Entry","createdAt":"2022-03-12T20:23:32.191Z","updatedAt":"2024-11-20T14:58:44.487Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":16,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"htmlName":"elqCustomerGUID","type":"hidden","required":false}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7a3HDjJcLkWmsPKHATLvna","type":"Entry","createdAt":"2022-03-12T20:24:00.556Z","updatedAt":"2024-11-20T14:58:44.527Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":18,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"htmlName":"elqCookieWrite","type":"hidden","required":false,"defaultValue":"0"}}]}},"headerCTA":"Download PDF","publicationDate":"2019-07-22T04:00:00.000Z","hidden":false,"marketoCampaign":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2ywGzPlFH9kTdiOBF75ggA","type":"Entry","createdAt":"2023-09-15T23:09:46.917Z","updatedAt":"2024-11-20T14:58:44.542Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":14,"revision":7,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"marketoCampaign"}},"locale":"en-US"},"fields":{"title":"CO-GHG-CONTACT-FY23-10Oct-01-WW-Resources-Contact-Request/406214","cDLProgramName":"406214","source":"Contact Request","formFields":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6z2cGa4cuvoWqGxS3Ejhv4","type":"Entry","createdAt":"2023-09-12T16:31:47.760Z","updatedAt":"2024-11-21T18:54:10.268Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":119,"revision":55,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"sFDCLastCampaignStatus","htmlName":"sFDCLastCampaignStatus","type":"hidden","required":false,"defaultValue":"Responded"}}],"active":true}}}},"seo":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"seo--innersource-best-practices-collaborative-software-dev","type":"Entry","createdAt":"2022-02-28T21:20:18.764Z","updatedAt":"2024-10-03T13:05:53.686Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":14,"revision":7,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"seo"}},"locale":"en-US"},"fields":{"metaTitle":"Best practices for a collaborative software development culture","metaDescription":"Collaboration, transparency, and code reuse aren’t just found in open source communities.","openGraphTitle":"Best practices for a collaborative software development culture","openGraphDescription":"Collaboration, transparency, and code reuse aren’t just found in open source communities."}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"gsV9JxqQoGWpvivKryBgO","type":"Entry","createdAt":"2024-03-21T15:42:48.643Z","updatedAt":"2024-03-21T15:42:48.643Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/software-development/how-to-improve-code-with-code-reviews","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5CdFoVief88pDPQWhn9odL","type":"Entry","createdAt":"2024-03-21T15:42:48.744Z","updatedAt":"2024-03-21T15:42:48.744Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":11,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"containerLandingPage"}},"locale":"en-US"},"fields":{"title":"/software-development/how-to-improve-code-with-code-reviews","sections":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5Ctnlqy5iNAiyHgzhHIqrw","type":"Entry","createdAt":"2024-03-21T15:42:48.784Z","updatedAt":"2024-03-21T15:42:48.784Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":16,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionHero"}},"locale":"en-US"},"fields":{"title":"/software-development/how-to-improve-code-with-code-reviews Hero","hero":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"595l1JEq0KwUXFbCJPx8zW","type":"Entry","createdAt":"2024-03-21T15:42:48.806Z","updatedAt":"2024-10-09T16:20:38.975Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":17,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentHero"}},"locale":"en-US"},"fields":{"title":"/software-development/how-to-improve-code-with-code-reviews Hero","heading":"How to improve code with code reviews","text":"Learn about code reviews and gain insights into how they’re essential to increasing code quality. See how code review tools, including AI-powered tools, help development teams streamline the code review process, identify issues, and help developers ship great software faster.","align":"Left"}},"backgroundImage":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2spsdxzN4vkemuZIImw0UH","type":"Asset","createdAt":"2024-03-21T15:42:48.616Z","updatedAt":"2024-03-21T15:42:48.616Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":6,"revision":1,"locale":"en-US"},"fields":{"title":"Collaboration pillar - Dark 2","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/2spsdxzN4vkemuZIImw0UH/c2ae719a82c842dbf04eeb8297da86b4/c2.webp","details":{"size":24196,"image":{"width":2400,"height":1260}},"fileName":"c2.webp","contentType":"image/webp"}}},"theme":"dark"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"28xueqO50bLc3EuX21kKKp","type":"Entry","createdAt":"2024-03-21T15:42:48.830Z","updatedAt":"2024-03-21T15:42:48.830Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentAnchorNav"}},"locale":"en-US"},"fields":{"title":"/software-development/how-to-improve-code-with-code-reviews nav","links":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3LJEtqft0JsL4PdzAYhW6H","type":"Entry","createdAt":"2023-12-15T20:13:46.061Z","updatedAt":"2024-10-09T18:22:54.694Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Overview","text":"Overview","href":"overview"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"13VjH3zCjCrSqNl1aOYuYg","type":"Entry","createdAt":"2024-03-13T16:27:09.199Z","updatedAt":"2024-10-09T18:20:03.374Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Benefits","text":"Benefits","href":"benefits"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5FQoOIqgmNXUYyV8POO8iI","type":"Entry","createdAt":"2024-03-13T16:34:53.867Z","updatedAt":"2024-10-09T18:20:13.946Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":20,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Process","text":"Process","href":"process"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"30WL8NGzdrA7KATIF7S3II","type":"Entry","createdAt":"2024-03-13T16:23:11.261Z","updatedAt":"2024-10-09T18:19:58.040Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Tools","text":"Tools","href":"tools"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6JBpSa6kNeCj0NEnMK6QIU","type":"Entry","createdAt":"2023-03-31T02:17:35.715Z","updatedAt":"2024-10-09T18:22:09.372Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":12,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"FAQs","text":"FAQs","href":"faqs"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4BMpLcDNbjj8U2IC4zWsDY","type":"Entry","createdAt":"2024-03-21T15:42:48.888Z","updatedAt":"2024-03-21T15:42:48.888Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/how-to-improve-code-with-code-reviews Prose - overview","sectionId":"overview","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"20mpEDex4bgtUqltQ0EGY","type":"Entry","createdAt":"2024-03-21T15:42:48.908Z","updatedAt":"2024-10-09T18:32:03.313Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/how-to-improve-code-with-code-reviews Prose - overview","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"What is a code review?","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"A code review is a process where one or more developers review code that another developer wrote. During code review, developers evaluate the code to make sure that it’s ready to merge into the codebase. To help ensure quality, there must be at least one code reviewer who didn’t participate in authoring the code. ","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"The purpose of a code review in ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/software-development/what-is-software-development/"},"content":[{"data":{},"marks":[],"value":"software development","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" is to help ensure that the code meets the organization’s standards and requirements, is of high quality, and is maintainable. In addition to identifying errors and bugs, code reviews also promote a culture of learning and collaboration among the development team.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1v0WVvYRZCB7QMq2D8HFce","type":"Entry","createdAt":"2024-03-21T15:42:49.061Z","updatedAt":"2024-03-21T15:42:49.061Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/how-to-improve-code-with-code-reviews Prose - benefits","sectionId":"benefits","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7dLfZtbjnvBpvRIJNnh5ef","type":"Entry","createdAt":"2024-03-21T15:42:49.168Z","updatedAt":"2024-10-09T18:32:05.852Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":32,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/how-to-improve-code-with-code-reviews Prose - benefits","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Benefits of code reviews","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Also known as peer reviews, code reviews help development teams:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Increase code quality","nodeType":"text"},{"data":{},"marks":[],"value":" by identifying defects in the code and issues such as security vulnerabilities and performance problems—before developers merge the code into an upstream branch. ","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Ensure compliance","nodeType":"text"},{"data":{},"marks":[],"value":" with organizational standards, regulations, and the team’s code style.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Save time and money","nodeType":"text"},{"data":{},"marks":[],"value":" by detecting issues earlier in the software development process before they become more complex and expensive to fix.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Boost collaboration, communication, and knowledge sharing","nodeType":"text"},{"data":{},"marks":[],"value":" among developers by providing a forum to discuss code and ask questions, share ideas and best practices, and learn from each other.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Ensure that the code is maintainable ","nodeType":"text"},{"data":{},"marks":[],"value":"by identifying any software maintenance issues and suggesting improvements.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"Code review challenges","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Although many development teams successfully conduct code reviews, there are some challenges. Code reviews can be: ","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Time-consuming","nodeType":"text"},{"data":{},"marks":[],"value":", especially if the codebase is large. Code reviewers need to spend time reading and understanding the code, which might impact their other projects.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Subjective","nodeType":"text"},{"data":{},"marks":[],"value":", since different reviewers might have different opinions on what constitutes good code. Negative feedback might lead to conflicts between team members.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Costly","nodeType":"text"},{"data":{},"marks":[],"value":",","nodeType":"text"},{"data":{},"marks":[{"type":"bold"}],"value":" ","nodeType":"text"},{"data":{},"marks":[],"value":"especially if developers manually review the code without using any code review tools. Code reviews might be expensive for small teams or startups.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5uZi9T9YgfCxSHF4hjrXOl","type":"Entry","createdAt":"2024-03-21T15:42:49.263Z","updatedAt":"2024-03-21T15:42:49.263Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/how-to-improve-code-with-code-reviews Prose - process","sectionId":"process","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4cVWPTMVkrri1MI0DPnECq","type":"Entry","createdAt":"2024-03-21T15:42:49.283Z","updatedAt":"2024-10-09T18:32:11.935Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":38,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/how-to-improve-code-with-code-reviews Prose - process","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Code review process","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Code reviews typically take place before the testing phase of the ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/software-development/what-is-sdlc/"},"content":[{"data":{},"marks":[],"value":"software development lifecycle","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":". Common steps in the code review process include:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Preparing code","nodeType":"text"},{"data":{},"marks":[],"value":": The code author prepares the code for review by making sure that it’s complete, well-documented, and complies with the organization’s coding standards.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Requesting peer reviews","nodeType":"text"},{"data":{},"marks":[],"value":": The code author submits the code for review to one or more code reviewers. Code review best practices require that more senior developers review code written by junior developers. In large development teams, several developers might be dedicated to code reviews.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Reviewing code","nodeType":"text"},{"data":{},"marks":[],"value":": Code reviewers examine the code, point out any bugs, issues, or architectural flaws, and suggest improvements, typically by adding comments to the code. They may use checklists that might include some of these questions:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Is the code clear and easy to understand?","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Does the code follow the team’s coding standards and guidelines?","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Are there any potential:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Security issues or vulnerabilities?","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Performance issues?","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Maintainability issues?","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Compatibility issues?","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Scalability issues?","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Usability issues?","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Accessibility issues?","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Localization issues?","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Legal or compliance issues?","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Testability issues?","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Documentation issues?","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"}],"nodeType":"list-item"}],"nodeType":"ordered-list"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Discussing comments","nodeType":"text"},{"data":{},"marks":[],"value":": The code author and code reviewers discuss any comments left by reviewers. When code authors don’t agree with a specific comment, they need to successfully defend their position or correct the code to resolve the issue.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Approving code","nodeType":"text"},{"data":{},"marks":[],"value":": After all the comments are addressed, the reviewers approve the code, and it’s merged into the codebase.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"ordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"Types of code reviews","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Code review practices vary depending on the size of the development team and the team’s tools, workflow, and processes. Formal code reviews involve detailed processes with several participants and phases, including meetings where every line of code is reviewed. Also known as Fagan inspections, these detailed group reviews are highly effective in finding code issues and defects.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Development teams might use other processes for code reviews, such as: ","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Over-the-shoulder code reviews","nodeType":"text"},{"data":{},"marks":[],"value":", also known as synchronous code reviews, take place when a code reviewer and the code author look at the code together by reviewing it on the screen at the same time.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Pair programming","nodeType":"text"},{"data":{},"marks":[],"value":", also known as instant code review, takes place when two developers work together—one writes code and the other checks it as it’s written to give instant feedback. ","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Asynchronous code reviews ","nodeType":"text"},{"data":{},"marks":[],"value":"allow reviewers to review the code independently at their own pace. The review request might be passed around by emails sent by the code author or the source code management system. This type of code review is well-suited for teams working remotely or in different time zones. ","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"QA code reviews ","nodeType":"text"},{"data":{},"marks":[],"value":"include one or more quality assurance team members. The quality analyst doesn’t need to have coding experience to participate. It’s helpful to pair the quality analyst with an experienced developer, so they can review the code together.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Tool-assisted code reviews ","nodeType":"text"},{"data":{},"marks":[],"value":"take place when the team uses one or more code review tools to help improve code quality and reduce the time spent on reviews.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2T5tPkjRb61RAbqrAOKcdH","type":"Entry","createdAt":"2024-03-13T16:16:37.625Z","updatedAt":"2024-03-22T14:04:08.326Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionRivers"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","rivers":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5hI6zGmuVkiZ0HSZjw5ElU","type":"Entry","createdAt":"2024-03-13T16:16:37.711Z","updatedAt":"2024-10-09T15:26:03.504Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":28,"revision":9,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentRiver"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","heading":"GitHub’s DevOps Solution","text":"Learn why 90% of the Fortune 100 use GitHub to build, scale, and deliver secure software.","media":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7Rb5ZoUDOX41PpqAibLo9","type":"Asset","createdAt":"2022-11-07T10:15:15.233Z","updatedAt":"2024-03-22T14:04:07.436Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":16,"revision":5,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Dark 1","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/7Rb5ZoUDOX41PpqAibLo9/344247765e0571d768e511fe686cea98/Productivity-DarkMode-1.webp","details":{"size":407100,"image":{"width":2400,"height":1260}},"fileName":"Productivity-DarkMode-1.webp","contentType":"image/webp"}}},"align":"end","imageTextRatio":"50:50"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5lQxSKszdRHN5dXj9G7OOd","type":"Entry","createdAt":"2024-03-21T15:42:49.323Z","updatedAt":"2024-03-21T15:42:49.323Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/how-to-improve-code-with-code-reviews Prose - tools","sectionId":"tools","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5X3OtSJ190NPnxxJftXLJx","type":"Entry","createdAt":"2024-03-21T15:42:49.340Z","updatedAt":"2024-10-09T18:32:14.677Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":27,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/how-to-improve-code-with-code-reviews Prose - tools","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Code review tools","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"There are several code review tools available that help development teams streamline and improve a manual code review process. For example, ","nodeType":"text"},{"data":{"uri":"https://github.com/features/code-review"},"content":[{"data":{},"marks":[],"value":"GitHub code review tools","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" include lightweight tools built into GitHub, such as:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Pull requests.","nodeType":"text"},{"data":{},"marks":[],"value":" Developers use pull requests to propose new features or changes to existing code. The pull request becomes a base for the team to refine changes and discuss implementation details before changing the source code.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Code update tools.","nodeType":"text"},{"data":{},"marks":[],"value":" These tools empower developers to see a history of changes related to a pull request, preview code changes side-by-side with the original code to make it easy to identify the differences, and see what a file looked like before a particular change.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Code discussion tools.","nodeType":"text"},{"data":{},"marks":[],"value":" A comments tool allows developers to ask questions about structure inline and leave detailed comments about code syntax. A review requests tool makes it easy for code authors to add code reviewers to their pull request. With the reviews tool, developers can bundle their comments into one cohesive review and specify whether comments, changes, or suggestions are required.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Merge conflicts.","nodeType":"text"},{"data":{},"marks":[],"value":" A merge conflict happens when competing changes are made to the same line of a file. The GitHub conflict editor resolves simple merge conflicts, so developers don’t need to use the command line to resolve the conflict.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Taking code review to the next level with AI ","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"AI-powered tools help automate and speed code review processes by analyzing code and identifying issues. They also help improve code quality by highlighting issues that the code reviewers might have missed.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"},{"data":{"uri":"https://resources.github.com/artificial-intelligence/ai-coding-tools/"},"content":[{"data":{},"marks":[],"value":"AI coding tools","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" give developers AI-based suggestions in real-time as they’re writing code. For example, as developers type, ","nodeType":"text"},{"data":{"uri":"https://github.com/features/copilot"},"content":[{"data":{},"marks":[],"value":"GitHub Copilot","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" suggests code completions and turns natural language prompts into coding suggestions based on style conventions and context. In addition, ","nodeType":"text"},{"data":{"uri":"https://githubnext.com/projects/copilot-for-pull-requests"},"content":[{"data":{},"marks":[],"value":"GitHub Copilot for Pull Requests","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" helps developers write better pull request descriptions and helps development teams review and merge pull requests faster. ","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Summary","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Code reviews identify defects in the code and issues such as security vulnerabilities and performance problems. They are a critical part of ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/innersource/best-practices-collaborative-software-dev/"},"content":[{"data":{},"marks":[],"value":"collaborative software development","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" because they help developers merge the highest quality code into the code base. In addition to improving code quality, code reviews help ensure compliance with standards and promote learning and collaboration among development team members. ","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"By identifying issues early in the software development process when they’re easier to fix, code reviews help development teams save time and money. Development teams use code review tools, including AI-powered tools, to improve the process and help them deliver better code faster. Code review tools streamline code review and identify issues that the code reviewers might have missed. ","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1jZjuinUvJVQ3yaIYcv2ne","type":"Entry","createdAt":"2024-03-21T15:42:49.385Z","updatedAt":"2024-10-09T18:16:53.116Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":23,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionFAQ"}},"locale":"en-US"},"fields":{"title":"/software-development/how-to-improve-code-with-code-reviews FAQ","sectionId":"faqs","heading":"Frequently asked questions","faqBlocks":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7stluGihKxmb8uP1bykTt5","type":"Entry","createdAt":"2024-03-21T15:42:49.407Z","updatedAt":"2024-03-21T15:42:49.407Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":7,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentFAQBlock"}},"locale":"en-US"},"fields":{"title":"/software-development/how-to-improve-code-with-code-reviews FAQ","questions":[]}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2SQaB5PUcOgf1BVIgZeAsa","type":"Entry","createdAt":"2024-03-21T15:42:50.032Z","updatedAt":"2024-03-21T15:42:50.032Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":2,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionCards"}},"locale":"en-US"},"fields":{"title":"/software-development/how-to-improve-code-with-code-reviews Cards","cards":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3WJT9rP2b3w2MKH7reFW8B","type":"Entry","createdAt":"2024-03-21T15:42:50.052Z","updatedAt":"2024-03-21T15:42:50.052Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"layoutComponentCards"}},"locale":"en-US"},"fields":{"title":"/software-development/how-to-improve-code-with-code-reviews Cards","cards":[]}}}}]}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"57yTkQdk4rRM4IFCg8QbEX","type":"Entry","createdAt":"2024-08-29T13:50:59.561Z","updatedAt":"2024-09-12T11:10:41.983Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":9,"revision":4,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/software-development/modernizing-cobol-with-github-copilot","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"53Y720V9pcjWPLqNVl1HXk","type":"Entry","createdAt":"2024-08-29T13:50:59.655Z","updatedAt":"2024-08-29T14:04:18.006Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":9,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"containerLandingPage"}},"locale":"en-US"},"fields":{"title":"/software-development/modernizing-cobol-with-github-copilot","sections":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4mlVKwERWIybNcoucpNq92","type":"Entry","createdAt":"2024-08-29T13:50:59.672Z","updatedAt":"2024-08-29T13:50:59.672Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionHero"}},"locale":"en-US"},"fields":{"title":"/software-development/modernizing-cobol-with-github-copilot Hero","hero":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3lwb4zKwGpIqOk3FouOgxq","type":"Entry","createdAt":"2024-08-29T13:50:59.756Z","updatedAt":"2024-11-21T19:08:47.741Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":35,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentHero"}},"locale":"en-US"},"fields":{"title":"/software-development/modernizing-cobol-with-github-copilot","heading":"Modernizing COBOL with GitHub Copilot","text":"Legacy codebases, like those written in COBOL, serve as the backbone of many established industries. While these systems are reliable, they are often attached to outdated paradigms that challenge integration with newer technologies, lead to increased maintenance costs, and face a diminishing talent pool for support. Migrating from COBOL to a more modern language is a transformative and challenging process.","align":"Left"}},"backgroundImage":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6z2nwPNKt4d23LDLfBNWES","type":"Asset","createdAt":"2022-08-29T10:17:20.095Z","updatedAt":"2024-02-20T19:05:53.410Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":13,"revision":3,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Dark 2","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp","details":{"size":363582,"image":{"width":2400,"height":1260}},"fileName":"Productivity-DarkMode-2.webp","contentType":"image/webp"}}},"theme":"dark"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3pv5ztOIe6kpwcraoO7RUg","type":"Entry","createdAt":"2024-08-29T14:04:18.108Z","updatedAt":"2024-08-29T14:04:18.108Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":2,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionRivers"}},"locale":"en-US"},"fields":{"title":"/software-development/modernizing-cobol-with-github-copilot River","rivers":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4SLxY3Ww5ERYJbiMtJ7e0o","type":"Entry","createdAt":"2024-08-29T14:04:18.126Z","updatedAt":"2024-11-21T18:54:34.739Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":43,"revision":17,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentRiver"}},"locale":"en-US"},"fields":{"title":"/software-development/modernizing-cobol-with-github-copilot River","heading":"Modernize your COBOL codebase with GitHub Copilot","text":"Download the whitepaper to explore how GitHub Copilot can transform your legacy systems. Discover the best practices we've developed to help leading organizations achieve smoother migrations and revitalize their COBOL codebase.","media":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"11mBh3P3D0OtYNCjnrAkpH","type":"Asset","createdAt":"2024-09-12T11:23:53.335Z","updatedAt":"2024-09-12T11:27:33.115Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":13,"revision":3,"locale":"en-US"},"fields":{"title":"Cover page with title \"Modernizing COBOL with GitHub Copilot\"","description":"Cover page with title \"Modernizing COBOL with GitHub Copilot\"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/11mBh3P3D0OtYNCjnrAkpH/9c644eb3ea267a73c4ae1aa83e8c6c79/Compete-river-1__45_.webp","details":{"size":46934,"image":{"width":1232,"height":848}},"fileName":"Compete-river-1 (45).webp","contentType":"image/webp"}}},"align":"end","imageTextRatio":"50:50"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1xypw6eTahUM8IyRBz3LZd","type":"Entry","createdAt":"2024-08-29T13:50:59.790Z","updatedAt":"2024-08-29T13:50:59.790Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":2,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/modernizing-cobol-with-github-copilot Prose","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6T90XhLgh8SgoeKmAamZng","type":"Entry","createdAt":"2024-08-29T13:51:00.061Z","updatedAt":"2024-11-21T18:58:38.650Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":43,"revision":21,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/modernizing-cobol-with-github-copilot Prose","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Despite the need to evolve, many organizations hesitate, fearing the scale of the challenge and the potential for unforeseen disruptions. There’s a vast difference between procedural COBOL and the contemporary, often object-oriented or event-driven, paradigms of languages like Java and Go. Manually navigating this migration journey can be arduous and error-prone. However, there’s light at the end of this tunnel.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"With advanced generative models like those that power GitHub Copilot Business, modernizing COBOL code can be more streamlined and precise. ","nodeType":"text"},{"data":{},"marks":[],"value":"GitHub Copilot (for code completions) and Copilot Chat can assist in translating the code, providing insights into areas for optimization and preserving original functionalities through automated test generation. Through a series of steps, GitHub Copilot will aid your COBOL transformation journey into modern software. ","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1fSMn1zls8BVXVle0wt11D","type":"Entry","createdAt":"2024-08-29T13:51:00.168Z","updatedAt":"2024-08-29T13:51:00.168Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionSectionIntro"}},"locale":"en-US"},"fields":{"title":"/software-development/modernizing-cobol-with-github-copilot Intro","sectionIntro":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"LVum8pSik0eGqrn8V6vG9","type":"Entry","createdAt":"2024-08-29T13:51:00.268Z","updatedAt":"2024-10-09T18:38:31.076Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":15,"revision":7,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentSectionIntro"}},"locale":"en-US"},"fields":{"title":"/software-development/modernizing-cobol-with-github-copilot Intro","heading":"Read the ebook","description":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Tell us a bit about you.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"},"align":"center"}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2pa307CmsOIbeYzdGLBJlH","type":"Entry","createdAt":"2024-08-29T13:51:00.282Z","updatedAt":"2024-10-09T18:19:00.252Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":40,"revision":14,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionForm"}},"locale":"en-US"},"fields":{"title":"/software-development/modernizing-cobol-with-github-copilot form","sectionId":"form","form":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"XzxZo1Zjesp1yMj3eNJNb","type":"Entry","createdAt":"2024-09-25T19:56:18.489Z","updatedAt":"2024-11-21T18:48:11.546Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"form"}},"locale":"en-US"},"fields":{"name":"Generic gated article form - GDC \"Download PDF\"","title":"Get the resource","subtitle":"Get it in your email inbox and as a download when you fill out this form.","eloquaFormName":"ContentReg_TemplateForm","formCTA":"Download PDF","formElements":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6FMPEpNvfZnVg5o5pNdmAz","type":"Entry","createdAt":"2023-04-04T12:27:23.053Z","updatedAt":"2024-11-21T18:50:31.728Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":365,"revision":182,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"First name","htmlName":"firstName","type":"text","placeholder":"First name","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3Euizanl72D7hjUPBu1cz4","type":"Entry","createdAt":"2023-04-04T12:27:44.815Z","updatedAt":"2024-11-21T18:50:24.686Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":364,"revision":182,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Last name","htmlName":"lastName","type":"text","placeholder":"Last name","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1oc1nNacqE77XQSuJXaNdl","type":"Entry","createdAt":"2022-03-12T20:17:06.911Z","updatedAt":"2024-11-21T18:50:17.376Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":273,"revision":134,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Work Email Address","htmlName":"emailAddress","type":"email","placeholder":"you@example.com","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"40sP3SIDeLJIKo7gAvmAdv","type":"Entry","createdAt":"2022-03-12T20:30:16.766Z","updatedAt":"2024-11-21T18:50:10.375Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":256,"revision":126,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Job Title","htmlName":"title","type":"text","placeholder":"Job Title","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5HOQnFx9120Wj4hlsjXaJn","type":"Entry","createdAt":"2022-03-12T20:19:03.843Z","updatedAt":"2024-11-21T18:50:03.222Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":366,"revision":182,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Company","htmlName":"company","type":"text","placeholder":"Acme, Inc","required":true}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6shzXkav3X5xzvnIRMCf5E","type":"Entry","createdAt":"2022-03-30T19:00:54.871Z","updatedAt":"2024-11-21T18:49:55.990Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":194,"revision":91,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Country","htmlName":"country2","type":"dropdown","placeholder":"Select country","required":true,"dropdownAsJson":[{"label":"Select Country","value":""},{"label":"Albania","value":"AL"},{"label":"Åland Islands","value":"AX"},{"label":"Algeria","value":"DZ"},{"label":"American Samoa","value":"AS"},{"label":"Andorra","value":"AD"},{"label":"Angola","value":"AO"},{"label":"Anguilla","value":"AI"},{"label":"Antarctica","value":"AQ"},{"label":"Antigua and Barbuda","value":"AG"},{"label":"Argentina","value":"AR"},{"label":"Armenia","value":"AM"},{"label":"Aruba","value":"AW"},{"label":"Australia","value":"AU"},{"label":"Austria","value":"AT"},{"label":"Azerbaijan","value":"AZ"},{"label":"Bahamas (the)","value":"BS"},{"label":"Bahrain","value":"BH"},{"label":"Bangladesh","value":"BD"},{"label":"Barbados","value":"BB"},{"label":"Belarus","value":"BY"},{"label":"Belgium","value":"BE"},{"label":"Belize","value":"BZ"},{"label":"Benin","value":"BJ"},{"label":"Bermuda","value":"BM"},{"label":"Bhutan","value":"BT"},{"label":"Bolivia (Plurinational State of)","value":"BO"},{"label":"Bonaire, Sint Eustatius and Saba","value":"BQ"},{"label":"Bosnia and Herzegovina","value":"BA"},{"label":"Botswana","value":"BW"},{"label":"Bouvet Island","value":"BV"},{"label":"Brazil","value":"BR"},{"label":"British Indian Ocean Territory (the)","value":"IO"},{"label":"Brunei Darussalam","value":"BN"},{"label":"Bulgaria","value":"BG"},{"label":"Burkina Faso","value":"BF"},{"label":"Burundi","value":"BI"},{"label":"Cabo Verde","value":"CV"},{"label":"Cambodia","value":"KH"},{"label":"Cameroon","value":"CM"},{"label":"Canada","value":"CA"},{"label":"Cayman Islands (the)","value":"KY"},{"label":"Central African Republic (the)","value":"CF"},{"label":"Chad","value":"TD"},{"label":"Chile","value":"CL"},{"label":"China","value":"CN"},{"label":"Christmas Island","value":"CX"},{"label":"Cocos (Keeling) Islands (the)","value":"CC"},{"label":"Colombia","value":"CO"},{"label":"Comoros (the)","value":"KM"},{"label":"Congo (the Democratic Republic of the)","value":"CD"},{"label":"Congo (the)","value":"CG"},{"label":"Cook Islands (the)","value":"CK"},{"label":"Costa Rica","value":"CR"},{"label":"Croatia","value":"HR"},{"label":"Cuba","value":"CU"},{"label":"Curaçao","value":"CW"},{"label":"Cyprus","value":"CY"},{"label":"Czechia","value":"CZ"},{"label":"Côte d'Ivoire","value":"CI"},{"label":"Denmark","value":"DK"},{"label":"Djibouti","value":"DJ"},{"label":"Dominica","value":"DM"},{"label":"Dominican Republic (the)","value":"DO"},{"label":"Ecuador","value":"EC"},{"label":"Egypt","value":"EG"},{"label":"El Salvador","value":"SV"},{"label":"Equatorial Guinea","value":"GQ"},{"label":"Eritrea","value":"ER"},{"label":"Estonia","value":"EE"},{"label":"Eswatini","value":"SZ"},{"label":"Ethiopia","value":"ET"},{"label":"Falkland Islands (the) [Malvinas]","value":"FK"},{"label":"Faroe Islands (the)","value":"FO"},{"label":"Fiji","value":"FJ"},{"label":"Finland","value":"FI"},{"label":"France","value":"FR"},{"label":"French Guiana","value":"GF"},{"label":"French Polynesia","value":"PF"},{"label":"French Southern Territories (the)","value":"TF"},{"label":"Gabon","value":"GA"},{"label":"Gambia (the)","value":"GM"},{"label":"Georgia","value":"GE"},{"label":"Germany","value":"DE"},{"label":"Ghana","value":"GH"},{"label":"Gibraltar","value":"GI"},{"label":"Greece","value":"GR"},{"label":"Greenland","value":"GL"},{"label":"Grenada","value":"GD"},{"label":"Guadeloupe","value":"GP"},{"label":"Guam","value":"GU"},{"label":"Guatemala","value":"GT"},{"label":"Guernsey","value":"GG"},{"label":"Guinea","value":"GN"},{"label":"Guinea-Bissau","value":"GW"},{"label":"Guyana","value":"GY"},{"label":"Haiti","value":"HT"},{"label":"Heard Island and McDonald Islands","value":"HM"},{"label":"Holy See (the)","value":"VA"},{"label":"Honduras","value":"HN"},{"label":"Hong Kong","value":"HK"},{"label":"Hungary","value":"HU"},{"label":"Iceland","value":"IS"},{"label":"India","value":"IN"},{"label":"Indonesia","value":"ID"},{"label":"Iran (Islamic Republic of)","value":"IR"},{"label":"Iraq","value":"IQ"},{"label":"Ireland","value":"IE"},{"label":"Isle of Man","value":"IM"},{"label":"Israel","value":"IL"},{"label":"Italy","value":"IT"},{"label":"Jamaica","value":"JM"},{"label":"Japan","value":"JP"},{"label":"Jersey","value":"JE"},{"label":"Jordan","value":"JO"},{"label":"Kazakhstan","value":"KZ"},{"label":"Kenya","value":"KE"},{"label":"Kiribati","value":"KI"},{"label":"Korea (the Democratic People's Republic of)","value":"KP"},{"label":"Korea (the Republic of)","value":"KR"},{"label":"Kuwait","value":"KW"},{"label":"Kyrgyzstan","value":"KG"},{"label":"Lao People's Democratic Republic (the)","value":"LA"},{"label":"Latvia","value":"LV"},{"label":"Lebanon","value":"LB"},{"label":"Lesotho","value":"LS"},{"label":"Liberia","value":"LR"},{"label":"Libya","value":"LY"},{"label":"Liechtenstein","value":"LI"},{"label":"Lithuania","value":"LT"},{"label":"Luxembourg","value":"LU"},{"label":"Macao","value":"MO"},{"label":"Madagascar","value":"MG"},{"label":"Malawi","value":"MW"},{"label":"Malaysia","value":"MY"},{"label":"Maldives","value":"MV"},{"label":"Mali","value":"ML"},{"label":"Malta","value":"MT"},{"label":"Marshall Islands (the)","value":"MH"},{"label":"Martinique","value":"MQ"},{"label":"Mauritania","value":"MR"},{"label":"Mauritius","value":"MU"},{"label":"Mayotte","value":"YT"},{"label":"Mexico","value":"MX"},{"label":"Micronesia (Federated States of)","value":"FM"},{"label":"Moldova (the Republic of)","value":"MD"},{"label":"Monaco","value":"MC"},{"label":"Mongolia","value":"MN"},{"label":"Montenegro","value":"ME"},{"label":"Montserrat","value":"MS"},{"label":"Morocco","value":"MA"},{"label":"Mozambique","value":"MZ"},{"label":"Myanmar","value":"MM"},{"label":"Namibia","value":"NA"},{"label":"Nauru","value":"NR"},{"label":"Nepal","value":"NP"},{"label":"Netherlands (the)","value":"NL"},{"label":"New Caledonia","value":"NC"},{"label":"New Zealand","value":"NZ"},{"label":"Nicaragua","value":"NI"},{"label":"Niger (the)","value":"NE"},{"label":"Nigeria","value":"NG"},{"label":"Niue","value":"NU"},{"label":"Norfolk Island","value":"NF"},{"label":"Northern Mariana Islands (the)","value":"MP"},{"label":"Norway","value":"NO"},{"label":"Oman","value":"OM"},{"label":"Pakistan","value":"PK"},{"label":"Palau","value":"PW"},{"label":"Palestine, State of","value":"PS"},{"label":"Panama","value":"PA"},{"label":"Papua New Guinea","value":"PG"},{"label":"Paraguay","value":"PY"},{"label":"Peru","value":"PE"},{"label":"Philippines (the)","value":"PH"},{"label":"Pitcairn","value":"PN"},{"label":"Poland","value":"PL"},{"label":"Portugal","value":"PT"},{"label":"Puerto Rico","value":"PR"},{"label":"Qatar","value":"QA"},{"label":"Republic of North Macedonia","value":"MK"},{"label":"Romania","value":"RO"},{"label":"Russian Federation (the)","value":"RU"},{"label":"Rwanda","value":"RW"},{"label":"Réunion","value":"RE"},{"label":"Saint Barthélemy","value":"BL"},{"label":"Saint Helena, Ascension and Tristan da Cunha","value":"SH"},{"label":"Saint Kitts and Nevis","value":"KN"},{"label":"Saint Lucia","value":"LC"},{"label":"Saint Martin (French part)","value":"MF"},{"label":"Saint Pierre and Miquelon","value":"PM"},{"label":"Saint Vincent and the Grenadines","value":"VC"},{"label":"Samoa","value":"WS"},{"label":"San Marino","value":"SM"},{"label":"Sao Tome and Principe","value":"ST"},{"label":"Saudi Arabia","value":"SA"},{"label":"Senegal","value":"SN"},{"label":"Serbia","value":"RS"},{"label":"Seychelles","value":"SC"},{"label":"Sierra Leone","value":"SL"},{"label":"Singapore","value":"SG"},{"label":"Sint Maarten (Dutch part)","value":"SX"},{"label":"Slovakia","value":"SK"},{"label":"Slovenia","value":"SI"},{"label":"Solomon Islands","value":"SB"},{"label":"Somalia","value":"SO"},{"label":"South Africa","value":"ZA"},{"label":"South Georgia and the South Sandwich Islands","value":"GS"},{"label":"South Sudan","value":"SS"},{"label":"Spain","value":"ES"},{"label":"Sri Lanka","value":"LK"},{"label":"Sudan (the)","value":"SD"},{"label":"Surilabel","value":"SR"},{"label":"Svalbard and Jan Mayen","value":"SJ"},{"label":"Sweden","value":"SE"},{"label":"Switzerland","value":"CH"},{"label":"Syrian Arab Republic","value":"SY"},{"label":"Taiwan","value":"TW"},{"label":"Tajikistan","value":"TJ"},{"label":"Tanzania, United Republic of","value":"TZ"},{"label":"Thailand","value":"TH"},{"label":"Timor-Leste","value":"TL"},{"label":"Togo","value":"TG"},{"label":"Tokelau","value":"TK"},{"label":"Tonga","value":"TO"},{"label":"Trinidad and Tobago","value":"TT"},{"label":"Tunisia","value":"TN"},{"label":"Turkey","value":"TR"},{"label":"Turkmenistan","value":"TM"},{"label":"Turks and Caicos Islands (the)","value":"TC"},{"label":"Tuvalu","value":"TV"},{"label":"Uganda","value":"UG"},{"label":"Ukraine","value":"UA"},{"label":"United Arab Emirates (the)","value":"AE"},{"label":"United Kingdom of Great Britain and Northern Ireland (the)","value":"GB"},{"label":"United States Minor Outlying Islands (the)","value":"UM"},{"label":"United States of America (the)","value":"US"},{"label":"Uruguay","value":"UY"},{"label":"Uzbekistan","value":"UZ"},{"label":"Vanuatu","value":"VU"},{"label":"Venezuela (Bolivarian Republic of)","value":"VE"},{"label":"Viet Nam","value":"VN"},{"label":"Virgin Islands (British)","value":"VG"},{"label":"Virgin Islands (U.S.)","value":"VI"},{"label":"Wallis and Futuna","value":"WF"},{"label":"Western Sahara","value":"EH"},{"label":"Yemen","value":"YE"},{"label":"Zambia","value":"ZM"},{"label":"Zimbabwe","value":"ZW"}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3h8RLi98FBWNpCNOaFk0wY","type":"Entry","createdAt":"2022-03-30T18:37:38.562Z","updatedAt":"2024-11-21T18:49:47.789Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":180,"revision":86,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"Phone","htmlName":"phone","type":"tel","placeholder":"12 3456 7890","required":false}}]}},"sfCampaignID":"7015c000001imWUAAY","campaign":"2025q1-site-ww-COBOL_whitepaper","extraFormFields":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6z2cGa4cuvoWqGxS3Ejhv4","type":"Entry","createdAt":"2023-09-12T16:31:47.760Z","updatedAt":"2024-11-21T18:54:10.268Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":119,"revision":55,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"formElement"}},"locale":"en-US"},"fields":{"label":"sFDCLastCampaignStatus","htmlName":"sFDCLastCampaignStatus","type":"hidden","required":false,"defaultValue":"Responded"}}],"marketoCampaign":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6uM11lNOJomeqE4IuHlwbg","type":"Entry","createdAt":"2024-09-24T20:22:39.621Z","updatedAt":"2024-09-24T20:23:08.849Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":7,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"marketoCampaign"}},"locale":"en-US"},"fields":{"title":"CO-GHAI-CNTNT-FY25-09Sep-25-Modernizing-COBOL-with-Copilot-White-Paper","cDLProgramName":"454515","source":"Content","active":true}},"redirectUrl":"https://resources.github.com/software-development/modernizing-cobol-with-github-copilot-lp/thankyou"}}]}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}}],"settings":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6V5hVqFvnb6pXZs2lRItzG","type":"Entry","createdAt":"2024-08-29T13:51:18.844Z","updatedAt":"2024-11-19T16:13:17.172Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":6,"revision":3,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"pageSettings"}},"locale":"en-US"},"fields":{"title":"Page Settings for /software-development/modernizing-cobol-with-github-copilot-lp","hasMinimalFooter":false,"isHidden":false,"revenuePlay":"AI"}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"IJlhSR2AtjOvBOIIdkd2f","type":"Entry","createdAt":"2024-03-13T16:33:36.805Z","updatedAt":"2024-03-13T16:33:36.805Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/software-development/regression-testing-definition-types-and-tools","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2O9G2xqN2Wabd9WhqtGPI3","type":"Entry","createdAt":"2024-03-13T16:33:36.945Z","updatedAt":"2024-03-13T16:33:36.945Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":15,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"containerLandingPage"}},"locale":"en-US"},"fields":{"title":"/software-development/regression-testing-definition-types-and-tools","sections":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6eMvS0p3RaFzYNGr4yi5qf","type":"Entry","createdAt":"2024-03-13T16:33:36.985Z","updatedAt":"2024-03-13T16:33:36.985Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionHero"}},"locale":"en-US"},"fields":{"title":"/software-development/regression-testing-definition-types-and-tools Hero","hero":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"eESeB2u4uyf9pZgwFTjkm","type":"Entry","createdAt":"2024-03-13T16:33:37.020Z","updatedAt":"2024-10-09T16:25:39.272Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":17,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentHero"}},"locale":"en-US"},"fields":{"title":"/software-development/regression-testing-definition-types-and-tools Hero","heading":"Regression Testing: Definition, Types, and Tools","text":"Regression testing ensures that previously developed and tested software performs similarly after testers or developers change it. Get an overview of regression testing, explore its role in software development, and learn more about its importance for maintaining software stability.\n\n","align":"Left"}},"backgroundImage":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5uny5oZv6MG9lNCZyzaASz","type":"Asset","createdAt":"2022-09-26T12:36:20.198Z","updatedAt":"2024-02-20T19:05:53.407Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":12,"revision":3,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Light 1","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp","details":{"size":262930,"image":{"width":2400,"height":1260}},"fileName":"Productivity-LightMode-1.webp","contentType":"image/webp"}}},"theme":"light"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"29rDomDfku74EgIHxQi1cM","type":"Entry","createdAt":"2024-03-13T16:33:37.036Z","updatedAt":"2024-03-13T16:33:37.036Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":10,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentAnchorNav"}},"locale":"en-US"},"fields":{"title":"/software-development/regression-testing-definition-types-and-tools Anchor Nav","links":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3LJEtqft0JsL4PdzAYhW6H","type":"Entry","createdAt":"2023-12-15T20:13:46.061Z","updatedAt":"2024-10-09T18:22:54.694Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Overview","text":"Overview","href":"overview"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2LTzQ1IJcboN2Spp0NkFOi","type":"Entry","createdAt":"2024-03-13T16:33:37.066Z","updatedAt":"2024-10-09T18:20:08.644Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":20,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Importance","text":"Importance","href":"importance"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"EHfQIMCx2RCkoHIFfGmDh","type":"Entry","createdAt":"2024-03-13T16:16:37.008Z","updatedAt":"2024-10-09T18:20:46.714Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":11,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Types","text":"Types","href":"types"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"26JLoOduphd4LmvyiQm9fU","type":"Entry","createdAt":"2024-03-13T16:33:37.106Z","updatedAt":"2024-10-09T18:20:11.383Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Automation","text":"Automation","href":"automation"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6JBpSa6kNeCj0NEnMK6QIU","type":"Entry","createdAt":"2023-03-31T02:17:35.715Z","updatedAt":"2024-10-09T18:22:09.372Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":12,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"FAQs","text":"FAQs","href":"faqs"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6LGp8dpDzsJ78YrcXUa9qy","type":"Entry","createdAt":"2024-03-13T16:33:37.124Z","updatedAt":"2024-03-13T16:33:37.124Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/regression-testing-definition-types-and-tools Prose - Overview","sectionId":"overview","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3y7JtjfKKJ3ErzpNsNkdTA","type":"Entry","createdAt":"2024-03-13T16:33:37.160Z","updatedAt":"2024-10-09T18:28:31.825Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/regression-testing-definition-types-and-tools Prose - Overview","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"What is regression testing?","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Regression testing is a process that ensures that software still performs as expected, even after a change.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"A regression is a specific type of bug or issue that occurs when new code changes, like software enhancements, patches, or configuration changes, introduce unintended side effects or break existing functionality that was working correctly before. This can happen when new code conflicts with existing code. Regression testing helps identify and fix these bugs and issues so that the reliability of the software and the quality of the product can be maintained.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Understanding regression testing","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Some ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/software-development/what-is-software-development/"},"content":[{"data":{},"marks":[],"value":"software development","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" teams may skip regular regression tests, instead relying on one-time checks for essential functions. This approach may seem efficient, but it often misses unexpected issues that can arise from small code changes. Regression testing is crucial because even minor alterations can unexpectedly impact seemingly unrelated functions in a program.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Regression testing ensures that modifications not only behave as intended but also avoid unintended consequences in previously functional areas. Building a robust regression test suite from existing functional, unit, integration, and build verification tests developed throughout a project can help engineers catch unforeseen issues, and automated testing tools can help them efficiently execute these tests, even on complex projects with thousands of test cases. Using regression testing to retest relevant components after each source code modification is crucial for ensuring ongoing software stability.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2SvT4MCkqcrnKx2t2IwhQU","type":"Entry","createdAt":"2024-03-13T16:33:37.217Z","updatedAt":"2024-03-13T16:33:37.217Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/regression-testing-definition-types-and-tools Prose - Importance","sectionId":"importance","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4hru0hQ30LHADVAS6hzhjd","type":"Entry","createdAt":"2024-03-13T16:33:37.301Z","updatedAt":"2024-10-09T18:28:35.343Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":27,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/regression-testing-definition-types-and-tools Prose - Importance","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Why is regression testing important?","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Regression testing","nodeType":"text"},{"data":{},"marks":[],"value":" plays a pivotal role in the software development process for several reasons:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Detecting regressions","nodeType":"text"},{"data":{},"marks":[],"value":": Regression testing helps identify unintentional changes in the software that affect functionality.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Ensuring software stability","nodeType":"text"},{"data":{},"marks":[],"value":": By retesting the unchanged parts of the software, regression testing ensures that the existing functionalities are still working as expected.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Facilitating continuous integration","nodeType":"text"},{"data":{},"marks":[],"value":": In a CI/CD environment, where code changes are frequent and deployments rapid, regression testing plays a critical role in ensuring new features and fixes don't unintentionally break existing functionality, enabling confident and reliable releases.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Increasing productivity","nodeType":"text"},{"data":{},"marks":[],"value":": Coupled with developer productivity resources like ","nodeType":"text"},{"data":{"uri":"https://github.com/features/copilot"},"content":[{"data":{},"marks":[],"value":"GitHub Copilot","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":", efficient regression testing can help fix problems faster, accelerating the pace of software development.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Preventing unintended consequences","nodeType":"text"},{"data":{},"marks":[],"value":": Regression testing goes beyond catching bugs and regressions; it also helps unearth unforeseen consequences and side effects introduced by modifications, like security and compatibility issues. This allows for early detection and mitigation of issues before they become potential complications.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Maintaining user confidence","nodeType":"text"},{"data":{},"marks":[],"value":": Consistent software behavior builds user confidence, and regression testing helps maintain this consistency.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Supporting agile development","nodeType":"text"},{"data":{},"marks":[],"value":": In ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/devops/what-is-agile-methodology"},"content":[{"data":{},"marks":[],"value":"agile development","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":", where changes are frequent, regression testing ensures that these changes don't negatively impact the software.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Reducing debugging costs","nodeType":"text"},{"data":{},"marks":[],"value":": Early detection of bugs through regression testing can significantly reduce the cost of debugging.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"How to perform regression testing","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Software testers, and sometimes developers, perform regression testing.","nodeType":"text"},{"data":{},"marks":[],"value":" This step-by-step guide shows how to perform regression testing:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Identify test cases","nodeType":"text"},{"data":{},"marks":[],"value":": Identify the test cases that need to be executed. These could be functional, integration, or system tests that have been executed previously.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Execute test cases","nodeType":"text"},{"data":{},"marks":[],"value":": Run the selected test cases. This can be done manually or using automated testing tools, depending on the complexity of the test cases and the resources available.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Analyze test results","nodeType":"text"},{"data":{},"marks":[],"value":": Once the test cases have been executed, the results need to be analyzed to identify any failures or discrepancies.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Fix failures","nodeType":"text"},{"data":{},"marks":[],"value":": If any test case fails, the issue needs to be fixed. This could involve debugging the code, making necessary changes, and retesting.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Document results","nodeType":"text"},{"data":{},"marks":[],"value":": Finally, document the results of the regression testing. This includes the test cases executed, their results, any issues identified and fixed, and any observations or recommendations for future testing.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"ordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4n7NUcR8kml5KPp8S1jfM8","type":"Entry","createdAt":"2024-03-13T16:33:37.347Z","updatedAt":"2024-03-13T16:33:37.347Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/regression-testing-definition-types-and-tools Prose - automation","sectionId":"automation","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1AvPVY7YThosCQsWZFsVFZ","type":"Entry","createdAt":"2024-03-13T16:33:37.368Z","updatedAt":"2024-10-09T18:28:39.295Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/regression-testing-definition-types-and-tools Prose - automation","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Automating Regression Testing with CI/CD Tools","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"CI/CD tools offer a seamless way to automate regression testing, making it more efficient and effective.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"CI/CD tools allow developers to integrate their changes into a shared repository several times a day. Each integration is then automatically tested, which includes regression tests, to detect problems early. If a test fails, the CI/CD pipeline breaks, and developers are alerted to fix the issue immediately. This ensures that the software is always in a releasable state.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Automating regression testing with CI/CD tools not only saves time but also ensures consistency and accuracy during the ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/enterprise/what-is-enterprise-application-development/"},"content":[{"data":{},"marks":[],"value":"enterprise application development","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" process. It eliminates the risk of human error and allows for more frequent testing, leading to early detection of bugs and regressions.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"GitHub is one popular platform that offers a native ","nodeType":"text"},{"data":{"uri":"https://github.com/solutions/ci-cd/"},"content":[{"data":{},"marks":[],"value":"CI/CD","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" tool called GitHub Actions. Actions provides robust features for automating regression testing within its CI/CD environment. By utilizing these tools, teams can set up automated regression testing workflows that run whenever code is pushed to the repository, ensuring that any regressions are caught and addressed promptly.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2T5tPkjRb61RAbqrAOKcdH","type":"Entry","createdAt":"2024-03-13T16:16:37.625Z","updatedAt":"2024-03-22T14:04:08.326Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionRivers"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","rivers":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5hI6zGmuVkiZ0HSZjw5ElU","type":"Entry","createdAt":"2024-03-13T16:16:37.711Z","updatedAt":"2024-10-09T15:26:03.504Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":28,"revision":9,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentRiver"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","heading":"GitHub’s DevOps Solution","text":"Learn why 90% of the Fortune 100 use GitHub to build, scale, and deliver secure software.","media":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7Rb5ZoUDOX41PpqAibLo9","type":"Asset","createdAt":"2022-11-07T10:15:15.233Z","updatedAt":"2024-03-22T14:04:07.436Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":16,"revision":5,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Dark 1","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/7Rb5ZoUDOX41PpqAibLo9/344247765e0571d768e511fe686cea98/Productivity-DarkMode-1.webp","details":{"size":407100,"image":{"width":2400,"height":1260}},"fileName":"Productivity-DarkMode-1.webp","contentType":"image/webp"}}},"align":"end","imageTextRatio":"50:50"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7GbUC3CaEMOWeOKC8YiiFW","type":"Entry","createdAt":"2024-03-13T16:33:37.407Z","updatedAt":"2024-03-13T16:33:37.407Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/regression-testing-definition-types-and-tools Prose - types","sectionId":"types","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3kY5PXGLEgbrkn071jhCUD","type":"Entry","createdAt":"2024-03-13T16:33:37.422Z","updatedAt":"2024-10-09T18:28:42.670Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":23,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/regression-testing-definition-types-and-tools Prose - types","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Types of regression testing techniques","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Regression testing","nodeType":"text"},{"data":{},"marks":[],"value":" is a critical part of the software development lifecycle (SDLC), and it comes in various forms, each serving a specific purpose. For example:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Unit regression testing","nodeType":"text"},{"data":{},"marks":[],"value":": Retesting a specific unit of code (like a function or method) after modifications have been made to ensure it still works as expected.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Partial regression testing","nodeType":"text"},{"data":{},"marks":[],"value":": Testing certain parts of the system that have been changed, along with any directly related components.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Complete regression testing","nodeType":"text"},{"data":{},"marks":[],"value":": Retesting the entire system. This is typically more time-consuming and is often used when a significant change has been made to the system.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Progressive regression testing","nodeType":"text"},{"data":{},"marks":[],"value":": Testing new features while ensuring that old features still work as expected.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Selective regression testing","nodeType":"text"},{"data":{},"marks":[],"value":": Selecting specific test cases from the test suite that are likely to be affected by the change, rather than running the entire test suite.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Automated regression testing","nodeType":"text"},{"data":{},"marks":[],"value":": Using automated testing tools to run regression tests, which can save time and resources, especially for large systems.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Manual regression testing","nodeType":"text"},{"data":{},"marks":[],"value":": Manually running the regression tests. This testing can be more time-consuming but is sometimes necessary for complex scenarios that require human judgment.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Non-functional regression testing","nodeType":"text"},{"data":{},"marks":[],"value":": Testing non-functional aspects of the system like performance and usability after changes have been made.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Regression testing vs. smoke testing","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Regression testing","nodeType":"text"},{"data":{},"marks":[],"value":" and ","nodeType":"text"},{"data":{},"marks":[{"type":"bold"}],"value":"smoke testing","nodeType":"text"},{"data":{},"marks":[],"value":" are two distinct types of software testing, each serving a unique purpose in the SDLC.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Developers and software testers perform regression","nodeType":"text"},{"data":{},"marks":[],"value":" testing to ensure that software which has been developed and tested can still meet performance expectations after modifications or changes. It involves re-running functional and non-functional tests to ensure that the existing functionalities have not been affected by the recent changes.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"On the other hand, ","nodeType":"text"},{"data":{},"marks":[{"type":"bold"}],"value":"smoke testing","nodeType":"text"},{"data":{},"marks":[],"value":" is a high-level type of software testing where the most crucial functions of a program are tested to ensure they work correctly. It is usually performed to determine if the most important software application is working properly.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"While regression testing is about ensuring that changes don't break existing functionality, smoke testing focuses on verifying that the critical functionalities of a system are working as expected.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Regression testing vs. unit testing","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"While both regression testing and unit testing are important aspects of the software development process, they differ in their scope and purpose.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"While regression testing focuses on unintended side effects resulting from changes, unit testing focuses on validating individual units or components of a software application in isolation. Conducted during the coding phase by developers, unit tests ensure the correctness of functions, methods, or classes. These tests are isolated and typically involve checking input, output, and internal logic. Unit testing helps catch errors at the smallest level, providing confidence in the behavior of individual code units.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"70mMkXHVv7ABDYEnQphZnN","type":"Entry","createdAt":"2024-03-13T16:33:37.440Z","updatedAt":"2024-03-13T16:33:37.440Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/regression-testing-definition-types-and-tools Prose - best-practices","sectionId":"best-practices","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5S90eJ4iDF2uM52uKrmx4W","type":"Entry","createdAt":"2024-03-13T16:33:37.458Z","updatedAt":"2024-10-09T18:28:46.111Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":28,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/regression-testing-definition-types-and-tools Prose - best-practices","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Best practices for regression testing","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Here are some best practices to follow when performing regression testing:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Maintain an organized test suite","nodeType":"text"},{"data":{},"marks":[],"value":": Keep your test cases structured and categorized to facilitate easy navigation and updates.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Prioritize test cases","nodeType":"text"},{"data":{},"marks":[],"value":": Rank test cases based on risk and importance. High-risk areas should be tested first.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Automate repetitive tests","nodeType":"text"},{"data":{},"marks":[],"value":": Automation can save time and resources, especially for repetitive regression tests.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Incorporate testing into your CI/CD pipeline","nodeType":"text"},{"data":{},"marks":[],"value":": Integrate regression testing into your continuous integration/continuous deployment pipeline to catch issues early.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Use version control","nodeType":"text"},{"data":{},"marks":[],"value":": Use version control systems to facilitate collaboration and track changes.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Collaborate with developers","nodeType":"text"},{"data":{},"marks":[],"value":": Foster a collaborative ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/devops/tools/compare/"},"content":[{"data":{},"marks":[],"value":"DevOps","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" environment between testers and developers to ensure comprehensive coverage.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Practice effective defect tracking and reporting","nodeType":"text"},{"data":{},"marks":[],"value":": Use a robust defect tracking system to document, track, and resolve issues.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Conduct thorough test case reviews","nodeType":"text"},{"data":{},"marks":[],"value":": Regularly review and update test cases to ensure they remain relevant.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Monitor regression testing metrics","nodeType":"text"},{"data":{},"marks":[],"value":": Track key metrics to assess the effectiveness of your regression testing.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Use exploratory testing","nodeType":"text"},{"data":{},"marks":[],"value":": For complex scenarios, exploratory testing can uncover issues missed by automated tests.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Partner with experts","nodeType":"text"},{"data":{},"marks":[],"value":": Work with trusted organizations that prioritize security, compliance, and transparency in all facets of the software development process. Explore the ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/copilot-trust-center/"},"content":[{"data":{},"marks":[],"value":"GitHub Copilot Trust Center","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" to learn more.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Challenges and considerations for regression testing","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Regression testing, while crucial, presents several challenges:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Time consumption","nodeType":"text"},{"data":{},"marks":[],"value":": Regression testing can be time-consuming, especially for large systems.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Resources needed","nodeType":"text"},{"data":{},"marks":[],"value":": It requires significant resources, both in terms of personnel and infrastructure.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Selecting the right test cases","nodeType":"text"},{"data":{},"marks":[],"value":": Identifying the most effective test cases to include in the regression suite can be difficult.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Balancing cost and coverage","nodeType":"text"},{"data":{},"marks":[],"value":": Striking a balance between the cost of testing and the need for comprehensive coverage is challenging.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Integrating with CI/CD pipelines","nodeType":"text"},{"data":{},"marks":[],"value":": Incorporating regression testing into CI/CD pipelines requires careful planning and coordination.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Managing test data","nodeType":"text"},{"data":{},"marks":[],"value":": Ensuring the availability of appropriate and up-to-date test data is often a hurdle.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Safeguarding security","nodeType":"text"},{"data":{},"marks":[],"value":": Vulnerabilities can derail progress. Adopt effective security measures like using ","nodeType":"text"},{"data":{"uri":"https://github.com/features/security"},"content":[{"data":{},"marks":[],"value":"GitHub security tools","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":", designed to find and fix vulnerabilities to help secure the supply chain.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"Addressing these challenges during the development of an ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/enterprise/what-is-an-enterprise-application/"},"content":[{"data":{},"marks":[],"value":"enterprise application","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" is key to ensuring the effectiveness of regression testing efforts. Team members can create review processes that improve code quality and fit neatly into workflows with resources like ","nodeType":"text"},{"data":{"uri":"https://github.com/features/code-review"},"content":[{"data":{},"marks":[],"value":"GitHub code review tools","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":".","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Align regression tests with the SDLC","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Aligning regression tests with the ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/software-development/what-is-sdlc/"},"content":[{"data":{},"marks":[],"value":"software development life cycle (SLDC)","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" is crucial for preventing regressions, maintaining software stability, and delivering high-quality products. It ensures that any modifications, enhancements, or bug fixes in the software do not inadvertently introduce new errors or re-introduce previously fixed errors.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"As part of the SDLC process, ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/security/application-security-testing/"},"content":[{"data":{},"marks":[],"value":"application security testing (AST)","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" ensures that applications are more resilient to security threats. AST helps identify weaknesses and vulnerabilities in source code. Furthermore, ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/security/what-is-dast/"},"content":[{"data":{},"marks":[],"value":"dynamic application security testing (DAST)","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":"is an application security program. DAST assists developers during the SDLC by helping them catch vulnerabilities caused by malicious attacks.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"GitHub offers a range of products and solutions that support this alignment. For instance, ","nodeType":"text"},{"data":{"uri":"https://github.com/features/actions"},"content":[{"data":{},"marks":[],"value":"GitHub Actions","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" allows you to automate your regression tests and integrate them into your CI/CD pipeline. This ensures that regression tests are run consistently, and results are reported in real time, enabling teams to maintain high software quality throughout the SDLC.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"\n","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6TVtmzFSubymIF30Ecj3c9","type":"Entry","createdAt":"2024-03-13T16:33:37.506Z","updatedAt":"2024-10-09T18:16:23.471Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":23,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionFAQ"}},"locale":"en-US"},"fields":{"title":"/software-development/regression-testing-definition-types-and-tools FAQ","sectionId":"faqs","heading":"Frequently asked questions","faqBlocks":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7nDyYMiEgHUFnYJtF1aphE","type":"Entry","createdAt":"2024-03-13T16:33:37.526Z","updatedAt":"2024-03-13T16:33:37.526Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":8,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentFAQBlock"}},"locale":"en-US"},"fields":{"title":"/software-development/regression-testing-definition-types-and-tools FAQ","questions":[]}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5DbFhu6NSI42vFPqoq2Pli","type":"Entry","createdAt":"2024-03-13T16:33:38.205Z","updatedAt":"2024-03-13T16:33:38.205Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":2,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionCards"}},"locale":"en-US"},"fields":{"title":"/software-development/regression-testing-definition-types-and-tools Cards","cards":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"VNWWnH21w0RYUhkSYb96c","type":"Entry","createdAt":"2024-03-13T16:33:38.223Z","updatedAt":"2024-03-13T16:33:38.223Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"layoutComponentCards"}},"locale":"en-US"},"fields":{"title":"/software-development/regression-testing-definition-types-and-tools Cards","cards":[]}}}}]}},"seo":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1v0RlGcrq5Fwbd6Pp88zcz","type":"Entry","createdAt":"2024-01-22T17:04:57.635Z","updatedAt":"2024-05-07T16:36:39.352Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":17,"revision":7,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"seo"}},"locale":"en-US"},"fields":{"metaTitle":"Regression Testing: Definition, Types, and Tools","metaDescription":"Learn how regression testing ensures code integrity by seeing if code changes are working.","openGraphTitle":"Regression Testing: Definition, Types, and Tools","openGraphDescription":"Discover how regression testing ensures code integrity by determining whether recent code changes or additions to an application are functional."}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6PZwCYZSbIZ1DqR5hcCEfV","type":"Entry","createdAt":"2024-01-11T21:01:01.545Z","updatedAt":"2024-05-10T17:34:50.328Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":9,"revision":3,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/software-development/tools-and-techniques-for-effective-code-documentation","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1ftFpLYHwskKrMq8Z6sMXi","type":"Entry","createdAt":"2024-05-10T17:34:50.364Z","updatedAt":"2024-05-10T17:34:50.364Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":10,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"containerLandingPage"}},"locale":"en-US"},"fields":{"title":"/software-development/tools-and-techniques-for-effective-code-documentation/","sections":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"28SQdsK5irRa7hwocxV825","type":"Entry","createdAt":"2024-05-10T17:34:50.567Z","updatedAt":"2024-05-10T17:34:50.567Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionHero"}},"locale":"en-US"},"fields":{"title":"/software-development/tools-and-techniques-for-effective-code-documentation/ Hero","hero":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2PWecHadoDkDddggUOo5s5","type":"Entry","createdAt":"2024-05-10T17:34:50.773Z","updatedAt":"2024-10-09T16:15:11.936Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":16,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentHero"}},"locale":"en-US"},"fields":{"title":"/software-development/tools-and-techniques-for-effective-code-documentation/ Hero","heading":"Tools and techniques for effective code documentation","text":"Get a comprehensive overview of code documentation and learn why it’s essential for delivering quality software. Gain valuable insights into best practices, strategies, and tools for well-documented code, including how AI helps developers write code documentation more efficiently.\n\n","align":"Left"}},"backgroundImage":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5uny5oZv6MG9lNCZyzaASz","type":"Asset","createdAt":"2022-09-26T12:36:20.198Z","updatedAt":"2024-02-20T19:05:53.407Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":12,"revision":3,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Light 1","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp","details":{"size":262930,"image":{"width":2400,"height":1260}},"fileName":"Productivity-LightMode-1.webp","contentType":"image/webp"}}},"theme":"light"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5KrTBeXdPjvLbK4DUf63Xq","type":"Entry","createdAt":"2024-05-10T17:34:50.792Z","updatedAt":"2024-05-10T17:34:50.792Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentAnchorNav"}},"locale":"en-US"},"fields":{"title":"/software-development/tools-and-techniques-for-effective-code-documentation/ Anchor","links":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3LJEtqft0JsL4PdzAYhW6H","type":"Entry","createdAt":"2023-12-15T20:13:46.061Z","updatedAt":"2024-10-09T18:22:54.694Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Overview","text":"Overview","href":"overview"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"13VjH3zCjCrSqNl1aOYuYg","type":"Entry","createdAt":"2024-03-13T16:27:09.199Z","updatedAt":"2024-10-09T18:20:03.374Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Benefits","text":"Benefits","href":"benefits"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"30WL8NGzdrA7KATIF7S3II","type":"Entry","createdAt":"2024-03-13T16:23:11.261Z","updatedAt":"2024-10-09T18:19:58.040Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Tools","text":"Tools","href":"tools"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"SdjmyHu23pB1H10VdxkJH","type":"Entry","createdAt":"2023-10-18T13:15:01.200Z","updatedAt":"2024-10-09T18:22:41.398Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":29,"revision":13,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Best practices ","text":"Best practices","href":"best-practices"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6JBpSa6kNeCj0NEnMK6QIU","type":"Entry","createdAt":"2023-03-31T02:17:35.715Z","updatedAt":"2024-10-09T18:22:09.372Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":12,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"FAQs","text":"FAQs","href":"faqs"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4YXO0x02xLbfu0SmPuGFU7","type":"Entry","createdAt":"2024-05-10T17:34:50.827Z","updatedAt":"2024-05-10T17:34:50.827Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/tools-and-techniques-for-effective-code-documentation Prose- overview","sectionId":"overview","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6ClaC3WuXE8kelO3NpSmUU","type":"Entry","createdAt":"2024-05-10T17:34:50.874Z","updatedAt":"2024-10-09T18:34:26.703Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/tools-and-techniques-for-effective-code-documentation Prose- overview","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Introduction to code documentation","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Code documentation is written information that accompanies software source code to help developers understand its purpose, how it works, and how to use it. Good code documentation makes it easier for developers to maintain and update code and collaborate on ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/software-development/what-is-software-development/"},"content":[{"data":{},"marks":[],"value":"software development","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" projects.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"There are different types of code documentation:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Inline code comments","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":" ","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"describe what the line or block of code does. Inline comments are added next to or within the code and are typically written in the same language as the code itself. They also describe what a specific method or function does, and its parameters, and return values.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"High-level documentation","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":" ","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"includes project specifications, system architecture, business logic, user manuals, and other project-level resources.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Walkthrough documentation","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":" ","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"is designed for developers who contribute to the code and need information about the codebase, such as its patterns and flaws.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"\n","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1gNxOwYupItJdiBCGOgLHy","type":"Entry","createdAt":"2024-05-10T17:34:50.892Z","updatedAt":"2024-05-10T17:34:50.892Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/tools-and-techniques-for-effective-code-documentation Prose- benefits","sectionId":"benefits","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1PiTeANJggDFpwMbWgYxfU","type":"Entry","createdAt":"2024-05-10T17:34:50.911Z","updatedAt":"2024-10-09T18:34:29.370Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":37,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/tools-and-techniques-for-effective-code-documentation Prose- benefits","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Code documentation benefits","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"It's important for developers to document their code accurately, consistently, and clearly to help ensure software quality. Good coding documentation:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Helps development teams understand, improve, and maintain the software.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":" ","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Code documentation is key to the ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/software-development/what-is-sdlc/"},"content":[{"data":{},"marks":[],"value":"software development lifecycle (SDLC)","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":". Developers and testers use code documentation to help them optimize performance, refractor the code, troubleshoot problems, and test and update the code. Code documentation also simplifies the debugging process by providing a reference point to help developers pinpoint the cause.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Improves collaboration.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":" ","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Good code documentation makes it easier for the development team to communicate more effectively and share code externally with customers and partners. It also makes it easier for the team to onboard and train new hires.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Saves time.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":" ","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"While poorly documented code might raise questions and cause misunderstandings, well-documented code helps developers save time clarifying, explaining, and supporting the codebase. Well-documented code is also more reusable than poorly documented code, so it helps speed software development.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Supports compliance.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":" ","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Organizations use code documentation to help them demonstrate the completeness of the code and how it meets standards, complies with regulations, and aligns to industry best practices.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Fundamentals of code documentation","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Writing clean, quality code","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"A key step to creating good code documentation is to write clean, quality code. Clean code is simple and concise, and easy to read, understand, and modify. The cleaner the code, the less documentation is needed to explain the code and how it works.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"The \"Don't repeat yourself\" (DRY) principle","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"This clean code principle emphasizes that code should not include redundant or duplicated information. The core concept of DRY is to have a single, authoritative representation of knowledge within each system. By eliminating duplicated code documentation, the DRY principle makes the codebase easier to understand and maintain.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Descriptive naming","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"To write clean code, it's important to clearly and descriptively name functions and variables. As a best practice, developers should choose descriptive variable names that accurately represent the purpose of each variable. Developers shouldn't need to leave comments in the code to describe or explain the variable names.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Logical codebase architecture","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"A logical codebase architecture helps developers write clean code by separating the codebase into distinct layers, each with its own responsibilities. This keeps the codebase organized and makes it easier for developers to understand its dependencies and structure.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2T5tPkjRb61RAbqrAOKcdH","type":"Entry","createdAt":"2024-03-13T16:16:37.625Z","updatedAt":"2024-03-22T14:04:08.326Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionRivers"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","rivers":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5hI6zGmuVkiZ0HSZjw5ElU","type":"Entry","createdAt":"2024-03-13T16:16:37.711Z","updatedAt":"2024-10-09T15:26:03.504Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":28,"revision":9,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentRiver"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","heading":"GitHub’s DevOps Solution","text":"Learn why 90% of the Fortune 100 use GitHub to build, scale, and deliver secure software.","media":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7Rb5ZoUDOX41PpqAibLo9","type":"Asset","createdAt":"2022-11-07T10:15:15.233Z","updatedAt":"2024-03-22T14:04:07.436Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":16,"revision":5,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Dark 1","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/7Rb5ZoUDOX41PpqAibLo9/344247765e0571d768e511fe686cea98/Productivity-DarkMode-1.webp","details":{"size":407100,"image":{"width":2400,"height":1260}},"fileName":"Productivity-DarkMode-1.webp","contentType":"image/webp"}}},"align":"end","imageTextRatio":"50:50"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2g27GeopjrOxNANWGMh2AS","type":"Entry","createdAt":"2024-05-10T17:34:50.932Z","updatedAt":"2024-05-10T17:34:50.932Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/tools-and-techniques-for-effective-code-documentation Prose- tools","sectionId":"tools","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"11GLy3uns6EfsHY0PxD4b3","type":"Entry","createdAt":"2024-05-10T17:34:50.977Z","updatedAt":"2024-10-09T18:34:32.150Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":24,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/tools-and-techniques-for-effective-code-documentation Prose- tools","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Code documentation tools and techniques","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Choosing the right code documentation tools","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Development teams can choose from various frameworks and tools to help them generate and maintain code documentation. Some tools offer automated document generation, which extracts information from source code to generate code documentation and automatically update it after code changes.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"It's important for development teams to choose a tool that works with their codebase. For example, Javadoc is a popular documentation tool for Java codebases and Sphinx is a documentation tool that's primarily used for Python codebases.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Choosing the right tool to share code documentation is another key decision. Development teams might use code repositories, shared files with annotated code snippets, or a static site hosting service such as ","nodeType":"text"},{"data":{"uri":"https://github.blog/2016-08-22-publish-your-project-documentation-with-github-pages/"},"content":[{"data":{},"marks":[],"value":"GitHub Pages","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":".","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"GitHub Pages is an excellent choice for developers whose code lives in GitHub because their documentation will live alongside their code. Developers can automatically deploy code documentation to GitHub Pages with ","nodeType":"text"},{"data":{"uri":"https://github.com/features/actions"},"content":[{"data":{},"marks":[],"value":"GitHub Actions","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":", a continuous integration and continuous delivery ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/ci-cd/"},"content":[{"data":{},"marks":[],"value":"(CI/CD)","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" platform that automates the build, test, and deployment pipelines. Developers might also use ","nodeType":"text"},{"data":{"uri":"https://github.com/features/code-review"},"content":[{"data":{},"marks":[],"value":"GitHub code review tools","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":", including Issues and Pull Requests, to create review processes that improve the quality of their code.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Documenting while coding","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Documentation as Code (Docs as Code) is a practice where developers use the same tools for both writing and documenting code. For example, ","nodeType":"text"},{"data":{"uri":"https://github.com/features/copilot"},"content":[{"data":{},"marks":[],"value":"GitHub Copilot","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" is an AI-powered tool that helps developers write both code and documentation more efficiently. When writing code, Copilot provides suggestions for function definitions, code snippets, and even entire classes based on the context of the code. Developers also use Copilot to get autocomplete style suggestions when they're writing documentation.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Here's a Copilot code documentation example with the suggestion shown in gray font.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{"target":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2GN4ZN5GHRJSrATzvxvZE8","type":"Asset","createdAt":"2024-05-10T17:34:50.308Z","updatedAt":"2024-05-10T17:34:50.308Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"locale":"en-US"},"fields":{"title":"Copilot code documentation example with the suggestion","description":"Copilot code documentation example with the suggestion","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/2GN4ZN5GHRJSrATzvxvZE8/ef6e881898cdba931dc5bc0a2391c58d/Picture1.png","details":{"size":26831,"image":{"width":1248,"height":237}},"fileName":"Picture1.png","contentType":"image/png"}}}},"content":[],"nodeType":"embedded-asset-block"},{"data":{},"content":[{"data":{},"marks":[],"value":"To see how to write documentation with Copilot suggestions, ","nodeType":"text"},{"data":{"uri":"https://learn.microsoft.com/en-us/shows/introduction-to-github-copilot/how-to-write-documentation-with-copilot-suggestions-5-of-6"},"content":[{"data":{},"marks":[],"value":"watch the short demo video.","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"To learn more about GitHub Copilot and AI, visit the ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/copilot-trust-center/"},"content":[{"data":{},"marks":[],"value":"GitHub Copilot Trust Center.","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Utilizing code comments","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"The purpose of code comments is to make the source code easier to understand by adding more context or providing an explanation. Developers also use comments to help them with code reviews, maintenance, fixing bugs, and refactoring.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"It's important that developers write clear, concise comments and avoid personal remarks and jargon. Developers should also avoid writing redundant and unnecessary comments, which make the code more difficult for others to read and understand.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7iO9xtbrs2Rea1Yvxdw8DS","type":"Entry","createdAt":"2024-05-10T17:34:50.996Z","updatedAt":"2024-05-10T17:34:50.996Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/tools-and-techniques-for-effective-code-documentation Prose- best-practices","sectionId":"best-practices","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"40KYh1SmPR1W7Q0zsX27WO","type":"Entry","createdAt":"2024-05-10T17:34:51.014Z","updatedAt":"2024-10-09T18:34:34.904Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/tools-and-techniques-for-effective-code-documentation Prose- best-practices","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Best practices in code documentation","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Write detailed, clear documentation","nodeType":"text"},{"data":{},"marks":[],"value":" that's easy to understand, uses simple language, and illustrates concepts with code snippets or examples. Avoid complex explanations and technical terms that other developers don't understand.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Use consistent naming conventions,","nodeType":"text"},{"data":{},"marks":[],"value":" especially for classes, functions, variables, files, and directories. This makes it easier for several developers to work on the same codebase.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"},{"data":{"uri":"https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-readmes"},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Include a README file","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":", which is a guide to the project that provides a project description, instructions to help users get started, and guidelines for contributing to the project.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Explain coding decisions","nodeType":"text"},{"data":{},"marks":[],"value":" and how they impact the codebase. Helping other developers understand the reasoning behind coding choices proactively answers their questions and reduces the possibility of misunderstandings.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"ordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Strategies and methodologies","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Develop a code documentation strategy.","nodeType":"text"},{"data":{},"marks":[],"value":" This includes identifying the audience for the documentation and understanding their needs, choosing tools for creating and managing the documentation, and defining standards such as naming conventions. In addition, it's important to define how code documentation is integrated into the software development process, and how the documentation will be maintained and updated.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Incorporate agile practices in documentation","nodeType":"text"},{"data":{},"marks":[],"value":". Agile is a process for software development that focuses on meeting customer business requirements by building a minimum viable product. Although the agile method values working software over comprehensive documentation, it emphasizes that projects should provide the key information needed to understand how the software was developed and how it should be used. Agile also emphasizes that code documentation should be developed during the project lifecycle, not after the software is completed.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Write for humans first.","nodeType":"text"},{"data":{},"marks":[],"value":" Humans are the most important audience for code documentation. When documenting code, developers should ask themselves if their comments will help others better understand the code and make it easier to maintain. If not, they should revisit their code comments to make them clearer and more concise.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Encourage collaboration and feedback.","nodeType":"text"},{"data":{},"marks":[],"value":" Developers should be expected to review and provide feedback on each other's code documentation. Adding documentation review sessions to the software development process, especially code reviews, will help improve the quality of documentation and help ensure that all developers have the same understanding of the codebase.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Maintaining and updating code documentation","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Keeping documentation up to date is critical for maintaining code quality. If the documentation doesn't reflect the current state of the codebase, then it needs to be updated, either manually or automatically. Strategies that make it easier to accomplish this include:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Using a documentation generation tool that automatically updates documentation after code changes.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Adding documentation review to the code review process.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Taking advantage of version control systems like ","nodeType":"text"},{"data":{"uri":"https://github.com/"},"content":[{"data":{},"marks":[],"value":"GitHub","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" to track changes to the codebase and documentation.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Conclusion","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"We've discussed why documenting code should be as important to development teams as writing code. Good code documentation makes it easier for developers to maintain and update code and collaborate with each other on software projects. Best practices include writing clean, quality code, utilizing code comments, and choosing the right tools, such as ","nodeType":"text"},{"data":{"uri":"https://github.com/features/copilot"},"content":[{"data":{},"marks":[],"value":"GitHub Copilot","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" to provide AI-powered suggestions,","nodeType":"text"},{"data":{"uri":"https://github.com/features/code-review"},"content":[{"data":{},"marks":[],"value":"GitHub code review tools","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" to automate the code review process, and ","nodeType":"text"},{"data":{"uri":"https://github.com/features/actions"},"content":[{"data":{},"marks":[],"value":"GitHub Actions","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":", a CI/CD platform that automates the build, test, and deployment pipelines.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5PATl0OJJGjIbztxR78J4M","type":"Entry","createdAt":"2024-05-10T17:34:51.071Z","updatedAt":"2024-10-09T18:17:49.799Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionFAQ"}},"locale":"en-US"},"fields":{"title":"/software-development/tools-and-techniques-for-effective-code-documentation FAQ","sectionId":"faqs","heading":"Frequently asked questions","faqBlocks":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"20XHmsS6nVIpsu4vxQLxZu","type":"Entry","createdAt":"2024-05-10T17:34:51.089Z","updatedAt":"2024-05-10T17:34:51.089Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":6,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentFAQBlock"}},"locale":"en-US"},"fields":{"title":"/software-development/tools-and-techniques-for-effective-code-documentation FAQ","questions":[]}}]}}]}},"seo":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1tNSZZAUX3HFHDUlHSU6ks","type":"Entry","createdAt":"2024-05-07T16:28:20.883Z","updatedAt":"2024-05-07T16:28:24.713Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":10,"revision":3,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"seo"}},"locale":"en-US"},"fields":{"metaTitle":"Effective Code Documentation: Tools and Techniques","metaDescription":"Learn about code documentation and why it’s essential for delivering quality software. ","openGraphTitle":"Effective Code Documentation: Tools and Techniques","openGraphDescription":"Learn about code documentation and why it’s essential for delivering quality software. Gain valuable insights into best practices, strategies, and tools for well-documented code, including how AI helps developers write code documentation more efficiently. "}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5qGYiloWtXqHiwuyzJ2m9V","type":"Entry","createdAt":"2024-03-13T16:19:06.965Z","updatedAt":"2024-03-13T16:19:06.965Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":6,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/software-development/what-is-a-programming-language","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3AdLKWJdokzyGEexwXCPNw","type":"Entry","createdAt":"2024-03-13T16:19:07.377Z","updatedAt":"2024-03-13T16:20:03.275Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":15,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"containerLandingPage"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-a-programming-language","sections":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3XdAMKm5v8dKtP3n8cnOb7","type":"Entry","createdAt":"2024-03-13T16:19:07.426Z","updatedAt":"2024-03-13T16:19:07.426Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":7,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionHero"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-a-programming-language Hero","hero":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4LJEchJukbrhbN0QFTgvLt","type":"Entry","createdAt":"2024-03-13T16:19:07.460Z","updatedAt":"2024-10-09T16:25:54.081Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":17,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentHero"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-a-programming-language Hero","heading":"What is a programming language?","text":"At its core, a programming language is a set of instructions that enables humans to communicate with computers—using a series of symbols that serve as a bridge that allows humans to turn our ideas into instructions computers can understand. Like spoken languages, each language has its own unique syntax, structure, vocabulary, and even slang or shortcuts.","align":"Left"}},"backgroundImage":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6z2nwPNKt4d23LDLfBNWES","type":"Asset","createdAt":"2022-08-29T10:17:20.095Z","updatedAt":"2024-02-20T19:05:53.410Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":13,"revision":3,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Dark 2","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp","details":{"size":363582,"image":{"width":2400,"height":1260}},"fileName":"Productivity-DarkMode-2.webp","contentType":"image/webp"}}},"theme":"dark"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3pZ0z5gPvLZrgV2w3xflBO","type":"Entry","createdAt":"2024-03-13T16:19:07.477Z","updatedAt":"2024-03-13T16:19:07.477Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":10,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentAnchorNav"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-a-programming-language Anchor nav","links":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5tDR7MaNLmW8EeRnkmOV4u","type":"Entry","createdAt":"2024-03-13T16:19:07.531Z","updatedAt":"2024-10-09T18:19:44.997Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":20,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Role","text":"Role","href":"role"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"EHfQIMCx2RCkoHIFfGmDh","type":"Entry","createdAt":"2024-03-13T16:16:37.008Z","updatedAt":"2024-10-09T18:20:46.714Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":11,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Types","text":"Types","href":"types"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4Xq8hfMj8X9datBpnLNxmm","type":"Entry","createdAt":"2024-03-13T16:19:07.549Z","updatedAt":"2024-10-09T18:19:47.578Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":26,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Popular languages","text":"Popular languages","href":"popular-languages"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4fCQgLxZ96AWigVZRfzmCc","type":"Entry","createdAt":"2024-03-13T16:19:07.565Z","updatedAt":"2024-10-09T18:19:50.386Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Learning","text":"Learning","href":"learning"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6JBpSa6kNeCj0NEnMK6QIU","type":"Entry","createdAt":"2023-03-31T02:17:35.715Z","updatedAt":"2024-10-09T18:22:09.372Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":12,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"FAQs","text":"FAQs","href":"faqs"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6teR5Y6HhuLj3XCLLYOtPq","type":"Entry","createdAt":"2024-03-13T16:19:07.635Z","updatedAt":"2024-03-13T16:19:07.635Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-a-programming-language Prose - Intro","sectionId":"role","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7fV2JCCoAqkCX9vodMMiHO","type":"Entry","createdAt":"2024-03-13T16:19:07.653Z","updatedAt":"2024-10-09T16:04:44.305Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":17,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-a-programming-language Prose - Intro","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"In the vast digital landscape, programming languages are the “lingua francas” of software development, facilitating global conversations between machines and developers, wherever they may be. Their importance extends far beyond lines of code—they empower us to use technology to innovate, automate, and bring our imagination to life.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"If you've ever wondered how your favorite apps, websites, or software come to life, you're in the right place. In this article, we'll explore the not-so-basic basics of programming languages, their pivotal role in software development, and how they shape the technological landscape we navigate daily.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"What is the role of programming languages in software development?","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"A computer \"speaks\" in a \"language\" using strings of the numerals \"1\" and \"0\"—known as binary code. A programming language allows us to translate the computer's binary code into something humans can understand and write.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"These languages enable us to communicate with computers, build and organize code, specify functionality and behavior, automate and improve efficiency, collaborate and share code, and solve problems creatively.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Here are some examples of how specific programming languages can help you to:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Communicate with computers:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Example: Python","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Python is widely used for writing scripts and programs to communicate instructions to computers. For instance, a Python script can automate file operations, manage system tasks, or control hardware components, allowing developers to interact with computers at a low level.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Build and organize code:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Example: Java","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Java is known for its object-oriented programming paradigm, making it suitable for building large-scale ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/enterprise/what-is-an-enterprise-application/"},"content":[{"data":{},"marks":[],"value":"enterprise applications.","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" Developers use Java to organize code into classes and modules, promoting code reusability and maintainability. The language's structure helps in creating well-organized and structured software projects.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Specify functionality and behavior:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Example: JavaScript","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"JavaScript is commonly used to specify the functionality and behavior of web applications. It runs in web browsers, allowing developers to define how web pages interact with users. JavaScript is essential for client-side scripting, enabling dynamic and interactive web experiences.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Automate and boost efficiency:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Example: Bash (Bourne Again Shell)","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Bash scripting is used for automating repetitive tasks in the Linux environment. Developers write bash scripts to automate system tasks, file operations, and other routine processes. This enhances efficiency by reducing manual intervention in day-to-day operations.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Collaborate and code share:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Example: Ruby","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Ruby on Rails is a web development framework that facilitates collaboration and sharing of code. It follows the convention over configuration (CoC) and don't repeat yourself (DRY) principles, making it easier for developers to work together on a project. The framework's structure encourages uniformity, easing collaboration among team members.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Adaptability and flexibility:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Example: C++","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"C++ is known for its adaptability and flexibility, allowing developers to write both low-level and high-level code. It is used in a variety of applications, from system programming to game development. C++ balances performance and abstraction, making it adaptable to different domains and requirements.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Problem solving and creativity:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Example: Python (again)","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Python is mentioned twice with good reason—not only one of the most popular languages for beginners to learn, but it's also used for problem-solving and creative tasks due to its clear syntax and extensive libraries. Whether it's data analysis, machine learning, or building web apps, Python's versatility allows developers to approach problem-solving in creative ways. Its readability and expressiveness contribute to a more intuitive and creative coding experience.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"How do programming languages work?","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Programming languages are used in all areas of the ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/software-development/what-is-sdlc/"},"content":[{"data":{},"marks":[],"value":"software development lifecycle (SDLC)","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":", including:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Writing the code","nodeType":"text"},{"data":{},"marks":[],"value":": Everything starts with code. Developers write lines of instructions, expressing their logic and intentions in a programming language, using a text editor or an integrated development environment (IDE).","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Compilation vs. interpretation","nodeType":"text"},{"data":{},"marks":[],"value":": Once code is written, it undergoes either compilation or interpretation, depending on the type of programming language used Compiled languages like C++ convert the entire code into machine-readable binary before execution. Interpreted languages like Python translate code line by line during runtime.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Execution","nodeType":"text"},{"data":{},"marks":[],"value":": The compiled or interpreted code is executed by the computer, carrying out the specified instructions and producing the desired output. Code review helps to improve code quality and promote discussion among team members.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Runtime errors","nodeType":"text"},{"data":{},"marks":[],"value":": During execution, some instructions may get \"lost in translation.\" Runtime errors can range from logical mistakes in the code to unforeseen issues. Debugging becomes the detective work of identifying and fixing these errors.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Debugging","nodeType":"text"},{"data":{},"marks":[],"value":": Debugging is the process of finding and resolving errors in code. Developers use ","nodeType":"text"},{"data":{"uri":"https://github.com/features/code-review"},"content":[{"data":{},"marks":[],"value":"code review tools","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" and techniques to trace issues, ensuring the software behaves as intended, as well as to reduce security risks.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"\n","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"RQaPcAzmZvN5NtiPjLgpR","type":"Entry","createdAt":"2024-03-13T16:19:07.726Z","updatedAt":"2024-03-13T16:19:07.726Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-a-programming-language Prose - Types","sectionId":"types","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3E7Fp6IEUXlyqG7anlG9VO","type":"Entry","createdAt":"2024-03-13T16:19:07.744Z","updatedAt":"2024-10-09T16:04:39.478Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":23,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-a-programming-language Prose - Types","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Types of programming languages","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"The most common types of programming languages can be broadly grouped into two families: paradigm-based and application-based.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Paradigm-based languages","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Paradigm-based languages are classified based on their programming paradigm, which is a fundamental style of programming. Some examples of paradigm-based languages:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Imperative languages: ","nodeType":"text"},{"data":{},"marks":[],"value":"are designed to express the sequence of steps required to solve a problem. They describe how a program operates using statements that change a program's state. Examples include C, C++, and Java.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Functional languages","nodeType":"text"},{"data":{},"marks":[],"value":": Functional languages are designed to express computations as the evaluation of mathematical functions. They emphasize the use of functions and avoid changing state and mutable data. Examples include Haskell, Lisp, Scala, and ML.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Markup languages","nodeType":"text"},{"data":{},"marks":[],"value":": Markup languages are designed to annotate text with metadata and are used often in web development to format and present text. Examples include HTML, XML, and LaTeX.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Application-based Languages","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Application-based languages are classified based on their application domain. Some examples of application-based languages are:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Web development languages ","nodeType":"text"},{"data":{},"marks":[],"value":"are vital for creating interactive and visually appealing websites and web applications. Examples include HTML, CSS, JavaScript, and PHP.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Mobile app development languages ","nodeType":"text"},{"data":{},"marks":[],"value":"are tailored for building applications on mobile platforms. Examples include Java, Kotlin, and Swift.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Data science languages ","nodeType":"text"},{"data":{},"marks":[],"value":"are designed for statistical analysis, machine learning, and data manipulation. Examples include Python, R, and SQL.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"193zsF1dDt7Sx7n7iGcrXQ","type":"Entry","createdAt":"2024-03-13T16:19:07.761Z","updatedAt":"2024-03-13T16:19:07.761Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-a-programming-language Prose - popular","sectionId":"popular-languages","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"WScLfIbQNMS7qvRBSuVhb","type":"Entry","createdAt":"2024-03-13T16:19:07.839Z","updatedAt":"2024-10-09T16:04:34.692Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":27,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-a-programming-language Prose - popular","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Popular programming languages","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Programming languages may wax or wane in popularity—new languages are constantly being developed as new technologies emerge. If you're trying to decide which language to start your coding journey with or which one to use in a new project, check out the ","nodeType":"text"},{"data":{"uri":"https://pypl.github.io/PYPL.html"},"content":[{"data":{},"marks":[],"value":"Popularity of Programming Language (PYPL) index","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" which uses \"collective wisdom\" to indicate a language's current popularity by analyzing raw data from Google Trends.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Several programming languages are consistently found at the top of any popularity list:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Python","nodeType":"text"},{"data":{},"marks":[],"value":": A high-level, general-purpose programming language widely used for web development, data science, artificial intelligence, and automation.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Strengths","nodeType":"text"},{"data":{},"marks":[],"value":": Readability, versatility, and extensive libraries.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Weaknesses","nodeType":"text"},{"data":{},"marks":[],"value":": Slower execution speed in comparison to lower-level languages.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"JavaScript","nodeType":"text"},{"data":{},"marks":[],"value":": JavaScript is known for its ability to enable interactive and dynamic content and user interfaces. It supports both client-side and server-side scripting.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Strengths","nodeType":"text"},{"data":{},"marks":[],"value":": Ubiquitous in web development, asynchronous programming.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Weaknesses","nodeType":"text"},{"data":{},"marks":[],"value":": Single-threaded nature, potential for browser compatibility issues.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Java","nodeType":"text"},{"data":{},"marks":[],"value":": An object-oriented, statically typed, and compiled programming language renowned for its portability and platform independence. Java is particularly useful for apps in industries such as finance, healthcare, and entertainment and for Android, web, and ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/enterprise/what-is-enterprise-application-development/"},"content":[{"data":{},"marks":[],"value":"enterprise application development","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":".","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Strengths","nodeType":"text"},{"data":{},"marks":[],"value":": Platform independence, strong community support.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Weaknesses","nodeType":"text"},{"data":{},"marks":[],"value":": Verbosity, slower execution compared to lower-level languages.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"C++","nodeType":"text"},{"data":{},"marks":[],"value":": A high-performance, object-oriented language that is used in system programming and scientific computing as well as used to develop operating systems, browsers, and games.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Strengths","nodeType":"text"},{"data":{},"marks":[],"value":": High performance, extensive library support.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Weaknesses","nodeType":"text"},{"data":{},"marks":[],"value":": Steeper learning curve, manual memory management.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"C#","nodeType":"text"},{"data":{},"marks":[],"value":": An object-oriented programming language that is used to develop Windows apps and games.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Strengths","nodeType":"text"},{"data":{},"marks":[],"value":": Versatile and integrates efficiently with Visual Studio, .NET framework, and Microsoft Azure.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Weaknesses","nodeType":"text"},{"data":{},"marks":[],"value":": Steeper learning curve and community size not as large as other popular languages like Java or Python.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Go","nodeType":"text"},{"data":{},"marks":[],"value":": A statically typed, compiled programming language that is designed for building scalable and efficient software.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Strengths","nodeType":"text"},{"data":{},"marks":[],"value":": Simplicity, concurrency support, and fast compilation.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Weaknesses","nodeType":"text"},{"data":{},"marks":[],"value":": Smaller ecosystem compared to established languages.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"Other popular programming languages include C, PHP, TypeScript, HTML, and CSS. C is a general-purpose, procedural programming language that is used to develop operating systems, device drivers, and embedded systems. PHP is a server-side scripting language that is used to create dynamic web pages, while TypeScript is a superset of JavaScript that adds optional static typing and other features to the language. HTML and CSS are markup languages that are used to create web pages.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2T5tPkjRb61RAbqrAOKcdH","type":"Entry","createdAt":"2024-03-13T16:16:37.625Z","updatedAt":"2024-03-22T14:04:08.326Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionRivers"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","rivers":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5hI6zGmuVkiZ0HSZjw5ElU","type":"Entry","createdAt":"2024-03-13T16:16:37.711Z","updatedAt":"2024-10-09T15:26:03.504Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":28,"revision":9,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentRiver"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","heading":"GitHub’s DevOps Solution","text":"Learn why 90% of the Fortune 100 use GitHub to build, scale, and deliver secure software.","media":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7Rb5ZoUDOX41PpqAibLo9","type":"Asset","createdAt":"2022-11-07T10:15:15.233Z","updatedAt":"2024-03-22T14:04:07.436Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":16,"revision":5,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Dark 1","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/7Rb5ZoUDOX41PpqAibLo9/344247765e0571d768e511fe686cea98/Productivity-DarkMode-1.webp","details":{"size":407100,"image":{"width":2400,"height":1260}},"fileName":"Productivity-DarkMode-1.webp","contentType":"image/webp"}}},"align":"end","imageTextRatio":"50:50"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1Hb1AVz6iwROKHSavauU5O","type":"Entry","createdAt":"2024-03-13T16:19:07.860Z","updatedAt":"2024-03-13T16:19:07.860Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-a-programming-language Prose - Learning","sectionId":"learning","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3AS5eJFEPN8fwxcm7Og46G","type":"Entry","createdAt":"2024-03-13T16:19:08.027Z","updatedAt":"2024-10-09T16:04:29.052Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":18,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-a-programming-language Prose - Learning","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"How to learn programming languages","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"With the rise of generative AI tools like ","nodeType":"text"},{"data":{"uri":"https://github.com/features/copilot"},"content":[{"data":{},"marks":[],"value":"GitHub Copilot","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" and ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/artificial-intelligence/what-is-ai-code-generation/"},"content":[{"data":{},"marks":[],"value":"AI code generation","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":", the language of coding has entered our common vocabulary—no matter your chosen profession or field. While large tech companies may seem like the pinnacle of coding achievement, they represent a small fraction of programming languages' impact. Many recruitment professionals predict that soon having a basic understanding of coding will be just as common and just as important as literacy or learning a foreign language. Learning a new programming language opens up numerous opportunities for career advancement.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Here are some steps to help you decide which programming language is best for you to learn:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"1. Identify your purpose","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Deciding which programming language to learn depends on what you want to do. Some languages, like Python or Java have huge communities of support, are easy to learn and use, and can be used for multiple applications. Others are more niche and designed to perform very specific tasks.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"2. Choose a language","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Based on your goals, select a language that aligns with your purpose. Python is often recommended for beginners due to its readability and versatility. Check out the resources with ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/learn/pathways/"},"content":[{"data":{},"marks":[],"value":"GitHub Learning Pathways","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" to explore topics relevant to your goals.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"3. Online courses and tutorials","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Many platforms like Codecademy, Coursera, and Udacity offer interactive courses for various programming languages. Check out the video series, ","nodeType":"text"},{"data":{"uri":"https://learn.microsoft.com/en-us/shows/Intro-to-Python-Development/"},"content":[{"data":{},"marks":[],"value":"Python for Beginners","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":", from Microsoft Learn","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"4. Ebooks and documentations","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Explore well-regarded ebooks on programming languages and refer to official documentation and resources of industry leaders like ","nodeType":"text"},{"data":{"uri":"https://docs.github.com/en"},"content":[{"data":{},"marks":[],"value":"GitHub","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" and ","nodeType":"text"},{"data":{"uri":"https://learn.microsoft.com/en-us/"},"content":[{"data":{},"marks":[],"value":"Microsoft Learn","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":".","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"5. Practice and play around","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Apply your knowledge by working on real-world projects. Platforms like GitHub provide a welcoming space to collaborate, showcase, and ask practical language questions.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"6. Engage with communities of learners","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Join online forums and communities to seek help, share experiences, and connect with other learners and experts. Get to know the community and learn what other developers are doing with your chosen language.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Get Started with programming languages","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"To sum up, programming languages allow us to instruct computers to build platforms for games and play, connect communities physically and virtually, and even create programs that provide life-saving medical interventions.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"These languages are not only used by professional developers at big tech companies or Silicon Valley. Self-taught coders across diverse fields such as science, gaming, sports, finance, and healthcare are continually learning new languages. Becoming fluent in a programming language (or several!) is an essential tool in software development. Whether you're a seasoned developer or a curious beginner, learning a new programming language will spark inventive ways to use technology and translates into \"happy coding\" in any language!","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"More resources to get started","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"},{"data":{"uri":"https://resources.github.com/videos/write-more-code-by-writing-less-code-with-github-copilot/"},"content":[{"data":{},"marks":[],"value":"Write more code by writing less code with GitHub Copilot \u003e","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"},{"data":{"uri":"https://resources.github.com/security/secure-software-faster-ebook/"},"content":[{"data":{},"marks":[],"value":"Empowering developers to build secure software faster \u003e","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2bmdRDAtnW9ApOIJtqGDcg","type":"Entry","createdAt":"2024-03-13T16:19:08.326Z","updatedAt":"2024-10-09T18:16:13.929Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":23,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionFAQ"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-a-programming-language FAQ","sectionId":"faqs","heading":"Frequently asked questions","faqBlocks":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6AraYMH0aktv6RR5RuBaYS","type":"Entry","createdAt":"2024-03-13T16:19:08.437Z","updatedAt":"2024-03-13T16:19:08.437Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":6,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentFAQBlock"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-a-programming-language FAQ","questions":[]}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"496vys5y8wqwg8EKuVJoTP","type":"Entry","createdAt":"2024-03-13T16:19:08.725Z","updatedAt":"2024-03-13T16:19:08.725Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionCards"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-a-programming-language Cards","cards":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6edrDoDjBSWWgepYCDlCDn","type":"Entry","createdAt":"2024-03-13T16:19:08.743Z","updatedAt":"2024-03-13T16:19:08.743Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"layoutComponentCards"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-a-programming-language Cards","cards":[]}}}}]}},"seo":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7xKrGGUQIp1RwjnPPanJsD","type":"Entry","createdAt":"2024-01-10T16:28:20.080Z","updatedAt":"2024-05-07T16:37:14.145Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":11,"revision":4,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"seo"}},"locale":"en-US"},"fields":{"metaTitle":"What is a Programming Language? Definition and Types","metaDescription":"A programming language is a set of instructions that enables humans to communicate commands to a computer in software development.","openGraphTitle":"What is a Programming Language? Definition and Types","openGraphDescription":"A programming language is a set of instructions that enables humans to communicate commands to a computer in software development."}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2Ri3ps4McauRhicmYqFO55","type":"Entry","createdAt":"2024-03-13T16:53:36.131Z","updatedAt":"2024-03-14T00:37:30.423Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":6,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/software-development/what-is-sdlc","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7gN9TYC0zfirM1ZFm9CPUe","type":"Entry","createdAt":"2024-03-13T16:52:51.933Z","updatedAt":"2024-03-13T16:52:51.933Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":15,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"containerLandingPage"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-sdlc","sections":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5cHpRFgX6F0vw6b9E082Gq","type":"Entry","createdAt":"2024-03-13T16:52:52.073Z","updatedAt":"2024-03-13T16:55:09.763Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":6,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionHero"}},"locale":"en-US"},"fields":{"title":" /software-development/what-is-sdlc Hero","hero":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4Fi16nnhj2pWRSM9BS1awR","type":"Entry","createdAt":"2024-03-13T16:52:52.095Z","updatedAt":"2024-10-09T16:25:27.477Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":17,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentHero"}},"locale":"en-US"},"fields":{"title":" /software-development/what-is-sdlc Hero","heading":"Understanding the SDLC: Software Development Lifecycle Explained","text":"Learn about the software development lifecycle (SDLC) and gain valuable insights into its essential phases, methodologies, and best practices. Enhance your understanding of this crucial process to drive successful software development projects.\n\n","align":"Left"}},"backgroundImage":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5uny5oZv6MG9lNCZyzaASz","type":"Asset","createdAt":"2022-09-26T12:36:20.198Z","updatedAt":"2024-02-20T19:05:53.407Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":12,"revision":3,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Light 1","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp","details":{"size":262930,"image":{"width":2400,"height":1260}},"fileName":"Productivity-LightMode-1.webp","contentType":"image/webp"}}},"theme":"light"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1tdz3pU5OmpIj0hJGrvkNp","type":"Entry","createdAt":"2024-03-13T16:52:52.116Z","updatedAt":"2024-03-13T16:52:52.116Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":11,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentAnchorNav"}},"locale":"en-US"},"fields":{"title":" /software-development/what-is-sdlc Anchor nav","links":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3LJEtqft0JsL4PdzAYhW6H","type":"Entry","createdAt":"2023-12-15T20:13:46.061Z","updatedAt":"2024-10-09T18:22:54.694Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Overview","text":"Overview","href":"overview"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6jZjQZIAYreKUN696Crkmj","type":"Entry","createdAt":"2024-03-13T16:52:52.154Z","updatedAt":"2024-10-09T18:20:16.495Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":20,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Phases","text":"Phases","href":"phases"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3S4tA3BXe7clWBd3z4VXkT","type":"Entry","createdAt":"2024-03-13T16:52:52.173Z","updatedAt":"2024-10-09T18:20:18.974Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":20,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"methodologies","text":"Methodologies","href":"methodologies"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"SdjmyHu23pB1H10VdxkJH","type":"Entry","createdAt":"2023-10-18T13:15:01.200Z","updatedAt":"2024-10-09T18:22:41.398Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":29,"revision":13,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Best practices ","text":"Best practices","href":"best-practices"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6JBpSa6kNeCj0NEnMK6QIU","type":"Entry","createdAt":"2023-03-31T02:17:35.715Z","updatedAt":"2024-10-09T18:22:09.372Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":12,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"FAQs","text":"FAQs","href":"faqs"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3yGzsgDfem8C1Gn5dPvcnI","type":"Entry","createdAt":"2024-03-13T16:52:52.191Z","updatedAt":"2024-03-13T16:52:52.191Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-sdlc Prose - Overview","sectionId":"overview","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3jQhsn38xKXMqHOz1YfFIj","type":"Entry","createdAt":"2024-03-13T16:52:52.231Z","updatedAt":"2024-10-09T18:29:07.274Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":24,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-sdlc Prose - Overview","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Building great software is a big challenge, and development teams rely on the software development lifecycle (SDLC) to help them succeed. By providing a structured approach to software development, an effective SDLC helps teams:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Clarify and understand stakeholder requirements.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Estimate project costs and timeframes.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Identify and minimize risks early in the process.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Measure progress and keep projects on track.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Enhance transparency and improve client relations.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Control costs and accelerate time to market.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"What is SDLC?","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"The software development lifecycle (SDLC) is a step-by-step process that helps development teams efficiently build the highest quality software at the lowest cost. Teams follow the SDLC to help them plan, analyze, design, test, deploy, and maintain software. The SDLC also helps teams ensure that the software meets stakeholder requirements and adheres to their organization’s standards for quality, security, and compliance.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"The SDLC includes different phases, and each phase has a specific process and deliverables. Although SDLC meaning might vary for each development team, the most common phases include:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Requirements gathering and analysis: ","nodeType":"text"},{"data":{},"marks":[],"value":"Business analysts work with stakeholders to determine and document the software requirements.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"System design: ","nodeType":"text"},{"data":{},"marks":[],"value":"Software architects translate the requirements into a software solution and create a high-level design.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Coding: ","nodeType":"text"},{"data":{},"marks":[],"value":"Developers build the software based on the system design.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Testing: ","nodeType":"text"},{"data":{},"marks":[],"value":"The software is tested for bugs and defects and to make sure that it meets the requirements. Any issues are fixed until the software is ready for deployment.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Deployment: ","nodeType":"text"},{"data":{},"marks":[],"value":"The software is released to the production environment where it is installed on the target systems and made available to users.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Maintenance and support: ","nodeType":"text"},{"data":{},"marks":[],"value":"This ongoing process includes training and supporting users, enhancing the software, monitoring performance, and fixing any bugs or security issues.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2RcBUCqkH173IKJmpjSLgU","type":"Entry","createdAt":"2024-03-13T16:52:52.251Z","updatedAt":"2024-03-13T16:52:52.251Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-sdlc Prose - Phases","sectionId":"phases","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2UI958mQolkB8w5lxj4UdW","type":"Entry","createdAt":"2024-03-13T16:52:52.330Z","updatedAt":"2024-10-09T18:29:11.147Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":27,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-sdlc Prose - Phases","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"SDLC phases and how they work","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Each phase of the SDLC has key activities designed to drive efficiently, quality, and customer satisfaction.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Requirements gathering and analysis","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Accurate, complete, and measurable user requirements are the foundation for any successful SDLC project—to ensure that the software meets user expectations and to avoid costly rework and project delays. The IT business analyst:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Gathers requirements by conducting interviews, holding workshops or focus groups, preparing surveys or questionnaires, and observing how stakeholders work.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Evaluates the requirements as they relate to system feasibility, and software design and testing.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Models the requirements and records them in a document, such as a user story, software requirements specification, use case document, or process specification.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"System design","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Effective system design properly accounts for all documented requirements. In this phase, software architects use tools to visualize information about the application’s behavior and structure, including:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"The unified modeling language (UML) to illustrate the software’s architectural blueprints in a diagram.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Data flow diagrams to visualize system requirements.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Decision trees and decision tables to help explain complex relationships.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Simulations to predict how the software will perform.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"To support the distinct layers within a software application, software architects use a design principle called separation of concerns. A software program that’s designed to align with the separation of concerns principle is called a modular program.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Modular software design separates program functionality into interchangeable, independent modules, so that each module contains everything it needs to execute one aspect of the software’s functionality. This approach makes it easier to understand, test, maintain, reuse, scale, and refactor code.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Coding","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"In the coding phase, developers translate the system design specifications into actual code. It’s critical that developers follow best practices for writing clean, maintainable, and efficient code, including:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Writing code that’s easy to understand and read.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Using comments to explain what the code does.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Using version control to track any changes to the codebase.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Refactoring the code if needed.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Conducting a code review when coding is completed to get a second opinion on the code.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Providing code documentation that explains how the code works.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Testing","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Before it’s released to production, the software is thoroughly tested for defects and errors.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"The software test plan ","nodeType":"text"},{"data":{},"marks":[],"value":"provides critical information about the testing process, including the strategy, objectives, required resources, deliverables, and criteria for exit or suspension.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Test case design ","nodeType":"text"},{"data":{},"marks":[],"value":"establishes the criteria for determining if the software is working correctly or not.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Test execution ","nodeType":"text"},{"data":{},"marks":[],"value":"is the process of running the test to identify any bugs or software defects.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"Developers and quality assurance teams use automated testing tools to quickly test software, prepare defect reports, and compare testing results with expected outcomes. Automated testing saves time and money, provides immediate feedback, and helps improve software quality. Automated testing can be used for:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Unit testing:","nodeType":"text"},{"data":{},"marks":[],"value":" Developers test the individual software modules to validate that each one is working correctly.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Integration testing:","nodeType":"text"},{"data":{},"marks":[],"value":" Developers test how the different modules interact with each other to verify that they work together correctly.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"System testing","nodeType":"text"},{"data":{},"marks":[],"value":": Developers test the software to verify that it meets the requirements and works correctly in the production environment.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"User acceptance testing: ","nodeType":"text"},{"data":{},"marks":[],"value":"Stakeholders and users test the software to verify and accept it before it’s deployed to production.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Deployment","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"There are three main phases to deploying software in a production environment:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"The development team commits the code to a software repository.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"The deployment automation tool triggers a series of tests.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"The software is deployed to production and made available to users.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"Effective software installation requires a consistent deployment mechanism and a simple installation structure with minimal file distribution. The team must also make sure that the correct configuration file is copied to the production environment and that the correct network protocols are in place. Before migrating data to the new system, the team also needs to audit the source data and resolve any issues.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Release management makes software deployment smooth and stable. This process is used to plan, design, schedule, test, and deploy the release. Versioning helps ensure the integrity of the production environment when upgrades are deployed.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Maintenance and support","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"After the software is deployed, the software maintenance lifecycle begins. Software requires ongoing maintenance to ensure that it operates at peak performance. Developers periodically issue software patches to fix bugs in the software and resolve any security issues.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Maintenance activities also include performance monitoring of both the software’s technical performance and how users perceive its performance. Providing training and documentation to users, along with addressing user issues and upgrading their systems to make sure they’re compatible with the new software, are also key components of the software maintenance lifecycle.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2T5tPkjRb61RAbqrAOKcdH","type":"Entry","createdAt":"2024-03-13T16:16:37.625Z","updatedAt":"2024-03-22T14:04:08.326Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionRivers"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","rivers":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5hI6zGmuVkiZ0HSZjw5ElU","type":"Entry","createdAt":"2024-03-13T16:16:37.711Z","updatedAt":"2024-10-09T15:26:03.504Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":28,"revision":9,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentRiver"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","heading":"GitHub’s DevOps Solution","text":"Learn why 90% of the Fortune 100 use GitHub to build, scale, and deliver secure software.","media":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7Rb5ZoUDOX41PpqAibLo9","type":"Asset","createdAt":"2022-11-07T10:15:15.233Z","updatedAt":"2024-03-22T14:04:07.436Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":16,"revision":5,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Dark 1","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/7Rb5ZoUDOX41PpqAibLo9/344247765e0571d768e511fe686cea98/Productivity-DarkMode-1.webp","details":{"size":407100,"image":{"width":2400,"height":1260}},"fileName":"Productivity-DarkMode-1.webp","contentType":"image/webp"}}},"align":"end","imageTextRatio":"50:50"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"lzAOpjE5b6z900ZHJ2uBA","type":"Entry","createdAt":"2024-03-13T16:52:52.354Z","updatedAt":"2024-03-13T16:52:52.354Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-sdlc Prose - Methodologies","sectionId":"methodologies","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6cTNlfIkHBIDFj9TRiaujw","type":"Entry","createdAt":"2024-03-13T16:52:52.374Z","updatedAt":"2024-10-09T18:29:15.083Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":26,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-sdlc Prose - Methodologies","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"What are the SDLC methodologies?","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"In the world of software development, different methodologies serve as structured approaches to guide the process of creating and delivering software. These methodologies shape how teams plan, execute, and manage their projects, impacting factors such as flexibility, collaboration, and efficiency. Let's take a look at some of the more prominent SDLC methodologies.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Waterfall model","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Introduced in 1970, the first SDLC approach to be widely used by development teams is called the waterfall model. This method divides the software development process into sequential phases. Work flows down from one phase to another, like a waterfall, with the outcome of one phase serving as the input for the next phase. The next phase can’t begin until the previous one is completed.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"The waterfall model works best for small projects where the requirements are well-defined, and the development team understands the technology. Updating existing software and migrating software to a new platform are examples of scenarios that are well-suited for the waterfall model.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"italic"}],"value":"Waterfall model advantages","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"The straightforward process is easy to understand and follow.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"An output is delivered at the end of each phase.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Project milestones and deadlines are clearly defined.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"italic"}],"value":"Waterfall model disadvantages","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Lack of flexibility makes it difficult for development teams to adapt when stakeholder requirements change.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Once a phase is completed, any changes can be costly to implement and might delay the project schedule.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Testing does not take place until the end of the SDLC.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Agile methodology","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"The term “agile” describes an approach to software development that emphasizes incremental delivery, team collaboration, and continual planning and learning. Unlike the waterfall model’s sequential process, the agile methodology takes an iterative approach to software development.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Iterative software development speeds the SDLC by completing work in sprints, which are fixed project cycles that typically last between two and four weeks. Key terms include:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"User stories: ","nodeType":"text"},{"data":{},"marks":[],"value":"User stories are short descriptions of product requirements from the customer’s point of view. The most critical user stories are prioritized at the top of each sprint’s backlog of work.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Increment: ","nodeType":"text"},{"data":{},"marks":[],"value":"The sprint’s output is called the increment. Each increment should be of potentially shippable quality, with all coding, testing, and quality verification completed.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Retrospectives: ","nodeType":"text"},{"data":{},"marks":[],"value":"At the end of each sprint, the agile team conducts a retrospective meeting to evaluate the process and the tools, discuss what did and didn’t go well, and determine what to improve in future sprints.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"The agile methodology is well-suited for projects that require flexibility and the ability to quickly adapt to changing requirements. Because it encourages collaboration, agile is also well-suited for complex projects where many teams work together.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"italic"}],"value":"Agile methodology advantages","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Stakeholders and users can provide feedback throughout the SDLC, making it easier for developers to build software that meets their needs.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Incremental delivery helps development teams identify and fix issues early in the project before they become major problems.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Cost savings might be realized by reducing the amount of rework required to fix issues.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Retrospectives provide an opportunity for teams to continuously improve the process.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"italic"}],"value":"Agile methodology disadvantages","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Requirements must be clearly defined in the user story. If not, the project can quickly derail.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Too much user feedback might change the scope of the project, cause delays, or make it difficult to manage.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Incremental deliverables can make it difficult to determine how long it will take to finish the entire project.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Agile frameworks","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Agile methods are often called frameworks and the most common agile framework is called “scrum.” There are the three key roles on the scrum team:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"The scrum master ","nodeType":"text"},{"data":{},"marks":[],"value":"ensures that the team follows the scrum process and is continuously looking for ways that the team can improve while resolving issues that arise during the sprint.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"The product owner ","nodeType":"text"},{"data":{},"marks":[],"value":"takes responsibility for what the team builds and why they build it, along with keeping the backlog of work in priority order and up to date.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"The scrum team members ","nodeType":"text"},{"data":{},"marks":[],"value":"build the product and are responsible for engineering and quality.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"The scrum team decides how to manage its own workload for each sprint based on the backlog shown on a task board. Team members participate in a daily scrum (or daily standup) meeting where each person reports on their individual progress. At the end of the sprint, the team demonstrates their potentially shippable increment to stakeholders, conducts a retrospective, and determines actions for the next sprint.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Kanban is another agile framework. Kanban is Japanese term that means billboard or signboard. Kanban boards visualize work items as cards in different states to provides at-a-glance insight into the status of each project and make it easy to identify any bottlenecks.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"To help them work most effectively, development teams might adopt aspects of both the scrum and kanban agile frameworks.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Other popular SDLC methodologies","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"The iterative model","nodeType":"text"},{"data":{},"marks":[],"value":" emphasizes continuous feedback and incremental progress. It organizes the development process into small cycles where developers make frequent, incremental changes to continuously learn and avoid costly mistakes. The iterative model is well-suited for large projects that can be divided into smaller pieces, and for projects where the requirements are clearly defined from the start.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"The spiral model","nodeType":"text"},{"data":{},"marks":[],"value":" combines the iterative and waterfall models. It takes an evolutionary approach where developers iteratively develop, test, and refine the software in successive cycles, or spirals. Large, complex, and costly projects are well-suited for this model.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"The v-shaped model","nodeType":"text"},{"data":{},"marks":[],"value":" emphasizes testing and validation in a sequential process. This model is very useful for projects in industries like healthcare, where thorough testing is critical.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"The lean model","nodeType":"text"},{"data":{},"marks":[],"value":" focuses on increasing efficiency throughout the development process. This model takes an iterative approach and is well-suited for projects where achieving short-term goals is a priority and when there’s frequent interaction between the development team and users.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3CeDsdbGwvTxqFoGJk92ec","type":"Entry","createdAt":"2024-03-13T16:52:52.396Z","updatedAt":"2024-03-13T16:52:52.396Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-sdlc Prose - best practices","sectionId":"best-practices","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"32L1v9CYRnM01uByOHDDiz","type":"Entry","createdAt":"2024-03-13T16:52:52.431Z","updatedAt":"2024-10-09T18:29:19.042Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":25,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-sdlc Prose - best practices","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"SDLC best practices and challenges","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"The biggest challenges to a successful SDLC often stem from inadequate communication, planning, testing, or documentation. Best practices to address these issues include:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Collaboration between the development team, IT operations, the security team, and stakeholders.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Clearly defining user requirements and project deliverables, timelines, and milestones.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Detailed documentation of resources, schedules, code, and other deliverables.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Daily scrum meetings to identify and resolve issues.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Retrospectives to drive continuous improvement across the SDLC.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"SDLC security","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Due to increasing cyberattacks and security breaches, development teams are under pressure to improve ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/security/what-is-application-security/"},"content":[{"data":{},"marks":[],"value":"application security","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":". SDLC security is a set of processes that incorporate robust security measures and testing into the SDLC. Best practices support the detection and remediation of security issues early in the lifecycle—before the software is deployed to production.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2xFY2X0cdadAWz9dw9V5dy","type":"Entry","createdAt":"2024-03-13T16:52:52.451Z","updatedAt":"2024-03-13T16:52:52.451Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionCtaBanner"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-sdlc CTA Banner","ctaBanner":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"dN1AB9yKOnZw1FOJjuAoW","type":"Entry","createdAt":"2024-03-13T16:52:52.467Z","updatedAt":"2024-10-09T17:37:17.032Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentCtaBanner"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-sdlc CTA Banner","heading":"Security that empowers developers","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"To get ahead of security issues, some teams are using development platforms that build security analysis into their workflow. For example, the ","nodeType":"text"},{"data":{"uri":"https://github.com/features/security"},"content":[{"data":{},"marks":[],"value":"GitHub platform","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" scans code for security issues as it’s written in the coding phase.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"\n","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"},"align":"left","hasBorder":true,"hasBackground":true,"hasShadow":false}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"28O8deTo6Jg9Ov03AGEjLT","type":"Entry","createdAt":"2024-03-13T16:52:52.725Z","updatedAt":"2024-03-13T16:52:52.725Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-sdlc Prose - How does DevOps work with the SDLC?","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7m0JOKFMvBt2Lj9HuQQEqR","type":"Entry","createdAt":"2024-03-13T16:52:52.840Z","updatedAt":"2024-10-09T18:29:22.461Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-sdlc Prose - How does DevOps work with the SDLC?","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"How does DevOps work with the SDLC?","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"},{"data":{"uri":"https://resources.github.com/devops/"},"content":[{"data":{},"marks":[],"value":"DevOps","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" is an approach to SDLC that combines development (dev) and operations (ops) to speed the delivery of quality software. The core principles of this approach are automation, security, and ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/ci-cd/"},"content":[{"data":{},"marks":[],"value":"continuous integration and continuous delivery (CI/CD)","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":", which combines the SDLC into one integrated workflow.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"DevOps follows the lean and agile SDLC methodologies and emphasizes collaboration. Throughout the entire SDLC, developers, IT operations staff, and security teams regularly communicate and work together to ensure successful project delivery.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"},{"data":{"uri":"https://resources.github.com/devops/tools/compare/"},"content":[{"data":{},"marks":[],"value":"See a comparison of DevOps solutions","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Conclusion","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"A well-structured SDLC helps development teams deliver high-quality software faster and more efficiently. Although SDLC methods vary by organization, most development teams use SDLC to guide their projects.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"The SDLC helps development teams build software that meets user requirements and is well-tested, highly secure, and production ready. Popular tools that support the SDLC process include:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"},{"data":{"uri":"https://github.com/features/actions"},"content":[{"data":{},"marks":[],"value":"GitHub Actions","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" to automate SDLC workflows.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"},{"data":{"uri":"https://github.com/features/security"},"content":[{"data":{},"marks":[],"value":"GitHub security tools","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" to help developers ship secure applications.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"},{"data":{"uri":"https://github.com/features/copilot"},"content":[{"data":{},"marks":[],"value":"GitHub Copilot","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" to developers write code faster with AI.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"},{"data":{"uri":"https://github.com/features/code-review"},"content":[{"data":{},"marks":[],"value":"GitHub code review tools","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" to help avoid human error.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"K2rn7etWL09KH7U7pot4x","type":"Entry","createdAt":"2024-03-13T16:52:52.938Z","updatedAt":"2024-10-09T18:16:07.502Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionFAQ"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-sdlc FAQ","sectionId":"faqs","heading":"Frequently asked questions","faqBlocks":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7DKQKb2J7ohNlgVjn5WzJD","type":"Entry","createdAt":"2024-03-13T16:52:52.957Z","updatedAt":"2024-03-13T16:52:52.957Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":6,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentFAQBlock"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-sdlc FAQ","questions":[]}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3bU9IOzXSEkjLjLlhw5nAK","type":"Entry","createdAt":"2024-03-13T16:52:53.094Z","updatedAt":"2024-03-13T16:52:53.094Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":2,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionCards"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-sdlc cards","cards":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1C5kJsiIMIYVW7adbUoN2W","type":"Entry","createdAt":"2024-03-13T16:52:53.134Z","updatedAt":"2024-03-13T16:52:53.134Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"layoutComponentCards"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-sdlc cards","cards":[]}}}}]}},"seo":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4Zcv9NSuJtwWdzs6YNxDyD","type":"Entry","createdAt":"2023-09-18T11:09:39.106Z","updatedAt":"2024-05-07T16:26:56.837Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":12,"revision":4,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"seo"}},"locale":"en-US"},"fields":{"metaTitle":"Understanding the SDLC: Software Development Lifecycle Explained | GitHub Resources","metaDescription":"Learn about the SDLC and gain insights into its phases, methodologies, and best practices.","openGraphTitle":"Understanding the SDLC: Software Development Lifecycle Explained | GitHub Resources","openGraphDescription":"Learn about the SDLC and gain insights into its phases, methodologies, and best practices."}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4p3ZYL7ec9UUlJGUAzqgVD","type":"Entry","createdAt":"2024-03-13T16:27:08.878Z","updatedAt":"2024-03-13T16:29:20.901Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":9,"revision":3,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/software-development/what-is-software-architecture","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7KMZG4Qe9hZNedaAtbGTnA","type":"Entry","createdAt":"2024-03-13T16:27:09.047Z","updatedAt":"2024-03-13T16:27:09.047Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":13,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"containerLandingPage"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-architecture","sections":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1oeWCg1nhb7SNvcdRbiGqA","type":"Entry","createdAt":"2024-03-13T16:27:09.079Z","updatedAt":"2024-03-13T16:27:09.079Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":7,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionHero"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-architecture","hero":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"72alQUnpCNUglWDlW3Vo2z","type":"Entry","createdAt":"2024-03-13T16:27:09.110Z","updatedAt":"2024-10-09T16:25:44.192Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":18,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentHero"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-architecture Hero","heading":"What is software architecture?","text":"Learn how software architecture helps developers build scalable, efficient systems using best practices, key components, and common styles and patterns.\n\n","align":"Left"}},"backgroundImage":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5uny5oZv6MG9lNCZyzaASz","type":"Asset","createdAt":"2022-09-26T12:36:20.198Z","updatedAt":"2024-02-20T19:05:53.407Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":12,"revision":3,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Light 1","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/5uny5oZv6MG9lNCZyzaASz/7ab3c23afb9a20af01a5b795c11d29e3/Productivity-LightMode-1.webp","details":{"size":262930,"image":{"width":2400,"height":1260}},"fileName":"Productivity-LightMode-1.webp","contentType":"image/webp"}}},"theme":"light"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5IuIMLutlL8qbo28f3fAFG","type":"Entry","createdAt":"2024-03-13T16:27:09.128Z","updatedAt":"2024-03-13T16:27:09.128Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":7,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentAnchorNav"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-architecture Anchor nav","links":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"13VjH3zCjCrSqNl1aOYuYg","type":"Entry","createdAt":"2024-03-13T16:27:09.199Z","updatedAt":"2024-10-09T18:20:03.374Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Benefits","text":"Benefits","href":"benefits"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1rXoNqZzTnoYWcvDIN0l1h","type":"Entry","createdAt":"2024-03-13T16:27:09.216Z","updatedAt":"2024-10-09T18:20:05.992Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Patterns","text":"Patterns","href":"patterns"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"SdjmyHu23pB1H10VdxkJH","type":"Entry","createdAt":"2023-10-18T13:15:01.200Z","updatedAt":"2024-10-09T18:22:41.398Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":29,"revision":13,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Best practices ","text":"Best practices","href":"best-practices"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"30WL8NGzdrA7KATIF7S3II","type":"Entry","createdAt":"2024-03-13T16:23:11.261Z","updatedAt":"2024-10-09T18:19:58.040Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Tools","text":"Tools","href":"tools"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6JBpSa6kNeCj0NEnMK6QIU","type":"Entry","createdAt":"2023-03-31T02:17:35.715Z","updatedAt":"2024-10-09T18:22:09.372Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":12,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"FAQs","text":"FAQs","href":"faqs"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3zfT72prthgJ5taF6oreIE","type":"Entry","createdAt":"2024-03-13T16:27:09.233Z","updatedAt":"2024-03-13T16:27:09.233Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-architecture Prose - Intro","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1qHouIfqwUBtN0shbGLS0s","type":"Entry","createdAt":"2024-03-13T16:27:09.251Z","updatedAt":"2024-10-09T16:02:36.767Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":17,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-architecture Prose - Intro","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"It seems simple: software should be intuitive, easy to use, and designed to help you meet your technical and business goals. But as soon as you dig deeper on the backend, you’ll likely uncover a complex web of components and processes, all working together to keep things running. To navigate the challenges of software design—and to reap the most benefits—it’s important to plan ahead.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"That’s where software architecture comes in. ","nodeType":"text"},{"data":{},"marks":[{"type":"bold"}],"value":"Software architecture","nodeType":"text"},{"data":{},"marks":[],"value":" refers to a set of fundamental structures that developers use as an overarching visual guide when planning for and building out software solutions. These frameworks also ensure that a project meets its technical and business needs by planning for important functionality such as scalability, reusability, and security. These plans are then broken down into individual components and code during the design phase.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Let’s explore an overview of software architecture—and software architecture design—and its many strengths and applications.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Key components of software architecture","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"At its core, software architecture is made up of interchangeable building blocks called ","nodeType":"text"},{"data":{},"marks":[{"type":"bold"}],"value":"software components.","nodeType":"text"},{"data":{},"marks":[],"value":" Software components come in the form of packages, apps, or services, and they feature data that can be plugged into a larger system framework.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"These components can also be connected to each other through their respective ","nodeType":"text"},{"data":{},"marks":[{"type":"bold"}],"value":"programming","nodeType":"text"},{"data":{},"marks":[],"value":" ","nodeType":"text"},{"data":{},"marks":[{"type":"bold"}],"value":"interfaces","nodeType":"text"},{"data":{},"marks":[],"value":". By delivering data from one interface to another, components communicate with each other to form a relationship, a system, or a grouping of systems.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"An ","nodeType":"text"},{"data":{},"marks":[{"type":"bold"}],"value":"architecture style","nodeType":"text"},{"data":{},"marks":[],"value":" helps define how these systems are patterned, organized, and used in tandem with each other, forming a cohesive design system that can then be referred back to throughout the entire ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/software-development/what-is-sdlc/"},"content":[{"data":{},"marks":[],"value":"software development lifecycle (SDLC)","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":". And by templatizing these styles, they can be reused and reapplied to a variety of apps and solutions.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1BAa2D0uoaG6IIxUMHw1he","type":"Entry","createdAt":"2024-03-13T16:27:09.315Z","updatedAt":"2024-03-13T16:27:09.315Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-architecture Prose - benefits","sectionId":"benefits","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6SfZ4smowygEiC5RgQTHc9","type":"Entry","createdAt":"2024-03-13T16:27:09.400Z","updatedAt":"2024-10-09T18:28:17.874Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-architecture Prose - benefits","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Benefits of good software architecture","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Good software architecture design can help your organization:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Easily scale up or down through agile, iterative updates.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Maintain code quality, reduce errors, and find bugs.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Modernize legacy systems, reduce audit and IT costs, and build innovative new customer experiences.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Streamline development through reusability and automation, in turn saving time and boosting productivity.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Reduce costs, speed up time to market, and boost customer satisfaction.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Optimize the overall performance of your software.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Challenges of software architecture","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"In contrast, poorly designed software architecture may:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Make it difficult to effectively manage interactions between components.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Leave your software vulnerable and open to security risks.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Increase the cost of initial investment.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Result in overly complex, overly engineered systems.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Be too inflexible to adapt to changing scenarios, technology, and requirements.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Contribute to performance bottlenecks.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Create communication issues between architects, developers, and users.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Result in outdated, difficult-to-maintain architecture, contributing to a lack of integration capabilities.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Make it difficult to scale up and down without major architectural changes.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Require the dedicated skills of an entire software team to fix or maintain it.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4qSbiiQtr8pISILDeUSlJ3","type":"Entry","createdAt":"2024-03-13T16:27:09.420Z","updatedAt":"2024-03-13T16:27:09.420Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-architecture Prose - patterns","sectionId":"patterns","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6zBsfQAIKC4kQEOUxCmJSa","type":"Entry","createdAt":"2024-03-13T16:27:09.439Z","updatedAt":"2024-10-09T18:28:21.468Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":26,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-architecture Prose - patterns","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Common architectural patterns","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Monolithic","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"A monolithic architecture is a traditional type of architectural style where a single container houses every component, service, and function that make up an application, resulting in lower costs, higher performance, and a simpler design. In the container, all the components are merged, which means they share the same codebase and are managed, processed, and deployed in a single, large file.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Monolithic apps must be deployed in their entirety as a single unit, which means that updating or adding features to the codebase requires redeploying the entire app. This poses a challenge in terms of scalability. As a result of that, a monolithic architectural style is best suited for simpler, more general-purpose apps.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Microservices","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"A microservices architecture takes the monolithic structure and breaks it down into containerized collections of small, loosely bundled distributed services. Each service is autonomous, has its own separate codebase or external state, and has its own responsibilities within the context of the system, though they can also communicate with other services. By breaking the app down into smaller parts, developers can better update, test, and manage code.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Microservices are considered foundational to modern app development and can be found in many major service-oriented apps, including streaming services and rideshare services.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Client-server","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"In a client-server pattern, the client, also known as the host, sends a request for data, apps, specific services, or other resources to a remote computer, or a server. The server then accepts the request, processes it, and delivers the resources back to the client.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"This type of architectural style is best suited for email services, websites, file-sharing apps, or any other type of service that benefits from a call-and-response model.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Layered","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Also known as N-tier, a layered pattern divides an app into layers that perform specific functions. These layers are only able to communicate with the layers that sit directly below them. For example, a typical web application may be comprised of four layers: user interface or presentation, business, application, and database. In this situation, the presentation layer can only interact with the business layer, but not vice versa.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Layered architecture simplifies development, testing, and maintenance as each individual layer can be updated or modified without affecting the layers beneath or above. It is the most widely used pattern among enterprise apps, especially among major ecommerce apps.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Event-driven","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"An event-driven architecture is modeled around the recording, dissemination, and processing of events—actions or triggers that a user takes in an app that can cause a change in state, which the system recognizes in near real time—by communicating with decoupled services. The framework consists of event producers, which capture the event, as well as event routers, which transmit the events to consumers.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Event-driven architecture is ideal for ecommerce websites with frequent user interaction, such as when a user fills a signup form or adds an item to their cart.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"\n","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2T5tPkjRb61RAbqrAOKcdH","type":"Entry","createdAt":"2024-03-13T16:16:37.625Z","updatedAt":"2024-03-22T14:04:08.326Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionRivers"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","rivers":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5hI6zGmuVkiZ0HSZjw5ElU","type":"Entry","createdAt":"2024-03-13T16:16:37.711Z","updatedAt":"2024-10-09T15:26:03.504Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":28,"revision":9,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentRiver"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","heading":"GitHub’s DevOps Solution","text":"Learn why 90% of the Fortune 100 use GitHub to build, scale, and deliver secure software.","media":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7Rb5ZoUDOX41PpqAibLo9","type":"Asset","createdAt":"2022-11-07T10:15:15.233Z","updatedAt":"2024-03-22T14:04:07.436Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":16,"revision":5,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Dark 1","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/7Rb5ZoUDOX41PpqAibLo9/344247765e0571d768e511fe686cea98/Productivity-DarkMode-1.webp","details":{"size":407100,"image":{"width":2400,"height":1260}},"fileName":"Productivity-DarkMode-1.webp","contentType":"image/webp"}}},"align":"end","imageTextRatio":"50:50"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2IIQBQRIHnxdrQ2Y1MQPe4","type":"Entry","createdAt":"2024-03-13T16:27:09.505Z","updatedAt":"2024-03-13T16:27:09.505Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-architecture Prose - best practices","sectionId":"best-practices","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"j7oy3RtBnm0I6ayQg4zu9","type":"Entry","createdAt":"2024-03-13T16:27:09.522Z","updatedAt":"2024-10-09T18:28:24.842Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":33,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-architecture Prose - best practices","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Design principles and best practices","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Now that you’re acquainted with some of the most widely used software architecture patterns, you’ll want to consider the following design principles and best practices to help you apply them effectively:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"SOLID principles","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Founded by software engineer Robert C. Martin, SOLID is an acronym that refers to a set of five object-oriented design (OOD) principles to follow when developing software. By adopting SOLID principles, developers can ensure that their project remains scalable, iterative, extensible, and bug-free.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"SOLID stands for:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Single-responsibility","nodeType":"text"},{"data":{},"marks":[],"value":": The single-responsibility principle states that a class—a template for grouping objects together—should only have one purpose or responsibility, and all its properties should serve that purpose.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Open-closed: ","nodeType":"text"},{"data":{},"marks":[],"value":"According to this principle, software objects, classes, or modules should be open for extension but closed for modification. An object can be extended without ever actually touching a piece of code.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Liskov substitution","nodeType":"text"},{"data":{},"marks":[],"value":": Developed by computer scientist Barbara Liskov, the Liskov substitution principle states that interfaces should be substitutable, and that subclasses should be replaceable for their main classes.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Interface segregation: ","nodeType":"text"},{"data":{},"marks":[],"value":"This principle states that interfaces should be broken down into smaller, more autonomous parts for the purpose of minimizing code errors and repetition.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Dependency inversion: ","nodeType":"text"},{"data":{},"marks":[],"value":"According to the dependency inversion principle, low-level modules can easily get swapped out for other low-level modules without high-level modules being affected.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Separation of concerns","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"The separation of concerns principle states that different parts of software should address different concerns. For instance, an app featuring a layered architecture is composed of four different layers—presentation, business, application, and data—with each layer fulfilling a different function for the software.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Modularity and encapsulation","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Encapsulation is a principle that states that components should manage their own behaviors and states, emphasizing easy bundling and loose coupling. Through encapsulation, different parts of software are self-contained and insulated from other parts of the app, allowing each component to operate autonomously. Encapsulation establishes modularity in app design, since objects and functions can be easily replaced with other modules—so long as they share the same interface.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Design patterns","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Much like software architecture patterns, design patterns are reusable frameworks that allow you to build software faster and more efficiently through the templatization of code. While software architecture plans for the overarching structure of the solution, software design breaks the app down to the component level. Some popular design patterns include the singleton, the adaptor, and the proxy, though there are dozens to choose from.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"K4UalbLuH9z4FRaIMkfy7","type":"Entry","createdAt":"2024-03-13T16:27:09.541Z","updatedAt":"2024-03-13T16:27:09.541Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-architecture Prose - tools","sectionId":"tools","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2edgAbgCXMwr1VrjCtSISa","type":"Entry","createdAt":"2024-03-13T16:27:09.610Z","updatedAt":"2024-10-09T18:28:28.312Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":33,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-architecture Prose - tools","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Tools and technologies for software architecture","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Unified modeling language (UML)","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"The unified modeling language (UML) is a standardized visual modeling language for software design and development. As a visual language, UML uses diagrams rather than code to map out the structure of a software system, how it should behave, and how each of the components should interact with each other.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Architectural modeling tools","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Architecture modeling tools help architects visualize, define, and document software architecture through graphical code rendering, or models. Models provide architects with a clear module-by-module breakdown of an app’s functionality. With the help of modeling tools, it’s easy to create and maintain models throughout the software development lifecycle.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Version control and collaboration tools","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Version control systems and collaboration tools provide users with the ability to share code, track changes, manage conflicts, and work with teammates. This, in turn, fosters a culture that emphasizes ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/innersource/best-practices-collaborative-software-dev/"},"content":[{"data":{},"marks":[],"value":"collaborative software development","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":". Version control tools allow for a more efficient workflow, higher quality code, and greater productivity overall.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Conclusion","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"A solid foundation with clearly defined goals is pivotal to the success of every development project. To navigate the complexities of software, it’s important to have a well-organized blueprint as your guide—which is why software architecture and design should always be a top priority for every team and organization.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5xKCK7oC4yuX6yKoKtH9Hu","type":"Entry","createdAt":"2024-03-13T16:27:09.627Z","updatedAt":"2024-03-13T16:27:09.627Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionCtaBanner"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-architecture CTA Banner","ctaBanner":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"31EPKfHR2AxeWbGEjScLMF","type":"Entry","createdAt":"2024-03-13T16:27:09.642Z","updatedAt":"2024-10-09T17:37:27.008Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":19,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentCtaBanner"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-architecture CTA Banner","heading":"Kickstart development with GitHub Codespaces","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Start exploring architectural styles with GitHub Codespaces, a fully configured, customizable online dev environment that lets you code in the cloud.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"\n","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"},"align":"center","hasBorder":true,"hasBackground":true,"hasShadow":false}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"682MVxrcN6V6Eyw51W0jTK","type":"Entry","createdAt":"2024-03-13T16:27:09.672Z","updatedAt":"2024-10-09T18:16:20.297Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionFAQ"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-architecture FAQ","sectionId":"faqs","heading":"Frequently asked questions","faqBlocks":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5CllKuMW9DmacWYISV12ow","type":"Entry","createdAt":"2024-03-13T16:27:09.710Z","updatedAt":"2024-03-13T16:27:09.710Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":7,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentFAQBlock"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-architecture FAQ","questions":[]}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6aPugCevmrf91oHM6ed8qu","type":"Entry","createdAt":"2024-03-13T16:27:10.245Z","updatedAt":"2024-03-13T16:27:10.245Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":2,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionCards"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-architecture Cards","cards":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"Sv9Pr1dNiuNiQ6vDy5TzJ","type":"Entry","createdAt":"2024-03-13T16:27:10.300Z","updatedAt":"2024-03-13T16:27:10.300Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"layoutComponentCards"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-architecture Cards","cards":[]}}}}]}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4gRJSg8ppgnqUMOyUhqEY4","type":"Entry","createdAt":"2024-03-13T16:34:53.623Z","updatedAt":"2024-03-13T16:38:35.756Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":13,"revision":5,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/software-development/what-is-software-development","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5nuvFza59AT0NdXbnnDGXm","type":"Entry","createdAt":"2024-03-13T16:34:53.717Z","updatedAt":"2024-03-13T16:38:13.910Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":15,"revision":3,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"containerLandingPage"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-development/","sections":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1TS1XWe5ZlFeyJbkrviTLy","type":"Entry","createdAt":"2024-03-13T16:34:53.739Z","updatedAt":"2024-03-13T16:34:53.739Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionHero"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-development/ Hero","hero":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6S9opjQQAk7rPv21V9MaXf","type":"Entry","createdAt":"2024-03-13T16:34:53.767Z","updatedAt":"2024-10-09T16:25:33.442Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":18,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentHero"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-development/ Hero","heading":"What is software development?","text":"Explore the world of software development in this comprehensive guide for beginners. Discover what software development is and why it matters, delve into key concepts, uncover the crucial steps in the development process, and learn how software shapes industries and technologies.\n\n","align":"Left"}},"backgroundImage":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6z2nwPNKt4d23LDLfBNWES","type":"Asset","createdAt":"2022-08-29T10:17:20.095Z","updatedAt":"2024-02-20T19:05:53.410Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":13,"revision":3,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Dark 2","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp","details":{"size":363582,"image":{"width":2400,"height":1260}},"fileName":"Productivity-DarkMode-2.webp","contentType":"image/webp"}}},"theme":"dark"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"651NL5y9SSURGvxcYdPSh5","type":"Entry","createdAt":"2024-03-13T16:34:53.840Z","updatedAt":"2024-03-13T16:34:53.840Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentAnchorNav"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-development/ Anchor nav","links":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3LJEtqft0JsL4PdzAYhW6H","type":"Entry","createdAt":"2023-12-15T20:13:46.061Z","updatedAt":"2024-10-09T18:22:54.694Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Overview","text":"Overview","href":"overview"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5FQoOIqgmNXUYyV8POO8iI","type":"Entry","createdAt":"2024-03-13T16:34:53.867Z","updatedAt":"2024-10-09T18:20:13.946Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":20,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Process","text":"Process","href":"process"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"30WL8NGzdrA7KATIF7S3II","type":"Entry","createdAt":"2024-03-13T16:23:11.261Z","updatedAt":"2024-10-09T18:19:58.040Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Tools","text":"Tools","href":"tools"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"rBsqyiOgfg3x3h6DAL6HY","type":"Entry","createdAt":"2023-07-25T15:34:44.474Z","updatedAt":"2024-10-09T18:21:55.991Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":25,"revision":12,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Security","text":"Security","href":"security"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6JBpSa6kNeCj0NEnMK6QIU","type":"Entry","createdAt":"2023-03-31T02:17:35.715Z","updatedAt":"2024-10-09T18:22:09.372Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":12,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"FAQs","text":"FAQs","href":"faqs"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3a8wwmCHMuhdGhqQp2P6tl","type":"Entry","createdAt":"2024-03-13T16:34:53.925Z","updatedAt":"2024-03-13T16:34:53.925Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":2,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-development/ Prose - Overview","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3mqXGuRYodhhmVn662doQ4","type":"Entry","createdAt":"2024-03-13T16:34:53.949Z","updatedAt":"2024-10-09T18:28:51.924Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-development/ Prose - Overview","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Understanding software development can be a game changer for business owners in virtually every industry. Knowing more empowers leaders to use technology effectively, make informed decisions about software investments, and communicate more efficiently with development teams. Let's jump to the basics.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Developing software is a systematic process of designing, coding, testing, and maintaining software applications and systems. It is the driving force behind the digital age, shaping the technological landscape we navigate daily.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"The primary purpose of software development is to create efficient, functional, and user-friendly software solutions to address specific needs or problems. Whether it's a mobile app, a website, an operating system, or an intricate business application, software development plays a pivotal role in nearly every aspect of modern society.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"When creating software, developers use ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/devops/"},"content":[{"data":{},"marks":[],"value":"DevOps","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":", a set of practices and principles that aim to streamline and automate the software development and IT operations processes. It fosters collaboration between development (Dev) and operations (Ops) teams to enhance the efficiency and reliability of software delivery. DevOps encourages the use of automation, continuous integration (CI), continuous delivery (CD), and infrastructure as code to enable faster development cycles, quicker problem resolution, and a more agile approach to developing software. By breaking down silos, DevOps promotes a culture of continuous improvement and collaboration--- ultimately resulting in more reliable and responsive software systems. It's important to ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/devops/tools/compare/"},"content":[{"data":{},"marks":[],"value":"compare DevOps solutions","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" to find what works best.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Key software development concepts","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Software engineering is the systematic and disciplined approach to designing software, developing it, and maintaining its systems. It goes beyond coding and focuses on the entire software development lifecycle. Software engineers employ engineering principles and best practices to create reliable, efficient, and scalable software solutions. They analyze requirements, design architectures, write code, perform testing, and ensure ongoing maintenance of software. Collaboration, documentation, and adherence to industry standards help engineers deliver high quality software that meets user needs, while also managing constraints like time and resources.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Here's a breakdown of key concepts software engineers use every day:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"It all starts with ","nodeType":"text"},{"data":{},"marks":[{"type":"bold"}],"value":"coding,","nodeType":"text"},{"data":{},"marks":[],"value":" which is the act of writing instructions in a language that a computer can understand. These instructions are called programs or code, and they're written in various ","nodeType":"text"},{"data":{},"marks":[{"type":"bold"}],"value":"programming languages","nodeType":"text"},{"data":{},"marks":[],"value":". Each language has its syntax and purpose, making it suitable for distinct tasks. Some popular languages include Python, Java, C++, and JavaScript.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Algorithms and data structures","nodeType":"text"},{"data":{},"marks":[],"value":" are step-by-step procedures or sets of rules designed to solve specific problems or perform specific tasks. They serve as the core logic behind software applications.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Version control","nodeType":"text"},{"data":{},"marks":[],"value":" is the system that helps developers track changes to their code base over time. It allows multiple developers to collaborate without overwriting each other's work. Git, a widely used version control system, enables teams to manage their code repositories efficiently.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Testing","nodeType":"text"},{"data":{},"marks":[],"value":" involves evaluating the software to identify and fix issues or bugs. Developers use various testing techniques, including unit testing, integration testing, and user acceptance testing. ","nodeType":"text"},{"data":{},"marks":[{"type":"bold"}],"value":"Debugging","nodeType":"text"},{"data":{},"marks":[],"value":" is the process of finding and resolving errors in the code to ensure the software functions correctly.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Databases","nodeType":"text"},{"data":{},"marks":[],"value":" manage and store data in software applications. They come in various forms, such as relational databases (e.g., PostgreSQL, MySQL), NoSQL databases (e.g., MongoDB), and in-memory databases. Selecting the right database type and designing efficient database structures are critical aspects of software development.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Security","nodeType":"text"},{"data":{},"marks":[],"value":" protects user data and prevents unauthorized access. Developers must follow best practices for securing applications, including encryption, access controls, and vulnerability assessments.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Software architecture","nodeType":"text"},{"data":{},"marks":[],"value":" defines the structure and organization of a software system. It involves deciding how components will interact, ensuring scalability, and planning for future development.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Documentation","nodeType":"text"},{"data":{},"marks":[],"value":", including code comments, user manuals, and technical documentation, is crucial for understanding and maintaining software. Documentation also provides insights into the software's functionality and usage and is essential for providing clarity, context, and guidance to developers and stakeholders.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6gAENH29UUPa2XaHvWb3y1","type":"Entry","createdAt":"2024-03-13T16:34:54.036Z","updatedAt":"2024-03-13T16:34:54.036Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-development/ Prose - process","sectionId":"process","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4nF05lHuePtb11yMEkY5tk","type":"Entry","createdAt":"2024-03-13T16:34:54.053Z","updatedAt":"2024-10-09T18:28:55.674Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":25,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-development/ Prose - process","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Software development process steps","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"The ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/software-development/what-is-sdlc/"},"content":[{"data":{},"marks":[],"value":"software development lifecycle (SDLC)","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" is a well-organized framework that steers the software development process from ideation to execution. It enables teams to work together on a single project through a structured and methodical approach. The SDLC guarantees that software projects are deployed in a timely and cost-effective manner, resulting in high-quality outcomes. Some common SDLC models include Waterfall, Agile, and DevOps.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Here are the basic steps engineers use to develop software.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Requirements gathering: ","nodeType":"text"},{"data":{},"marks":[],"value":"This phase involves understanding the client's needs and defining the software's features and functionalities. Detailed requirements are essential for a successful project.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Design: ","nodeType":"text"},{"data":{},"marks":[],"value":"During the design phase, architects and developers create a blueprint of the software, defining its structure, user interface, and overall functionality. A well thought out design is the foundation of a robust application.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Coding: ","nodeType":"text"},{"data":{},"marks":[],"value":"In the coding phase, developers write the actual code based on the design and requirements. It's the hands-on part of software development where the abstract becomes tangible.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Testing: ","nodeType":"text"},{"data":{},"marks":[],"value":"This is a continuous process that starts during development and continues post implementation. It assures that the software functions as intended and is free from errors or defects.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Deployment: ","nodeType":"text"},{"data":{},"marks":[],"value":"This involves making the software available to users. This phase may include setting up servers, configuring databases, and ensuring the application runs smoothly in a production environment.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Maintenance and support: ","nodeType":"text"},{"data":{},"marks":[],"value":"After deployment, ongoing maintenance and support are necessary to fix issues, provide updates, and address user feedback. Software is a living entity that requires continuous care.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Documentation: ","nodeType":"text"},{"data":{},"marks":[],"value":"Throughout the software development process, documentation is crucial. It helps developers, testers, and users understand the software, troubleshoot problems, and make necessary improvements.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Quality assurance (QA): ","nodeType":"text"},{"data":{},"marks":[],"value":"QA practices include a solid code review that ensures the software meets the desired standards and performs reliably. It involves gathering feedback and various testing methodologies and processes to maintain software quality.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6Chn9ywZ24XOl55nJ1IfLa","type":"Entry","createdAt":"2024-03-13T16:34:54.125Z","updatedAt":"2024-03-13T16:34:54.125Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":2,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-development/ Prose - tools","sectionId":"tools","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2yXO5J9gtpHK8OUdHxjabV","type":"Entry","createdAt":"2024-03-13T16:34:54.143Z","updatedAt":"2024-10-09T18:28:59.667Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":23,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-development/ Prose - tools","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Tools and technologies","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"In the world of software development, a multitude of tools and technologies are at your disposal. Here are some of the common ones:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Integrated development environment (IDE):","nodeType":"text"},{"data":{},"marks":[],"value":" IDEs like Visual Studio Code, IntelliJ IDEA, and Eclipse provide a unified environment for coding, debugging, and testing.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Programming languages:","nodeType":"text"},{"data":{},"marks":[],"value":" Popular programming languages include Python, Java, JavaScript, Ruby, and C++.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Version control systems:","nodeType":"text"},{"data":{},"marks":[],"value":" Git is the most widely used version control system, with platforms like GitHub providing hosting and collaboration features.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Containerization and orchestration:","nodeType":"text"},{"data":{},"marks":[],"value":" Docker and Kubernetes are key factors in containerizing applications and managing them at scale.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Testing frameworks:","nodeType":"text"},{"data":{},"marks":[],"value":" Testing frameworks like JUnit and Selenium help automate testing processes.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Database management systems (DBMS):","nodeType":"text"},{"data":{},"marks":[],"value":" MySQL, PostgreSQL, MongoDB, and Oracle are examples of DBMS used for data storage and retrieval.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Key traits of effective software development","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Effective software development involves the integration of various technologies and practices, including:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"AI and machine learning:","nodeType":"text"},{"data":{},"marks":[],"value":" AI and machine learning are quickly becoming a pivotal feature for coding tools. ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/artificial-intelligence/what-is-ai-code-generation/"},"content":[{"data":{},"marks":[],"value":"AI code generation","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" empowers developers to create predictive models, automate repetitive tasks, and improve user experiences through personalized recommendations. Incorporating ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/artificial-intelligence/ai-coding-tools/"},"content":[{"data":{},"marks":[],"value":"AI coding tools","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" and machine learning into software development is not merely a trend, but a transformative force that enhances the capabilities of software developers as they create applications.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Cloud computing:","nodeType":"text"},{"data":{},"marks":[],"value":" Cloud computing allows developers to access scalable and cost-effective computing resources on demand. It enables the rapid deployment of applications, reduces infrastructure management overhead, and fosters global accessibility. Using cloud platforms such as Azure, software developers can focus on coding and innovation while relying on robust infrastructure and services to support their applications' growth and performance.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Continuous integration and continuous delivery (CI/CD):","nodeType":"text"},{"data":{},"marks":[],"value":" ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/ci-cd/"},"content":[{"data":{},"marks":[],"value":"CI/CD","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" streamlines the process of building, testing and deploying software. CI involves automatically integrating code changes from multiple developers into a shared repository, ensuring that the code base is continuously tested for issues and conflicts. CD extends this process by automating software delivery to production or staging environments, allowing for rapid and reliable release cycles, reducing manual intervention, and enhancing the overall quality and speed of software development and deployment.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Microservices:","nodeType":"text"},{"data":{},"marks":[],"value":" Microservices is an architectural approach in software development that involves breaking down complex applications into small, independent services that communicate with each other through APIs.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2T5tPkjRb61RAbqrAOKcdH","type":"Entry","createdAt":"2024-03-13T16:16:37.625Z","updatedAt":"2024-03-22T14:04:08.326Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionRivers"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","rivers":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5hI6zGmuVkiZ0HSZjw5ElU","type":"Entry","createdAt":"2024-03-13T16:16:37.711Z","updatedAt":"2024-10-09T15:26:03.504Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":28,"revision":9,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentRiver"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","heading":"GitHub’s DevOps Solution","text":"Learn why 90% of the Fortune 100 use GitHub to build, scale, and deliver secure software.","media":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7Rb5ZoUDOX41PpqAibLo9","type":"Asset","createdAt":"2022-11-07T10:15:15.233Z","updatedAt":"2024-03-22T14:04:07.436Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":16,"revision":5,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Dark 1","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/7Rb5ZoUDOX41PpqAibLo9/344247765e0571d768e511fe686cea98/Productivity-DarkMode-1.webp","details":{"size":407100,"image":{"width":2400,"height":1260}},"fileName":"Productivity-DarkMode-1.webp","contentType":"image/webp"}}},"align":"end","imageTextRatio":"50:50"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6R0S5ikmwlNLBIU6FFKes1","type":"Entry","createdAt":"2024-03-13T16:34:54.161Z","updatedAt":"2024-03-13T16:34:54.161Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":2,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-development/ Prose - security","sectionId":"security","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6t6G6x3OypD4oR1YM9fRkl","type":"Entry","createdAt":"2024-03-13T16:34:54.178Z","updatedAt":"2024-10-09T18:29:03.522Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":24,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-development/ Prose - security","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"The importance of security in software development","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Security in software development is paramount. Failing to establish ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/security/what-is-application-security/"},"content":[{"data":{},"marks":[],"value":"application security","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" can lead to data breaches, financial losses, and reputational damage. The consequences of security breaches can be severe, affecting not only your organization but also your users.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"To ensure security throughout the software development process, consider the following:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Secure coding practices: ","nodeType":"text"},{"data":{},"marks":[],"value":"Developers should follow best practices to write secure code, including input validation, access control, and data encryption.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Regular security audits: ","nodeType":"text"},{"data":{},"marks":[],"value":"Conduct regular security audits and vulnerability assessments to identify and remediate potential threats.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Authentication and authorization: ","nodeType":"text"},{"data":{},"marks":[],"value":"Implement robust authentication and authorization mechanisms to control access to sensitive data and features.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Security testing: ","nodeType":"text"},{"data":{},"marks":[],"value":"Perform thorough security testing to uncover vulnerabilities and weaknesses in your software.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Security training: ","nodeType":"text"},{"data":{},"marks":[],"value":"Provide security training to your development team to raise awareness and improve overall security practices.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"How software development changes the world","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"The impact of software development extends far beyond the realm of technology companies. It touches every aspect of our lives, from healthcare and finance to entertainment and transportation. Here are some key points highlighting its importance---and how it's changing the world.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Economic growth:","nodeType":"text"},{"data":{},"marks":[],"value":" Software development drives economic growth by creating jobs, fostering innovation, and enabling new business models.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Improved efficiency:","nodeType":"text"},{"data":{},"marks":[],"value":" Software solutions streamline processes, reducing manual labor and increasing efficiency across industries.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Enhanced communication:","nodeType":"text"},{"data":{},"marks":[],"value":" Software tools and platforms enable global communication and collaboration, connecting people and businesses worldwide.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Innovation:","nodeType":"text"},{"data":{},"marks":[],"value":" Software development is at the forefront of innovation, leading to breakthroughs in fields like AI, renewable energy, and healthcare.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Accessibility:","nodeType":"text"},{"data":{},"marks":[],"value":" Software development is pivotal in advancing accessibility by creating digital solutions that meet diverse needs and enable equal access to services and information.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7BRsOeaGtKkEr4TFcRkE2z","type":"Entry","createdAt":"2024-03-13T16:34:54.232Z","updatedAt":"2024-03-13T16:34:54.232Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionCtaBanner"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-development/ CTA Banner","ctaBanner":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"62CRrnMHTP1DhhNWWG7W3z","type":"Entry","createdAt":"2024-03-13T16:34:54.330Z","updatedAt":"2024-10-09T17:37:22.251Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentCtaBanner"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-development/ CTA Banner","heading":"GitHub Enterprise helps developers do their best work","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Empower your development teams with a platform designed to improve the entire software development lifecycle. Explore how GitHub Enterprise can help your developers code faster and reduce onboarding time.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"\n","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"},"align":"center","hasBorder":true,"hasBackground":true,"hasShadow":false}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4EQM3Q5h7BAlLIpktNE75g","type":"Entry","createdAt":"2024-03-13T16:34:54.442Z","updatedAt":"2024-10-09T18:17:40.314Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":23,"revision":11,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionFAQ"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-development/ FAQ","sectionId":"faqs","heading":"Frequently asked questions","faqBlocks":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3ci3p7UJmtaGRY5qOCpwBx","type":"Entry","createdAt":"2024-03-13T16:34:54.626Z","updatedAt":"2024-03-13T16:34:54.626Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":6,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentFAQBlock"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-development/ FAQ","questions":[]}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4YjT0M99jnayah1HIQDMQT","type":"Entry","createdAt":"2024-03-13T16:37:17.212Z","updatedAt":"2024-03-13T16:37:17.212Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":2,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionCards"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-development/ Cards","cards":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4JGwL7ouY0nzvzSwWeXx4","type":"Entry","createdAt":"2024-03-13T16:37:17.232Z","updatedAt":"2024-03-13T16:37:17.232Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"layoutComponentCards"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-development/ Cards","cards":[]}}}}]}},"seo":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5UEnfDsfVG6MUYPpZQmwBd","type":"Entry","createdAt":"2023-11-14T13:47:40.135Z","updatedAt":"2024-05-07T16:27:02.267Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":10,"revision":4,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"seo"}},"locale":"en-US"},"fields":{"metaTitle":"What is Software Development?","metaDescription":"Explore software development basics including tools, security, steps, and impact on industries.","openGraphTitle":"What is Software Development?","openGraphDescription":"Explore software development basics including tools, security, steps, and impact on industries."}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4XyrPL37smTZUNcib09lwr","type":"Entry","createdAt":"2024-03-22T14:04:07.555Z","updatedAt":"2024-03-22T14:04:14.352Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":6,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/software-development/what-is-software-testing","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1JPBz8dINmWHMQFd7RV9HQ","type":"Entry","createdAt":"2024-03-22T14:04:07.707Z","updatedAt":"2024-03-22T14:04:07.707Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":13,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"containerLandingPage"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-testing","sections":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7uQO2iKc2mhjePPEylleww","type":"Entry","createdAt":"2024-03-22T14:04:07.728Z","updatedAt":"2024-03-22T14:04:07.728Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":6,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionHero"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-testing Hero","hero":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7iuMHfNPnJW1AlhLzyoI5I","type":"Entry","createdAt":"2024-03-22T14:04:07.795Z","updatedAt":"2024-10-09T16:20:33.739Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":18,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentHero"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-testing Hero","heading":"What is software testing?","text":"Software testing is the systematic process of evaluating and verifying software applications to ensure they function correctly and meet specific requirements.","align":"Left"}},"backgroundImage":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4h4pRGrs2KDTg0fBoUPTc3","type":"Asset","createdAt":"2022-09-12T11:46:53.740Z","updatedAt":"2024-03-22T14:04:07.425Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":16,"revision":5,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Dark 3","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/4h4pRGrs2KDTg0fBoUPTc3/82068b450fb4cd43ca4b5b217d6cfe2b/Productivity-DarkMode-3.webp","details":{"size":443552,"image":{"width":2400,"height":1260}},"fileName":"Productivity-DarkMode-3.webp","contentType":"image/webp"}}},"theme":"dark"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"fcJhxeHUvOjILPKrS9rQq","type":"Entry","createdAt":"2024-03-22T14:04:07.815Z","updatedAt":"2024-03-22T14:04:07.815Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":6,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentAnchorNav"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-testing Anchor nav","links":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"EHfQIMCx2RCkoHIFfGmDh","type":"Entry","createdAt":"2024-03-13T16:16:37.008Z","updatedAt":"2024-10-09T18:20:46.714Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":11,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Types","text":"Types","href":"types"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5tMz93Abpnt5uTUWhpti2E","type":"Entry","createdAt":"2024-03-22T14:04:07.906Z","updatedAt":"2024-10-09T18:20:49.249Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":20,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Steps","text":"Steps","href":"steps"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"SdjmyHu23pB1H10VdxkJH","type":"Entry","createdAt":"2023-10-18T13:15:01.200Z","updatedAt":"2024-10-09T18:22:41.398Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":29,"revision":13,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Best practices ","text":"Best practices","href":"best-practices"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7JmWJs5E4YdqupLI8vhWhx","type":"Entry","createdAt":"2024-03-22T14:04:07.991Z","updatedAt":"2024-10-09T18:20:51.816Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Getting started","text":"Getting started","href":"getting-started"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6JBpSa6kNeCj0NEnMK6QIU","type":"Entry","createdAt":"2023-03-31T02:17:35.715Z","updatedAt":"2024-10-09T18:22:09.372Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":12,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"FAQs","text":"FAQs","href":"faqs"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"20drFHlgkp5dFGR2LDLQEw","type":"Entry","createdAt":"2024-03-22T14:04:08.031Z","updatedAt":"2024-03-22T14:04:08.031Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-testing Prose - intro","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3H0iSCuCniKhwimqYWnwdv","type":"Entry","createdAt":"2024-03-22T14:04:08.087Z","updatedAt":"2024-10-09T18:32:17.429Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":28,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-testing Prose - intro","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Software testing is the process of verifying that an application works as intended and is free of bugs and defects. Software testing also helps determine if the application addresses all of its requirements. It is an essential part of software development because it helps reduce development costs, improve application performance, and create a better user experience.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"To perform software testing, testers interact with the software manually, execute test scripts, or use automated testing tools.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Understanding software testing","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Software testing involves running the application under controlled conditions to detect errors and verify that it behaves as expected. Testing is not necessarily a separate phase in software development, but rather something that can—and should—be performed throughout the ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/software-development/what-is-sdlc/"},"content":[{"data":{},"marks":[],"value":"software development lifecycle (SDLC)","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":".","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Software testing is separate from software development. The primary goal of software development is to design, code, and create a software product that meets the specified requirements and solves a particular problem. The primary objective of software testing is to ensure the quality, reliability, and functionality of the software.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Importance of software testing","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"During ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/software-development/what-is-software-development/"},"content":[{"data":{},"marks":[],"value":"software development","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":", it can be difficult to identify bugs or determine how the numerous components of an application will work together when it is deployed. Software testing can verify that all components work seamlessly together.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Some of the benefits of software testing include:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Bug detection and prevention: ","nodeType":"text"},{"data":{},"marks":[],"value":"The sooner bugs are identified and remediated in the ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/software-engineering/what-is-software-engineering/"},"content":[{"data":{},"marks":[],"value":"software engineering","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" process, the better.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Enhanced software quality: ","nodeType":"text"},{"data":{},"marks":[],"value":"Comprehensive software testing produces a higher quality software product with fewer issues for users.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Improved user satisfaction: ","nodeType":"text"},{"data":{},"marks":[],"value":"Organizations that deliver a product that is reliable and that meets the customers' needs will achieve higher user satisfaction.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Cost savings: ","nodeType":"text"},{"data":{},"marks":[],"value":"Identifying and fixing defects during the testing phase is generally less expensive than addressing them later in the development process or after the software has been released. Early detection helps prevent issues from escalating into more complex and costly problems.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Reduced software maintenance costs: ","nodeType":"text"},{"data":{},"marks":[],"value":"Thorough testing helps ensure that software is robust and less prone to bugs and errors. This, in turn, reduces the need for ongoing maintenance and support, saving costs associated with addressing post-release issues.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Compliance with standards: ","nodeType":"text"},{"data":{},"marks":[],"value":"For industries where regulatory compliance is crucial (such as healthcare, finance, or aviation), meeting regulatory regulations and standards is crucial. Testing aids in ensuring that the software complies with industry regulations.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"\n","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2kmugsoeDwyKPcJPccDN86","type":"Entry","createdAt":"2024-03-22T14:04:08.111Z","updatedAt":"2024-03-22T14:04:08.111Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-testing Prose - types","sectionId":"types","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1skhiNdZaEovDkcxahw3kt","type":"Entry","createdAt":"2024-03-22T14:04:08.203Z","updatedAt":"2024-10-09T18:32:19.987Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":26,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-testing Prose - types","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Types of software testing","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"There are many different types of software testing, each with different objectives, strategies, and outputs.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"These types include:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Manual testing:","nodeType":"text"},{"data":{},"marks":[],"value":" Testers interact with the application manually, without scripts or tools.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Automated testing:","nodeType":"text"},{"data":{},"marks":[],"value":" Testers use scripts or tools, such as ","nodeType":"text"},{"data":{"uri":"https://github.com/features/actions"},"content":[{"data":{},"marks":[],"value":"GitHub Actions","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":", to automate parts of the testing process.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Unit testing:","nodeType":"text"},{"data":{},"marks":[],"value":" The term \"unit\" refers to the smallest testable part of an application, typically a function, method, or procedure. Unit testing therefore involves testing the individual components or units of an application in isolation to ensure they function as intended.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Integration testing:","nodeType":"text"},{"data":{},"marks":[],"value":" In a typical software development lifecycle, developers develop and test individual modules or components. An ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/enterprise/what-is-an-enterprise-application/"},"content":[{"data":{},"marks":[],"value":"enterprise application","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" might be composed of hundreds of such modules. Integration testing focuses on verifying that these different components work well together. During this phase, testers examine whether the interfaces and interactions between components behave as expected. Integration testing aims to validate that the combination of integrated components functions correctly as a whole.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Functional testing:","nodeType":"text"},{"data":{},"marks":[],"value":" This type of testing verifies whether the application functions as intended and delivers the expected output.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Non-functional testing:","nodeType":"text"},{"data":{},"marks":[],"value":" During non-functional testing, users evaluate whether the product not only meets functional requirements, but also performs well, is secure, and provides a positive user experience. These tests help identify potential issues related to performance, usability, ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/security/what-is-application-security/"},"content":[{"data":{},"marks":[],"value":"application security","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":", and other critical aspects, allowing teams to address them before the software is released.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Regression testing:","nodeType":"text"},{"data":{},"marks":[],"value":" Regression testing focuses on ensuring that updates to a codebase, such as bug fixes, enhancements, or new features, do not adversely affect the existing functionality of the software. Version control systems aid in tracing which changes introduced a bug. The goal of regression testing is to detect and prevent the introduction of new defects or unintended side effects in the software as it is updated.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"User acceptance testing (UAT):","nodeType":"text"},{"data":{},"marks":[],"value":" This is often the final phase of the software testing process and the goal is to determine if the application meets user requirements. UAT also assesses whether the application satisfies business needs and is ready for deployment to a wider audience or production environment.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Usability testing:","nodeType":"text"},{"data":{},"marks":[],"value":" This type of testing validates how well a customer can use an application to complete a task.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Stress testing:","nodeType":"text"},{"data":{},"marks":[],"value":" In stress testing, applications are subjected to extreme conditions to identify the system's breaking points, measure its response to extreme loads, and understand its behavior under stress.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Security testing:","nodeType":"text"},{"data":{},"marks":[],"value":" Security testing involves evaluating a software system's ability to protect data, maintain functionality, and prevent unauthorized access. There are different types of security testing, including ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/security/what-is-dast/"},"content":[{"data":{},"marks":[],"value":"dynamic application security testing (DAST)","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" and ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/security/application-security-testing/"},"content":[{"data":{},"marks":[],"value":"application security testing (AST)","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":".","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"The software testing types each organization chooses will depend on their ultimate goals and objectives.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"\n","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"11iRxITqcBcgwHV7xL9bNa","type":"Entry","createdAt":"2024-03-22T14:04:08.227Z","updatedAt":"2024-03-22T14:04:08.227Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-testing Prose - steps","sectionId":"steps","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"61yPann4PxCDlkEDn9kmb2","type":"Entry","createdAt":"2024-03-22T14:04:08.287Z","updatedAt":"2024-10-09T18:32:22.741Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":32,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-testing Prose - steps","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Steps in the software testing life cycle","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"The software testing life cycle is a systematic process to verify and validate that a software application or system meets specified requirements and functions correctly. The steps can vary depending on the specific testing approach or methodology being used. Here are some common steps that may be followed in the software testing process:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Requirements analysis: ","nodeType":"text"},{"data":{},"marks":[],"value":"To effectively test software, it's important to analyze and understand the software requirements. Review code documentation, user stories, and other specifications to gain this understanding and determine what needs to be tested.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Test planning: ","nodeType":"text"},{"data":{},"marks":[],"value":"Develop a test plan that outlines the testing strategy, scope, objectives, resources, schedule, and deliverables. This test plan serves as a guide for the testing process.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Test design: ","nodeType":"text"},{"data":{},"marks":[],"value":"Design test cases based on the requirements. Test cases describe the specific conditions, inputs, and expected outcomes for testing different aspects of the software.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Test environment setup: ","nodeType":"text"},{"data":{},"marks":[],"value":"Set up the testing environment, which includes configuring hardware, software, networks, and any other components necessary for testing. Ensure that the environment mirrors the production environment as closely as possible.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Test data preparation: ","nodeType":"text"},{"data":{},"marks":[],"value":"Prepare test data that is relevant to the test cases. This may involve creating datasets, databases, or scenarios to simulate real-world conditions.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Test execution: ","nodeType":"text"},{"data":{},"marks":[],"value":"Execute the test cases in the test environment. This involves running the software with predefined inputs and comparing the actual results with expected results.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Defect reporting: ","nodeType":"text"},{"data":{},"marks":[],"value":"If bugs or defects are identified during test execution, document them in a defect tracking system. Defect reports typically include information about the defect, steps to reproduce it, and its severity.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Regression testing: ","nodeType":"text"},{"data":{},"marks":[],"value":"Perform regression testing to ensure that new changes or fixes do not introduce new defects or negatively impact existing functionality. This is crucial to maintain software stability as the codebase evolves.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Test reporting: ","nodeType":"text"},{"data":{},"marks":[],"value":"Generate test reports that provide an overview of the software testing process, results, and any issues encountered. Distribute the test to relevant stakeholders.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Test closure: ","nodeType":"text"},{"data":{},"marks":[],"value":"Complete the testing process and formally close the testing phase. Closure includes reviewing the test objectives, evaluating the test coverage, and ensuring that all test deliverables are in order.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Retesting: ","nodeType":"text"},{"data":{},"marks":[],"value":"After defect fixes are implemented, retest the application to verify that the reported issues have been successfully addressed. This ensures that the fixes do not introduce new problems.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Deployment and monitoring: ","nodeType":"text"},{"data":{},"marks":[],"value":"Deploy the software to the production environment and monitor its performance. When issues arise, repeat the testing steps as needed.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"ordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"\n","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2T5tPkjRb61RAbqrAOKcdH","type":"Entry","createdAt":"2024-03-13T16:16:37.625Z","updatedAt":"2024-03-22T14:04:08.326Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionRivers"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","rivers":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5hI6zGmuVkiZ0HSZjw5ElU","type":"Entry","createdAt":"2024-03-13T16:16:37.711Z","updatedAt":"2024-10-09T15:26:03.504Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":28,"revision":9,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentRiver"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","heading":"GitHub’s DevOps Solution","text":"Learn why 90% of the Fortune 100 use GitHub to build, scale, and deliver secure software.","media":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7Rb5ZoUDOX41PpqAibLo9","type":"Asset","createdAt":"2022-11-07T10:15:15.233Z","updatedAt":"2024-03-22T14:04:07.436Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":16,"revision":5,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Dark 1","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/7Rb5ZoUDOX41PpqAibLo9/344247765e0571d768e511fe686cea98/Productivity-DarkMode-1.webp","details":{"size":407100,"image":{"width":2400,"height":1260}},"fileName":"Productivity-DarkMode-1.webp","contentType":"image/webp"}}},"align":"end","imageTextRatio":"50:50"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2eHOB7ROZLDoqdWzhGdBoq","type":"Entry","createdAt":"2024-03-22T14:04:08.404Z","updatedAt":"2024-03-22T14:04:08.404Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-testing Prose - best-practices","sectionId":"best-practices","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2w3pw1x8IN9eXHPDeFHhjw","type":"Entry","createdAt":"2024-03-22T14:04:08.425Z","updatedAt":"2024-10-09T18:32:25.515Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":27,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-testing Prose - best-practices","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Best practices in software testing","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"By following best practices, organizations can build a robust testing process that contributes to the delivery of high-quality software that meets business requirements and user expectations. Here are a few practices:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Early testing:","nodeType":"text"},{"data":{},"marks":[],"value":" The cost of fixing a defect increases as the SDLC progresses. Early testing for issue prevention is considered a best practice because it reduces costs, prevents defects from propagating, and reduces rework.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Comprehensive test coverage:","nodeType":"text"},{"data":{},"marks":[],"value":" Testing a broad range of scenarios minimizes the business risks associated with software failures. Comprehensive test coverage also helps ensure that the software meets user expectations, operates reliably, and performs well under various conditions.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Strategic use of automation:","nodeType":"text"},{"data":{},"marks":[],"value":" Manual testing may be adequate for smaller software projects. However, for larger, more complex projects like ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/enterprise/what-is-enterprise-application-development/"},"content":[{"data":{},"marks":[],"value":"enterprise application development","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":", automated testing can be indispensable. Automated tests can be performed much faster than manual tests. This efficiency is especially crucial in scenarios where repetitive and time-consuming tests need to be performed, such as during regression testing or when running large-scale test suites.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Realistic test data for simulation:","nodeType":"text"},{"data":{},"marks":[],"value":" Using realistic test data for simulation in software testing is crucial because it provides an accurate representation of the production environment. Testing with data that closely mirrors actual data makes it easier to identify potential issues and behavior that may occur in real-world conditions.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Continuous learning for improvement:","nodeType":"text"},{"data":{},"marks":[],"value":" Software development is an incredibly dynamic field, and new tools, frameworks, methodologies, and technologies are regularly emerging. Fostering an environment of continuous learning allows teams to stay abreast of the latest developments and take advantage of new tools and techniques for more effective testing.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Software testing tools:","nodeType":"text"},{"data":{},"marks":[],"value":" Tools play a vital role in software testing by providing support and automation for various testing activities. Software testing tools help testers, developers, and quality assurance professionals perform their tasks more efficiently and effectively throughout the SDLC. There are numerous tools available to meet different needs.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Test automation tools:","nodeType":"text"},{"data":{},"marks":[],"value":" Automation tools enable testers to automate various activities like testing for web applications, mobile applications, or continuous integration and continuous delivery (","nodeType":"text"},{"data":{"uri":"https://resources.github.com/ci-cd/"},"content":[{"data":{},"marks":[],"value":"CI/CD","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":") processes. Many ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/devops/tools/compare/"},"content":[{"data":{},"marks":[],"value":"DevOps tools","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" on the market include test automation capabilities.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Performance testing tools:","nodeType":"text"},{"data":{},"marks":[],"value":" Performance testing tools are used to assess and optimize application performance under various conditions. These tools can highlight areas where the application may experience slowdowns or resource constraints, providing insight into response times.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Security testing tools","nodeType":"text"},{"data":{},"marks":[],"value":": Tools for security testing, like ","nodeType":"text"},{"data":{"uri":"https://github.com/features/security"},"content":[{"data":{},"marks":[],"value":"GitHub security tools","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":", help teams identify, prioritize, and address security vulnerabilities in software applications. Their use is essential for building resilient and secure software in an environment where cybersecurity threats are constantly evolving.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Code review tools:","nodeType":"text"},{"data":{},"marks":[],"value":" Code review tools facilitate and streamline the process of reviewing source code within a development team. These tools help developers collaborate, find errors, ensure code quality, and maintain coding standards. ","nodeType":"text"},{"data":{"uri":"https://github.com/features/code-review"},"content":[{"data":{},"marks":[],"value":"GitHub code review tools","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" are built into every pull request, so they fit easily into teams' existing workflows.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"AI tools:","nodeType":"text"},{"data":{},"marks":[],"value":" AI-powered tools, such as ","nodeType":"text"},{"data":{"uri":"https://github.com/features/copilot"},"content":[{"data":{},"marks":[],"value":"GitHub Copilot","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":", can be useful to help testers perform such activities as writing tests or research potential issues. Learn more about how GitHub Copilot works by visiting the ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/copilot-trust-center/"},"content":[{"data":{},"marks":[],"value":"GitHub Copilot Trust Center","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":".","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"\n","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3XK6i6EHZqvXzV5UJ1S8zD","type":"Entry","createdAt":"2024-03-22T14:04:08.444Z","updatedAt":"2024-03-22T14:04:08.444Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-testing Prose - getting-started","sectionId":"getting-started","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1Cc2Y6SXt4H2NbqnBzJM7H","type":"Entry","createdAt":"2024-03-22T14:04:08.597Z","updatedAt":"2024-10-09T18:32:28.189Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":20,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-software-testing Prose - getting-started","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Get started with software testing","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Software testing is critical for any organization developing software. To ensure your organization operates a successful testing program, foster a culture of quality within the organization, emphasizing the importance of delivering reliable and high-quality software to customers. Encourage collaboration between development and testing teams to streamline the testing process and identify issues early in the development life cycle. It's also important to invest in modern software testing tools and technologies that align with your organization's goals, and ensure that testing efforts contribute to improved customer satisfaction, reduced time-to-market, and minimized business risks. Make sure to stay informed about the evolving landscape of ","nodeType":"text"},{"data":{"uri":"https://learn.microsoft.com/shows/Software-Testing-Fundamentals/01"},"content":[{"data":{},"marks":[],"value":"software testing","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":", as it directly correlates with the overall success and competitiveness of your organization.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"291Sgr41mgVukWK8c1bCkR","type":"Entry","createdAt":"2024-03-22T14:04:08.903Z","updatedAt":"2024-10-09T18:16:56.290Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":23,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionFAQ"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-testing FAQ","sectionId":"faqs","heading":"Frequently asked questions","faqBlocks":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6yaWqtxIJRJL9ZgHqZwirh","type":"Entry","createdAt":"2024-03-22T14:04:09.080Z","updatedAt":"2024-03-22T14:04:09.080Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":6,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentFAQBlock"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-testing FAQ","questions":[]}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2xLkBfoeozTM6PoMZqpaZt","type":"Entry","createdAt":"2024-03-22T14:04:09.288Z","updatedAt":"2024-03-22T14:04:09.288Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":2,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionCards"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-testing Cards","cards":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1TNMj7aN4aiEEp1y3BwScf","type":"Entry","createdAt":"2024-03-22T14:04:09.384Z","updatedAt":"2024-03-22T14:04:09.384Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"layoutComponentCards"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-software-testing Cards","cards":[]}}}}]}},"seo":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3Q0pKCQDrtGFSsRplkNICd","type":"Entry","createdAt":"2024-01-26T19:05:26.722Z","updatedAt":"2024-05-07T16:26:49.290Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":17,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"seo"}},"locale":"en-US"},"fields":{"metaTitle":"What is Software Testing? Definition and Types","metaDescription":"Software testing, its benefits, types of tests, and the available software testing tools. ","openGraphTitle":"What is Software Testing? Definition and Types","openGraphDescription":"Software testing is the systematic process of evaluating and verifying software applications to ensure they function correctly and meet specific requirements."}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3nQXAOwBjZyO9gMuic7N4i","type":"Entry","createdAt":"2024-03-13T16:16:36.340Z","updatedAt":"2024-03-13T16:16:36.340Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/software-development/what-is-technical-debt","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"25wngfdj5SnBBUJGpRXK8P","type":"Entry","createdAt":"2024-03-13T16:16:36.447Z","updatedAt":"2024-03-13T16:16:36.447Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":15,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"containerLandingPage"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-technical-debt","sections":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3VADuSnaHvGKZoKy1HB3vU","type":"Entry","createdAt":"2024-03-13T16:16:36.473Z","updatedAt":"2024-03-13T16:16:36.473Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionHero"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-technical-debt-lp Hero","hero":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6dATpscaBfRRUHpbrHKBez","type":"Entry","createdAt":"2024-03-13T16:16:36.512Z","updatedAt":"2024-10-09T16:25:59.387Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":19,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentHero"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-technical-debt-lp Hero","heading":"What is technical debt?","text":"Understand the impact of technical debt on software development. Learn how to manage and mitigate technical debt for long-term code quality and maintainability.","align":"Left"}},"backgroundImage":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6z2nwPNKt4d23LDLfBNWES","type":"Asset","createdAt":"2022-08-29T10:17:20.095Z","updatedAt":"2024-02-20T19:05:53.410Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":13,"revision":3,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Dark 2","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/6z2nwPNKt4d23LDLfBNWES/84d4fa15451ef6b7a4b2263dbf129081/Productivity-DarkMode-2.webp","details":{"size":363582,"image":{"width":2400,"height":1260}},"fileName":"Productivity-DarkMode-2.webp","contentType":"image/webp"}}},"theme":"dark"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"mrYd99K4P8i7lx9uubgcb","type":"Entry","createdAt":"2024-03-13T16:16:36.809Z","updatedAt":"2024-03-13T16:16:36.809Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":8,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentAnchorNav"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-technical-debt-lp anchor nav","links":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"EHfQIMCx2RCkoHIFfGmDh","type":"Entry","createdAt":"2024-03-13T16:16:37.008Z","updatedAt":"2024-10-09T18:20:46.714Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":11,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Types","text":"Types","href":"types"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6GArdSGsKomyLSjjkVuNbZ","type":"Entry","createdAt":"2024-03-13T16:16:37.028Z","updatedAt":"2024-10-09T18:19:31.268Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":20,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Causes","text":"Causes","href":"Causes"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6YlpdNbqew4xfLFjbE5aSR","type":"Entry","createdAt":"2024-03-13T16:16:37.046Z","updatedAt":"2024-10-09T18:19:34.692Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":20,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Examples","text":"Examples","href":"Examples"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"15hZbZPWJDREqR7piD5p7Q","type":"Entry","createdAt":"2024-03-13T16:16:37.117Z","updatedAt":"2024-10-09T18:19:39.663Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":20,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Measuring","text":"Measuring","href":"Measuring"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4Q389JypIesvTU34vgC1jk","type":"Entry","createdAt":"2024-03-13T16:16:37.137Z","updatedAt":"2024-10-09T18:19:42.246Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"10 best practices","text":"10 best practices","href":"best-practices"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2dyvJaXU68TJKYvaY6eoTG","type":"Entry","createdAt":"2024-03-13T16:16:37.213Z","updatedAt":"2024-03-13T16:16:37.213Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":2,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-technical-debt-lp Prose intro","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7j9VvqaIYoAMEseStqRnwP","type":"Entry","createdAt":"2024-03-13T16:16:37.231Z","updatedAt":"2024-10-09T16:05:09.446Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":20,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-technical-debt-lp Prose intro","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"If you've ever incurred financial debt, you likely did it to get something sooner than you would have if you'd waited until you could pay in full, even though it cost you more in the long term. Technical debt (also called \"tech debt\") works in a similar way. In ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/software-development/what-is-software-development/"},"content":[{"data":{},"marks":[],"value":"software development","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":", technical debt refers to future consequences that result from prioritizing speed of delivery over achieving an optimal solution. Choices made to achieve a short-term goal accrue a \"debt\" that will need to be repaid later in the form of additional work and long-term costs associated with maintaining and evolving the software.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"If technical debt isn't addressed, it can accumulate over time and hinder a team's ability to deliver new features, fix bugs, and respond to changing requirements efficiently. And like financial debt, technical debt comes with interest—the longer it persists, the more costly it becomes.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Defining technical debt: intentional vs. accidental","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"One important aspect of understanding technical debt is recognizing that it can be intentional, accidental, or both. When it's intentional, development teams take on technical debt as a strategic choice to meet tight deadlines or deliver a product more quickly to gain a competitive advantage. The expectation is that the debt will be addressed and repaid.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"With accidental technical debt, unforeseen challenges or lack of knowledge may be responsible. For example, developers can inadvertently introduce technical debt while trying to quickly navigate changing requirements or unexpected technical constraints, or because they don't understand the full scope of the problem they're trying to address.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"In practice, software projects often incur a combination of intentional and accidental technical debt. It's important for development teams and stakeholders to be aware of the trade-offs involved in accumulating technical debt and to have a plan for managing and repaying it over time. Proactive management of technical debt is crucial to maintaining the long-term health and sustainability of a software system.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Importance of technical debt in software development","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Stakeholders and development teams may decide to intentionally take on technical debt for strategic reasons, including:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Rapid delivery and time to market","nodeType":"text"},{"data":{},"marks":[],"value":": Intentionally taking on technical debt may be a strategic decision to meet deadlines and gain a competitive advantage by getting a product to market quickly.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Flexibility and adaptability","nodeType":"text"},{"data":{},"marks":[],"value":": By making pragmatic decisions and accepting some level of debt, teams can quickly iterate on features and respond to user feedback, adapting to evolving requirements and market demands.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Learning and prototyping","nodeType":"text"},{"data":{},"marks":[],"value":": In the early stages of a project, when requirements are still evolving and there's a need for experimentation, technical debt may be incurred as a byproduct of learning and prototyping. Once the requirements are better understood, the debt can be repaid through refactoring and optimization.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Risk management","nodeType":"text"},{"data":{},"marks":[],"value":": Technical debt can be a way of managing risks associated with uncertainties in project requirements. By deferring certain decisions or taking shortcuts initially, teams can gather more information and make better-informed decisions later, reducing the risk of investing heavily in the wrong direction.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Team dynamics and ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/innersource/best-practices-collaborative-software-dev/"},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"collaborative software development","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":": Acknowledging and managing technical debt encourages open communication within development teams and between developers and stakeholders. It fosters a culture of transparency about the trade-offs made during the development process and helps in making informed decisions collectively.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6e6CSwTw9OEey4otU0gLap","type":"Entry","createdAt":"2024-03-13T16:16:37.504Z","updatedAt":"2024-03-13T16:16:37.504Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-technical-debt-lp Types","sectionId":"Types","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1noEBca0sB97pQNEYqF8ms","type":"Entry","createdAt":"2024-03-13T16:16:37.562Z","updatedAt":"2024-10-09T16:05:03.793Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":17,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-technical-debt-lp Types","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Types of technical debt","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Technical debt has been characterized in multiple ways over time. Some approaches focus on the intent and consequences, while others address the specific nature of the debt. One useful way to categorize the different types of technical debt is based on how they fit into the ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/software-development/what-is-sdlc/"},"content":[{"data":{},"marks":[],"value":"software development lifecycle (SDLC)","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":". These types include:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Architecture debt","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Build debt","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Code debt","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Defect debt","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Design debt","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Documentation debt","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Infrastructure debt","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"People debt","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Process debt","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Requirement debt","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Service debt","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Test automation debt","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Test debt","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"For each type, compromises or shortcuts made in that aspect of the SDLC result in issues that may impact the long-term maintainability, scalability, and reliability of the software if the debt is not repaid.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3hARo3xEVepdnuYnQbHGdr","type":"Entry","createdAt":"2024-03-13T16:16:37.582Z","updatedAt":"2024-03-13T16:16:37.582Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-technical-debt-lp Causes","sectionId":"Causes","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2UNm2cTE5KAO2TmK4qdtFd","type":"Entry","createdAt":"2024-03-13T16:16:37.606Z","updatedAt":"2024-10-09T16:04:58.684Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":19,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-technical-debt-lp Causes","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Causes of technical debt","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"A wide range of factors and circumstances can result in technical debt throughout the software development process. Some common examples of these issues include:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Time and resource constraints","nodeType":"text"},{"data":{},"marks":[],"value":": Development teams facing pressure to deliver a product or fix a bug quickly may take shortcuts to meet tight deadlines or market demands.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Incomplete requirements","nodeType":"text"},{"data":{},"marks":[],"value":": When the full scope of a project is not well-defined or changes frequently, developers may make decisions that need to be revisited and refined as the requirements become clearer.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Lack of experience or knowledge","nodeType":"text"},{"data":{},"marks":[],"value":": Developers may inadvertently introduce technical debt due to a lack of understanding of best practices, design patterns, or the long-term consequences of certain decisions.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Legacy code and systems","nodeType":"text"},{"data":{},"marks":[],"value":": Integrating new features or making changes in a legacy environment with outdated technologies and architectures may result in shortcuts or compromises.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Insufficient testing","nodeType":"text"},{"data":{},"marks":[],"value":": Inadequate testing practices, such as the lack of automated tests or insufficient test coverage, can make it difficult to identify and address issues early in the development process.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Lack of documentation","nodeType":"text"},{"data":{},"marks":[],"value":": Poor documentation can make it difficult for developers to understand and maintain or update the code.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2T5tPkjRb61RAbqrAOKcdH","type":"Entry","createdAt":"2024-03-13T16:16:37.625Z","updatedAt":"2024-03-22T14:04:08.326Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionRivers"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","rivers":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5hI6zGmuVkiZ0HSZjw5ElU","type":"Entry","createdAt":"2024-03-13T16:16:37.711Z","updatedAt":"2024-10-09T15:26:03.504Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":28,"revision":9,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentRiver"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","heading":"GitHub’s DevOps Solution","text":"Learn why 90% of the Fortune 100 use GitHub to build, scale, and deliver secure software.","media":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7Rb5ZoUDOX41PpqAibLo9","type":"Asset","createdAt":"2022-11-07T10:15:15.233Z","updatedAt":"2024-03-22T14:04:07.436Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":16,"revision":5,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Dark 1","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/7Rb5ZoUDOX41PpqAibLo9/344247765e0571d768e511fe686cea98/Productivity-DarkMode-1.webp","details":{"size":407100,"image":{"width":2400,"height":1260}},"fileName":"Productivity-DarkMode-1.webp","contentType":"image/webp"}}},"align":"end","imageTextRatio":"50:50"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"iQCIIRyCCuY6qpzyR4JgG","type":"Entry","createdAt":"2024-03-13T16:16:37.815Z","updatedAt":"2024-03-13T16:16:37.815Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-technical-debt-lp Examples","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3wTCocC5v6qsWB3QpI3RrX","type":"Entry","createdAt":"2024-03-13T16:16:37.830Z","updatedAt":"2024-10-09T16:04:53.827Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":19,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-technical-debt-lp Examples","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Examples of technical debt impact on development projects","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"In the short term, technical debt can provide a boost in speed and flexibility that helps an organization achieve its goals. However, technical debt that is not addressed proactively can have severe consequences for the long-term success of the project. Some of these consequences include:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Decreased code quality","nodeType":"text"},{"data":{},"marks":[],"value":": Code with design flaws, inadequate testing, or insufficient documentation is more prone to errors and may not meet the desired standards for reliability, performance, and security. Poorly designed or hastily implemented code may lead to a higher incidence of bugs and defects.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Increased maintenance costs","nodeType":"text"},{"data":{},"marks":[],"value":": Over time, the codebase becomes more difficult and expensive to maintain. Developers need to allocate more time and effort to address issues, refactor code, and implement changes.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Compromised security","nodeType":"text"},{"data":{},"marks":[],"value":": Outdated dependencies, insufficient testing, and poorly designed security features can create vulnerabilities, exposing the system to potential security breaches.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Difficulty in attracting and retaining talent","nodeType":"text"},{"data":{},"marks":[],"value":": The perception of a challenging and error-prone codebase may deter potential hires. For existing team members, working with challenging code may lead to frustration, burnout, and higher turnover.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Longer time to market","nodeType":"text"},{"data":{},"marks":[],"value":": Code that is more difficult to understand, modify, and extend takes more time to navigate. Developers spend more time on refactoring instead of focusing on innovation, extending the time to market for new features and releases.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Identifying and measuring technical debt","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Taking steps to proactively identify and measure technical debt is essential to understanding its potential impact on the project and the organization. Some key indicators of technical debt include:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"},{"data":{"uri":"https://github.com/features/code-review"},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Code reviews","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":": Perform regular code reviews to identify code smells, duplication, and other signs of poor code quality.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"},{"data":{"uri":"https://github.blog/2023-03-31-codeql-zero-to-hero-part-1-the-fundamentals-of-static-analysis-for-vulnerability-research/"},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Static code analysis","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":": Use automated tools to analyze code statically to identify potential errors and vulnerabilities.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Testing metrics","nodeType":"text"},{"data":{},"marks":[],"value":": Analyze testing metrics for indicators of incomplete or inadequate testing, such as low code coverage or a high number of defects.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Documentation assessment","nodeType":"text"},{"data":{},"marks":[],"value":": Evaluate the completeness and accuracy of documentation to identify deficiencies.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Deployment and infrastructure audits","nodeType":"text"},{"data":{},"marks":[],"value":": Review deployment processes and infrastructure components for inefficiencies or outdated elements.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Dependency analysis","nodeType":"text"},{"data":{},"marks":[],"value":": Check for outdated third-party libraries or frameworks.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Team feedback","nodeType":"text"},{"data":{},"marks":[],"value":": Solicit feedback from development teams regarding challenges, frustrations, and perceived technical debt.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7fHqgvgT1cFGVabblHTlNo","type":"Entry","createdAt":"2024-03-13T16:16:37.911Z","updatedAt":"2024-03-13T16:16:37.911Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-technical-debt-lp 10 best practices ","sectionId":"best-practices","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4rgEaSHvSYG43wOR93v6uZ","type":"Entry","createdAt":"2024-03-13T16:16:38.005Z","updatedAt":"2024-10-09T16:04:49.034Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-technical-debt-lp 10 best practices ","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"10 best practices to mitigate technical debt","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Effectively mitigating technical debt involves a combination of proactive strategies and ongoing efforts. Here are 10 best practices you can implement to manage and reduce technical debt:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Prioritizing refactoring","nodeType":"text"},{"data":{},"marks":[],"value":": Regularly allocate time for refactoring to improve code quality and address design debt.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Automated testing","nodeType":"text"},{"data":{},"marks":[],"value":": Implement robust automated testing practices to ensure comprehensive test coverage and identify defects early.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Continuous integration and deployment (CI/CD)","nodeType":"text"},{"data":{},"marks":[],"value":": Adopt CI/CD practices to streamline development and deployment processes.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Documentation updates","nodeType":"text"},{"data":{},"marks":[],"value":": Maintain up-to-date and comprehensive documentation to facilitate knowledge transfer and reduce documentation debt.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Training and skill development","nodeType":"text"},{"data":{},"marks":[],"value":": Invest in the training and skill development of team members to address people and knowledge debt.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Agile and iterative development","nodeType":"text"},{"data":{},"marks":[],"value":": Embrace ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/devops/what-is-agile-methodology/"},"content":[{"data":{},"marks":[],"value":"agile methodologies","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" to adapt to changing requirements and reduce the risk of accumulating technical debt. Using more rigid approaches like waterfall development increases the likelihood of incurring technical debt.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Technical debt backlog","nodeType":"text"},{"data":{},"marks":[],"value":": Maintain a technical debt backlog to track and prioritize debt mitigation tasks.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Collaborative decision-making","nodeType":"text"},{"data":{},"marks":[],"value":": Foster collaboration and open communication within the development team and between developers and stakeholders to make informed decisions collectively.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Security audits","nodeType":"text"},{"data":{},"marks":[],"value":": Conduct regular security audits to identify and address potential vulnerabilities, reducing security-related technical debt.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Regular reflection and retrospectives","nodeType":"text"},{"data":{},"marks":[],"value":": Periodically reflect on development practices and project outcomes through retrospectives, identifying areas for improvement and debt reduction.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"ordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Conclusion","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Technical debt is an inevitable aspect of software development, presenting both opportunities and challenges. While intentional technical debt can be a useful tool to achieve short-term gains, unmanaged and excessive technical debt can lead to damaging long-term consequences. It's important for development teams and organizations to strike a balance between rapid innovation and maintaining a sustainable, adaptable, and high-quality codebase. By understanding the types, causes, and impacts of technical debt, and by adopting best practices for mitigation, you can navigate the complex landscape of software development more effectively, ensuring the success and longevity of your projects.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1bo0gFJAZMxqAMe8Xz3rOx","type":"Entry","createdAt":"2024-03-13T16:16:38.038Z","updatedAt":"2024-10-09T18:16:10.812Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionFAQ"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-technical-debt-lp FAQ","heading":"Frequently asked questions","faqBlocks":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7h3spmxlOEakZDiS3zexnS","type":"Entry","createdAt":"2024-03-13T16:16:38.100Z","updatedAt":"2024-03-13T16:16:38.100Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":6,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentFAQBlock"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-technical-debt-lp FAQ","questions":[]}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5OoPgwGmaYuR5xGoOTD888","type":"Entry","createdAt":"2024-03-13T16:16:38.647Z","updatedAt":"2024-03-13T16:16:38.647Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":2,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionCards"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-technical-debt-lp Cards","cards":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2H6wSAYloeOqTK5l07tywY","type":"Entry","createdAt":"2024-03-13T16:16:38.708Z","updatedAt":"2024-03-13T16:16:38.708Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"layoutComponentCards"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-technical-debt-lp Cards","cards":[]}}}}]}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7ppshgAg43R4PzekZx7rRg","type":"Entry","createdAt":"2024-02-21T16:25:26.349Z","updatedAt":"2024-05-10T17:22:14.841Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":8,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/software-development/what-is-version-control","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"66kuqUPaHuubqO6mp19x3m","type":"Entry","createdAt":"2024-05-10T17:22:14.981Z","updatedAt":"2024-05-10T17:22:14.981Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":10,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"containerLandingPage"}},"locale":"en-US"},"fields":{"title":"Landing Page for /software-development/what-is-version-control","sections":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3paxlzFiIUQ5Z3S5RqAJAQ","type":"Entry","createdAt":"2024-05-10T17:22:15.023Z","updatedAt":"2024-05-10T17:22:15.023Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionHero"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-version-control hero","hero":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5pcywqirgxCefC5lpJdRyH","type":"Entry","createdAt":"2024-05-10T17:22:15.083Z","updatedAt":"2024-10-09T16:15:18.825Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":17,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentHero"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-version-control hero","heading":"What is Version Control?","text":"Learn how version control systems and software help track changes, support collaboration, and ensure code integrity throughout the development process.","align":"Left"}},"backgroundImage":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"22ohfL7Trxi1L2hqgCZx3F","type":"Asset","createdAt":"2023-05-04T15:28:21.734Z","updatedAt":"2024-02-20T19:05:53.403Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":13,"revision":3,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Light 2","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/22ohfL7Trxi1L2hqgCZx3F/2f55ebd77a97e2b2081c61484f9ed1a6/Productivity-LightMode-2.webp","details":{"size":286906,"image":{"width":2400,"height":1260}},"fileName":"Productivity-LightMode-2.webp","contentType":"image/webp"}}},"theme":"light"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1FvHaAc7mlKzA2SqVYR8sL","type":"Entry","createdAt":"2024-05-10T17:22:15.178Z","updatedAt":"2024-05-10T17:22:15.178Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":9,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentAnchorNav"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-version-control Anchor nav","links":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3LJEtqft0JsL4PdzAYhW6H","type":"Entry","createdAt":"2023-12-15T20:13:46.061Z","updatedAt":"2024-10-09T18:22:54.694Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Overview","text":"Overview","href":"overview"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7I4esnBZMGNEeNYgTbByrS","type":"Entry","createdAt":"2024-05-10T17:22:15.214Z","updatedAt":"2024-10-09T18:22:59.798Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":20,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Features","text":"Features","href":"features"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"30WL8NGzdrA7KATIF7S3II","type":"Entry","createdAt":"2024-03-13T16:23:11.261Z","updatedAt":"2024-10-09T18:19:58.040Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Tools","text":"Tools","href":"tools"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"SdjmyHu23pB1H10VdxkJH","type":"Entry","createdAt":"2023-10-18T13:15:01.200Z","updatedAt":"2024-10-09T18:22:41.398Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":29,"revision":13,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Best practices ","text":"Best practices","href":"best-practices"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6JBpSa6kNeCj0NEnMK6QIU","type":"Entry","createdAt":"2023-03-31T02:17:35.715Z","updatedAt":"2024-10-09T18:22:09.372Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":12,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"FAQs","text":"FAQs","href":"faqs"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"VksBsF8h9WviNXGZ5IHGw","type":"Entry","createdAt":"2024-05-10T17:22:15.229Z","updatedAt":"2024-05-10T17:22:15.229Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-version-control Prose - overview","sectionId":"overview","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4d27Ub0R02ymF3m6YpeZvj","type":"Entry","createdAt":"2024-05-10T17:22:15.290Z","updatedAt":"2024-10-09T18:34:10.202Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-version-control Prose - overview","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Imagine you're a violinist in a 100-piece orchestra, but you and the other musicians can't see the conductor or hear one another. Instead of synchronized instruments playing music, the result is just noise.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"This is like developing software without version control. Developers in decentralized locations working on the same code are blind to one another's changes and why they were made. The team ends up with conflicting edits, slowed progress, and undeployable software.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"The solution is software version control. But what is version control, and how does it work?","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Introduction to version control","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Version control systems (VCS) give software engineering teams complete visibility to the code history and a single source of documentation for all files, folders, and messages. Version control tools streamline software development and mitigate lost work and time by tracking code changes from asynchronous and concurrent work, identifying conflicting edits, sparking collaboration, and preventing overwrites.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Version control allows the developer \"orchestra\" to see every commit and access, review, collaborate, experiment, compare, and undo changes to ensure code integrity and faster releases.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"In this article, we'll explore what version control software is and how it improves the ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/software-development/what-is-software-development/"},"content":[{"data":{},"marks":[],"value":"software development","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" process, developer experience, and product. We'll define important terms, explore the different types of version control systems available, and the version control tools most used by developers. You'll find guidance on how to evaluate tools for your team and enterprise, and best practices to help developers succeed.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"What is version control?","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Version control software helps facilitate continuous software development workflows. As user demands scale up, version control helps developers work smarter together, using time and resources more efficiently.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"A foundational tool in the modern developer's toolkit, version control tools keep a historical record of software changes in a specialized database, logging edits made by individual developers. When conflicts emerge, developers can look back and resolve code conflicts, minimizing disruption to the codebase.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Especially useful for ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/devops/"},"content":[{"data":{},"marks":[],"value":"DevOps","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" and DevSecOps teams in accelerated cloud-based environments, version control systems facilitate collaboration, productivity, and successful software deployments.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Understanding version control systems","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Version control systems help eliminate common development roadblocks—like operating system limitations and siloed tool chains—simplifying and streamlining development and creating space for innovation that can lead to breakthroughs.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"In addition to accelerating productivity and reducing errors, version control systems help save enterprises time and money.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Version control is essential to the overall health of the ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/software-development/what-is-sdlc/"},"content":[{"data":{},"marks":[],"value":"software development lifecycle","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" (SDLC) and improves project management and product development. In fact, failure to adopt version control poses risks like data loss, sluggish development, and reduced code quality, hampering competitiveness. Integrating version control mitigates these risks by helping enterprises scale processes as demand increases. A secure, detailed record of versions and releases creates a hedge against code corruption.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Using a version control tool helps an organization unify operating systems, services, and developer toolkits by tearing down siloes and facilitating coordination across the entire software engineering ecosystem. Greater visibility fosters better communication and infuses buoyancy into the development process by improving project clarity and keeping contributors engaged and aligned.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Version control systems empower developer teams to:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Create a codebase history","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Version control systems create a complete codebase history, stored in a specialized database, and provide the entire team with a single and secure source of truth.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Ramp up collaboration","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"By tracking every change, version control systems help teams avoid conflict and create opportunities to experiment and innovate.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Reduce errors","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Using a version control tool allows developers to find errors fast, roll back to a previous version and correct the problem, mitigating the impact of the error.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Improve code quality","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"A version control system encourages developers to follow best practices and write clean code that is easy to access, understand, and maintain.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Recover in a snap","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"With version control, every code change is tracked, restorable, and revertible. A version control system acts as a safety net, preventing accidental code deletions and related developer anxiety.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Increase coding confidence","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Developers rely on version control systems to synchronize versions so they can resolve conflicts and safely experiment.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Expand visibility","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Team collaboration and communication improve with version control by providing full visibility to the ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/software-development/code-documentation"},"content":[{"data":{},"marks":[],"value":"code documentation","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" and its history.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Automate tasks","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Efficiency and productivity increase with a version control system by automating testing, analysis, and deployment for fast, consistent results.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3NYh3sxgwptrgYpFgZIN0j","type":"Entry","createdAt":"2024-05-10T17:22:15.425Z","updatedAt":"2024-05-10T17:22:15.425Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-version-control Prose - Features","sectionId":"features","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1sXOAVt9hPGvqEMKSSaPyB","type":"Entry","createdAt":"2024-05-10T17:22:15.591Z","updatedAt":"2024-10-09T18:34:13.509Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-version-control Prose - Features","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Features of version control software","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Let's review some of version control software's capabilities, functions, and features.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Repository","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Also called a \"repo,\" a repository is the centralized database that stores the complete collection of files and folders for a codebase, along with the revision history.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Pull request","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"The mechanism developers use to propose, notate, review, and discuss changes before they merge updates into the main codebase is a pull request. A pull request is also known as a merge request.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Commit","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"A commit is a snapshot of changes with a unique \"hash\" that identifies the proposed changes. A commit can include notes and messages between developers.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Branch","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"A code branch is a separate, parallel version of the codebase created by developers to work independently on experiments, regression testing, and debugging without changing the main codebase.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Merge","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"When developers combine code edits, they integrate the changes from one branch into another or into the main codebase.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Conflict","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"When multiple developers make edits to the code, their changes sometimes conflict. Version control tools help developers identify and resolve conflicts to keep development moving.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Checkout","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"When a developer retrieves a file from the version control system it's called a checkout.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Tag","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"A tag is a marker used by contributors to label a specific point in the source code history, like the release date. Tags are also used to mark a specific point in the codebase before changes.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Remote","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Remote development allows developers to do some or all their work on their local desktop, on a company server, or on the cloud.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Fork","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"A fork is the process of creating a separate and distinct piece of software by copying source code from an existing software package.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Revert","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Developers can revert, or undo, one or more recent changes and return to the previous version.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Now let's look at the various types of version control software systems and tools commonly used in software development.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2T5tPkjRb61RAbqrAOKcdH","type":"Entry","createdAt":"2024-03-13T16:16:37.625Z","updatedAt":"2024-03-22T14:04:08.326Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionRivers"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","rivers":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5hI6zGmuVkiZ0HSZjw5ElU","type":"Entry","createdAt":"2024-03-13T16:16:37.711Z","updatedAt":"2024-10-09T15:26:03.504Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":28,"revision":9,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentRiver"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","heading":"GitHub’s DevOps Solution","text":"Learn why 90% of the Fortune 100 use GitHub to build, scale, and deliver secure software.","media":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7Rb5ZoUDOX41PpqAibLo9","type":"Asset","createdAt":"2022-11-07T10:15:15.233Z","updatedAt":"2024-03-22T14:04:07.436Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":16,"revision":5,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Dark 1","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/7Rb5ZoUDOX41PpqAibLo9/344247765e0571d768e511fe686cea98/Productivity-DarkMode-1.webp","details":{"size":407100,"image":{"width":2400,"height":1260}},"fileName":"Productivity-DarkMode-1.webp","contentType":"image/webp"}}},"align":"end","imageTextRatio":"50:50"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7DsxvKhlbrGRb66VVryYdH","type":"Entry","createdAt":"2024-05-10T17:22:15.612Z","updatedAt":"2024-05-10T17:22:15.612Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-version-control Prose - Types","sectionId":"types","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7n8eC5xgQoyFNqpbyWGxOo","type":"Entry","createdAt":"2024-05-10T17:22:15.630Z","updatedAt":"2024-10-09T18:34:17.288Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-version-control Prose - Types","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Types of version control systems","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Deciding which tool is right depends on the needs of the development team, scale of the project, and other factors, but having one is essential to efficient and effective software development.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Some of the distinct types of version control systems are:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Local","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Stores code changes locally on a user's computer","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"File changes are stored as patches","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Patches are pushed to a single version of the codebase","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Not scalable or collaborative, works for smaller projects","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Centralized version control systems (CVCS)","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"A single, centralized database, or repository, is stored on a server","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"All users work with the same repository and commit to the same branch","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Users check out the latest version from the server","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Some systems \"file lock\" in the central repository to prevent simultaneous edits to the same file","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Contributors push commits to the server and resolve merge conflicts on the repository","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Distributed version control systems (DVCS)","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Users access the repository from any location","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Contributors can work on the same codebase without being on the same network","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Each developer has a local copy of the entire repository and history on their device","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Users can commit, branch, and merge changes locally without reliance on the central server","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Lock-based","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"When a user begins work, individual files are locked","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Prevents two or more users from making conflicting changes","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Optimistic","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Every user has a private workspace","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Users submit server requests to share changes with the team before merging","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"The server determines which changes can be merged safely","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"Depending on region and locale, distributed and centralized version control systems are the most widely used types because of their scalability, flexibility, and developers can collaborate on code from anywhere in the world.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4rXLcB9pufriXq13gCeY2","type":"Entry","createdAt":"2024-05-10T17:22:15.867Z","updatedAt":"2024-05-10T17:22:15.867Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-version-control Prose - Tools","sectionId":"tools","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6sjpt5SUPLqiW78WeDOlqB","type":"Entry","createdAt":"2024-05-10T17:22:16.069Z","updatedAt":"2024-10-09T18:34:20.664Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-version-control Prose - Tools","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Common version control tools","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"There are several ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/devops/tools/compare/"},"content":[{"data":{},"marks":[],"value":"DevOps tools","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" available for version control, and the most used include:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Git","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Git is an open-source distributed version control tool preferred by developers for its speed, flexibility, and because contributors can work on the same codebase simultaneously.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Subversion (SVN)","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Subversion is a centralized version control tool used by enterprise teams and is known for its speed and scalability.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Azure DevOps Server","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Previously known as Microsoft Team Foundation Server (TFS), Azure DevOps Server is a set of modern development services, a centralized version control, and reporting system hosted on-premises.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Mercurial","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Like Git in scalability and flexibility, Mercurial is a distributed version control system.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Perforce","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Used in large-scale software development projects, Perforce is a centralized version control system valued for its simplicity and ease of use.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Version Control tool factors","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"When evaluating the advantages and disadvantages of various version control tools, keep these factors in mind.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Scalability","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"If the project is large with a distributed team, the tool should be able to handle expansive projects with many files and users.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Ease of use","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Version control tools can be complex, so a simple, user-friendly interface can help ensure a manageable learning curve and accelerate adoption.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Collaboration features","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"The tool should support multiple contributors working on the same codebase simultaneously and facilitate quick communication to streamline merges.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Integration with existing tools","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Look for a tool that will work with the tools your team already uses, like project management software, continuous software integration solutions, building and editing tools, and integrated development environments.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Supports branching","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"A VCS should support branching for efficient workflows so developers can work on distinct parts of the code without conflicting or interfering with one another's work.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6UB64OdId9aV5X1WQIwFk7","type":"Entry","createdAt":"2024-05-10T17:22:16.088Z","updatedAt":"2024-05-10T17:22:16.088Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-version-control Prose - best-practices","sectionId":"best-practices","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"24MhXMBu4WMjgiagoMsaRv","type":"Entry","createdAt":"2024-05-10T17:22:16.168Z","updatedAt":"2024-10-09T18:34:24.073Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-development/what-is-version-control Prose - best-practices","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Best practices for version control","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Incorporating version control into a software development process is a significant step. After choosing the right version control tool for a project, best practices can help the team get up to speed early.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"The repository setup","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"A version control repository should be compliant, and have access control, disaster recovery, and failover plans in place.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Establish workflow alignment","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Productive collaboration is optimized when contributors are on the same workflow page, so seek understanding and agreement early.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Write clear commit messages","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"When contributors commit to the repository, including clearly written messages that explain the changes can help mitigate roadblocks.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Commit often","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Encourage the team to make lots of small commits with concise comments to keep development moving. Avoid the tendency to make fewer but more complex changes accompanied by long messages.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Test before committing code","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"The adage, \"Measure twice, cut once,\" applies here. To ensure the code works as expected, contributors should test before committing changes to the codebase.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Commit code only when ready","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Like doing many small commits, only completed code should be committed to keep the codebase in good working order.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Avoid conflicts","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Developers can help mitigate conflicts by pulling code from upstream to ensure they work with the most up to date code, and by breaking large files into smaller ones.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Use branches","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Code branches should support multiple versions of software releases and patches.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Limit repository access","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Give access only to contributors who need it, a simple but powerful practice that prevents unauthorized codebase access.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Conclusion: The benefits of version control","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Version control systems help developers keep a complete code history by tracking changes and supporting better collaboration to help ensure code integrity throughout the development process. Crucial for effective DevOps teams working in accelerated cloud-based environments, version control software supports modern software teams so they can work smarter and release software faster.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7vYsPgnIqU2CFNlaXMmTSs","type":"Entry","createdAt":"2024-05-10T17:22:16.189Z","updatedAt":"2024-10-09T18:17:46.586Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":23,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionFAQ"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-version-control FAQ","sectionId":"faqs","heading":"Frequently asked questions","faqBlocks":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5mBAFNpPZXNgSlH4EsRTID","type":"Entry","createdAt":"2024-05-10T17:22:16.229Z","updatedAt":"2024-05-10T17:22:16.229Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":9,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentFAQBlock"}},"locale":"en-US"},"fields":{"title":"/software-development/what-is-version-control FAQ","questions":[]}}]}}]}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7vKz05i3Ey2azBbYAXN2Tm","type":"Entry","createdAt":"2024-03-13T16:23:10.990Z","updatedAt":"2024-03-13T16:23:10.990Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"page"}},"locale":"en-US"},"fields":{"path":"/software-engineering/what-is-software-engineering","content":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"PRFXpXeKAD8OL85bvMQIU","type":"Entry","createdAt":"2024-03-13T16:23:11.085Z","updatedAt":"2024-03-13T16:24:18.889Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":18,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"containerLandingPage"}},"locale":"en-US"},"fields":{"title":"/software-engineering/what-is-software-engineering","sections":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7gDKQWWnhZx4OQcdSEtR2O","type":"Entry","createdAt":"2024-03-13T16:23:11.117Z","updatedAt":"2024-03-13T16:24:00.065Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":9,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionHero"}},"locale":"en-US"},"fields":{"title":"/software-engineering/what-is-software-engineering Hero","hero":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5To7eclr81ano4s5cFrZjV","type":"Entry","createdAt":"2024-03-13T16:23:11.146Z","updatedAt":"2024-10-09T16:25:48.961Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":18,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentHero"}},"locale":"en-US"},"fields":{"title":"/software-engineering/what-is-software-engineering Hero","heading":"What is software engineering?","text":"Software engineering is the job of designing, developing, testing, and maintaining software applications and systems.\n\n","align":"Left"}},"backgroundImage":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"22ohfL7Trxi1L2hqgCZx3F","type":"Asset","createdAt":"2023-05-04T15:28:21.734Z","updatedAt":"2024-02-20T19:05:53.403Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":13,"revision":3,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Light 2","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/22ohfL7Trxi1L2hqgCZx3F/2f55ebd77a97e2b2081c61484f9ed1a6/Productivity-LightMode-2.webp","details":{"size":286906,"image":{"width":2400,"height":1260}},"fileName":"Productivity-LightMode-2.webp","contentType":"image/webp"}}},"theme":"light"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"1ISW3SMAFDLRbFTvFRZt1R","type":"Entry","createdAt":"2024-03-13T16:23:11.165Z","updatedAt":"2024-03-13T16:23:11.165Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":6,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentAnchorNav"}},"locale":"en-US"},"fields":{"title":"/software-engineering/what-is-software-engineering Anchor Nav","links":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"EHfQIMCx2RCkoHIFfGmDh","type":"Entry","createdAt":"2024-03-13T16:16:37.008Z","updatedAt":"2024-10-09T18:20:46.714Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":22,"revision":11,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Types","text":"Types","href":"types"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3C6AqJRNfOZQpgykW4Rrjm","type":"Entry","createdAt":"2024-03-13T16:23:11.197Z","updatedAt":"2024-10-09T18:19:52.988Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":20,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Roles","text":"Roles","href":"roles"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3itbmy6xH8YhJTGDiuJfbH","type":"Entry","createdAt":"2024-03-13T16:23:11.241Z","updatedAt":"2024-10-09T18:19:55.494Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":20,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Skills","text":"Skills","href":"skills"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"30WL8NGzdrA7KATIF7S3II","type":"Entry","createdAt":"2024-03-13T16:23:11.261Z","updatedAt":"2024-10-09T18:19:58.040Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Tools","text":"Tools","href":"tools"}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5IqpV0P7Tu8n6Vh26tQgTb","type":"Entry","createdAt":"2024-03-13T16:23:11.330Z","updatedAt":"2024-10-09T18:20:00.706Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":20,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"anchorLink"}},"locale":"en-US"},"fields":{"title":"Career","text":"Career","href":"career"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4uVALXc8thiPaQZtambB1N","type":"Entry","createdAt":"2024-03-13T16:23:11.350Z","updatedAt":"2024-03-13T16:23:11.350Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":2,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-engineering/what-is-software-engineering Prose - intro","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"xEJCBvcX7qCiDd7u1ci0u","type":"Entry","createdAt":"2024-03-13T16:23:11.370Z","updatedAt":"2024-10-09T16:04:24.233Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":17,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-engineering/what-is-software-engineering Prose - intro","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"It involves applying engineering principles to the ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/software-development/what-is-sdlc/"},"content":[{"data":{},"marks":[],"value":"software development lifecycle","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" and the use of various tools and techniques to create high-quality software products. This process is informed by engineering techniques, which help define, implement, assess, measure, manage, change, and improve the software over its lifetime.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Software encompasses a wide variety of applications, including operating systems, desktop programs, games, and mobile apps. Every industry uses software apps in some way—data management, customer interfacing, and operations can all be managed using software apps.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Engineering software requires not just the development of the application but also the maintenance as hardware, related software, and user needs evolve over time.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6owrERnJOC5vwcJMjMfCEt","type":"Entry","createdAt":"2024-03-13T16:23:11.387Z","updatedAt":"2024-03-13T16:23:11.387Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-engineering/what-is-software-engineering Prose - Types","sectionId":"types","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"6jivBZWgbRAWmbgOUT0j91","type":"Entry","createdAt":"2024-03-13T16:23:11.435Z","updatedAt":"2024-10-09T16:04:19.201Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":18,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-engineering/what-is-software-engineering Prose - Types","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Types of software engineers","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"There are many different types of software engineering roles, each with its own set of responsibilities and requirements. Some of the most common types of software engineering roles include:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Application developer","nodeType":"text"},{"data":{},"marks":[],"value":": The person in this role creates software applications and programs using tools designed for development as well as programming languages—such as JavaScript, HTML/CSS, SQL, Python, and Java.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Architect","nodeType":"text"},{"data":{},"marks":[],"value":": The person in this role designs and develops software systems and applications at a high level. They determine project requirements and build technical standards for tools, platforms, or software coding. A development team then uses these designs and standards to develop software.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Project manager","nodeType":"text"},{"data":{},"marks":[],"value":": The person in this role handles the process of software development from start to finish by organizing workflows, assigning tasks, and monitoring progress to meet benchmarks or deadlines.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"System developer","nodeType":"text"},{"data":{},"marks":[],"value":": The person in this role builds the operating system that underpins all backend computer functions. These systems are the foundation of not just desktop devices but also mobile devices, automobiles, IT networks—anything that relies on a computer to operate.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Tester","nodeType":"text"},{"data":{},"marks":[],"value":": The person in this role designs tests to help ensure that software applications meet certain standards of quality and performance. They also run these tests and analyze the results to make improvements or recommendations.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"\n","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"RR4egc6LG0yDLwutc9wSZ","type":"Entry","createdAt":"2024-03-13T16:23:11.454Z","updatedAt":"2024-03-13T16:23:11.454Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-engineering/what-is-software-engineering Prose - Roles","sectionId":"roles","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"28dCT9VOB2vwZ7r0uFcACO","type":"Entry","createdAt":"2024-03-13T16:23:11.472Z","updatedAt":"2024-10-09T16:04:14.383Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":18,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-engineering/what-is-software-engineering Prose - Roles","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Software engineering roles and responsibilities","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"The roles and responsibilities of a software engineer can vary depending on the specific job, industry, and company. Some common day-to-day responsibilities include:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Designing and developing software systems and apps","nodeType":"text"},{"data":{},"marks":[],"value":": Designing and developing systems and apps involves writing code and debugging errors. Software engineers also design ways to test new code—either their own or code written for other programs that might be used with their systems—to ensure quality and performance control.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Collaborating with other engineers and stakeholders","nodeType":"text"},{"data":{},"marks":[],"value":": This type of collaboration includes working with other software engineers, project managers, and clients to ensure that software products meet their needs. Collaboration takes place throughout the project from the outset (when software requirements are defined) through completion (when the product is evaluated to make sure it meets its defined goals).","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Maintaining software systems applications","nodeType":"text"},{"data":{},"marks":[],"value":": This involves fixing bugs, updating software, and ensuring that software products continue to function properly over time. The dynamic nature of evolving technology requires software engineers to continuously check on the health of systems and apps.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"\n","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2W4I6lb1X4Hx1KxxVE9o8P","type":"Entry","createdAt":"2024-03-13T16:23:11.536Z","updatedAt":"2024-03-13T16:23:11.536Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-engineering/what-is-software-engineering Prose - Skills","sectionId":"skills","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3WiKdHJ3jbBG0Dj60h0ZJG","type":"Entry","createdAt":"2024-03-13T16:23:11.555Z","updatedAt":"2024-10-09T16:04:08.964Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":17,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-engineering/what-is-software-engineering Prose - Skills","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Popular software engineer skills","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"To become a software engineer, you need to have a combination of both technical and non-technical proficiencies. Some of the most important skills for software engineers include:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Programming languages","nodeType":"text"},{"data":{},"marks":[],"value":": Software engineers should be proficient in one or more programming languages, such as Java, Python, or C++. Programming fluency is essential for not only writing code but testing and maintaining apps over their lifetime.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Computer science","nodeType":"text"},{"data":{},"marks":[],"value":": Through a combination of education and experience, software engineers need a strong foundation in computer science. Knowledge of operating systems, databases, and networks is essential for software engineering.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Project management","nodeType":"text"},{"data":{},"marks":[],"value":": Agile software development frameworks—including Scrum—are frequently used by organizations. While essential for software project managers, these frameworks are also good to know for any software engineer.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Problem-solving","nodeType":"text"},{"data":{},"marks":[],"value":": Problems can arise in any area of software engineering, including code writing, testing, and maintenance. Software engineers should be able to identify and solve complex problems related to software development.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Communication and collaboration","nodeType":"text"},{"data":{},"marks":[],"value":": Software engineers should be able to effectively work with other engineers, project managers, clients, and non-technical stakeholders about various aspects of a project, including scope and requirements, progress, testing, and maintenance.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Attention to detail","nodeType":"text"},{"data":{},"marks":[],"value":": Software engineers should be detail-oriented and able to identify and fix errors in code. This piece is essential at all stages of a project from initial design to testing to maintenance.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2T5tPkjRb61RAbqrAOKcdH","type":"Entry","createdAt":"2024-03-13T16:16:37.625Z","updatedAt":"2024-03-22T14:04:08.326Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":5,"revision":2,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionRivers"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","rivers":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5hI6zGmuVkiZ0HSZjw5ElU","type":"Entry","createdAt":"2024-03-13T16:16:37.711Z","updatedAt":"2024-10-09T15:26:03.504Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":28,"revision":9,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentRiver"}},"locale":"en-US"},"fields":{"title":"SEO River - interrupt - GitHub’s DevOps Solution","heading":"GitHub’s DevOps Solution","text":"Learn why 90% of the Fortune 100 use GitHub to build, scale, and deliver secure software.","media":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"7Rb5ZoUDOX41PpqAibLo9","type":"Asset","createdAt":"2022-11-07T10:15:15.233Z","updatedAt":"2024-03-22T14:04:07.436Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":16,"revision":5,"locale":"en-US"},"fields":{"title":"DevOps - Productivity pillar - Dark 1","description":"","file":{"url":"//images.ctfassets.net/wfutmusr1t3h/7Rb5ZoUDOX41PpqAibLo9/344247765e0571d768e511fe686cea98/Productivity-DarkMode-1.webp","details":{"size":407100,"image":{"width":2400,"height":1260}},"fileName":"Productivity-DarkMode-1.webp","contentType":"image/webp"}}},"align":"end","imageTextRatio":"50:50"}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"vtNUvHNoQj2fS2E2D7tTx","type":"Entry","createdAt":"2024-03-13T16:23:11.636Z","updatedAt":"2024-03-13T16:23:11.636Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-engineering/what-is-software-engineering Prose - Tools","sectionId":"tools","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"5MpVoZfEwY43Ve83SaYoLL","type":"Entry","createdAt":"2024-03-13T16:23:11.654Z","updatedAt":"2024-10-09T16:04:01.315Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":19,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-engineering/what-is-software-engineering Prose - Tools","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Common software engineering tools","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"There are many different tools and technologies used in software engineering, including:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Integrated development environments","nodeType":"text"},{"data":{},"marks":[],"value":": These apps provide a comprehensive environment for software development, including code editing, debugging, and testing.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Version control systems","nodeType":"text"},{"data":{},"marks":[],"value":": These software tools help software engineers to manage changes to source code over time.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Quality assurance and testing frameworks","nodeType":"text"},{"data":{},"marks":[],"value":": Software engineers use testing frameworks to help automate the testing of software applications and programs.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Project management tools","nodeType":"text"},{"data":{},"marks":[],"value":": These applications help software engineers manage development projects, including scheduling, resource allocation, and task tracking.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"\n","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2wOOHBtBrMY3XN159oPCui","type":"Entry","createdAt":"2024-03-13T16:23:11.725Z","updatedAt":"2024-03-13T16:23:11.725Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":3,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-engineering/what-is-software-engineering Prose - Career","sectionId":"career","prose":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"CRqQjtlbt8aIq93VcV00V","type":"Entry","createdAt":"2024-03-13T16:23:11.744Z","updatedAt":"2024-10-09T16:02:42.910Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":17,"revision":8,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentProse"}},"locale":"en-US"},"fields":{"internalTitle":"/software-engineering/what-is-software-engineering Prose - Career","text":{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"How to become a software engineer","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"There's no one set of software engineer requirements—instead, there are a variety of paths you can take to become a software engineer. Some of the most popular steps you can take are:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Going to college","nodeType":"text"},{"data":{},"marks":[],"value":": Many software engineers hold bachelor's degrees in software engineering or a related STEM field like computer science, math, or engineering.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Training to build new skills","nodeType":"text"},{"data":{},"marks":[],"value":": Software-focused courses and bootcamps are popular ways of learning software engineering skills without going to college full-time. Many of these courses can be taken online and over time, affording students the flexibility to fit learning into their lives.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Hands-on experience","nodeType":"text"},{"data":{},"marks":[],"value":": Software engineering requires practical experience to excel. Internships are one way of getting involved with the real day-to-day work of a software engineer. Another option is—if your current organization offers the opportunity—mentoring with in-house software engineers to lay the foundation for shifting your current career path.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Certifications","nodeType":"text"},{"data":{},"marks":[],"value":": Building on skill training, certifications indicate a level of proficiency achieved in a particular area of software engineering. Some organizations require specific software certifications on record as part of job applications. Certifications can be specific to a programming language, an engineering process, or a platform, for example:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"C++ Certified Professional Programmer.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Certified Software Development Professional.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Microsoft Certified: Azure Fundamentals.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"GitHub Advanced Security.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Career opportunities and salaries for software engineers","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"The salary and career opportunities for software engineers can vary depending on the specific job role, company, and location. According to ","nodeType":"text"},{"data":{"uri":"https://www.indeed.com/career/software-engineer/salaries"},"content":[{"data":{},"marks":[],"value":"Indeed.com","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":", the December 2023 average salary for a software engineer in the United States is $118,000 per year. That figure increases with experience—an American software engineer who's worked for more than 10 years could earn on average $148,000 per year.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Popular job titles for software engineers include:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Application developer","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Architect","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Project manager","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"System developer","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Tester","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"What is enterprise software engineering?","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Enterprise software engineering is the process of designing, developing, testing, and maintaining software applications and systems for large organizations. This involves working with complex software systems and integrating them with other systems and applications.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Large organizations need enterprise software engineers to design, build, test, and maintain systems that handle large tasks like inventory management, enterprise resource planning, digital marketing initiatives, and customer accounts.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"","nodeType":"text"},{"data":{"uri":"https://resources.github.com/enterprise/what-is-enterprise-application-development/"},"content":[{"data":{},"marks":[],"value":"Enterprise application development","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" differs in the skillset required and the scope of the work which can be larger and more complex than other software applications and systems. Engineers can enhance their skillset with a ","nodeType":"text"},{"data":{"uri":"https://resources.github.com/learn/pathways/"},"content":[{"data":{},"marks":[],"value":"software engineering enterprise development guide","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" to better approach enterprise projects.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"The future of software engineering","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"The future of software engineering is likely to be shaped by emerging technologies such as AI, machine learning, and the Internet of Things (IoT). These technologies are expected to revolutionize the way software is developed, tested, and maintained, and to create new opportunities for software engineers.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Many organizations are already using AI and machine learning to supplement some of the day-to-day tasks of software engineers, with the goal of freeing up their time to focus on high priority projects that require their skills and expertise.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"The ","nodeType":"text"},{"data":{"uri":"https://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm"},"content":[{"data":{},"marks":[],"value":"U.S. Bureau of Labor Statistics","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" expects demand for jobs related to software engineering to increase over the next decade. In particular, demand for software developers, quality assurance analysts, and testers is expected to grow by up to 25% through 2032.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}}}}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"14OUy8u0SbVQzotGhHTorL","type":"Entry","createdAt":"2024-03-13T16:23:11.830Z","updatedAt":"2024-10-09T18:16:17.143Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":21,"revision":10,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionFAQ"}},"locale":"en-US"},"fields":{"title":"/software-engineering/what-is-software-engineering FAQ","heading":"Frequently asked questions","faqBlocks":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3i7QLTcPrvW9kBs1fVb0im","type":"Entry","createdAt":"2024-03-13T16:23:12.032Z","updatedAt":"2024-03-13T16:23:12.032Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":7,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"primerComponentFAQBlock"}},"locale":"en-US"},"fields":{"title":"/software-engineering/what-is-software-engineering FAQ","questions":[]}}]}},{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"3uAdrN7Avut8xcR8pWieQv","type":"Entry","createdAt":"2024-03-13T16:23:12.474Z","updatedAt":"2024-03-13T16:23:12.474Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":2,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"sectionCards"}},"locale":"en-US"},"fields":{"title":"/software-engineering/what-is-software-engineering-lp Cards","cards":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2jJDCcLBW0aMcmMpZcbMFp","type":"Entry","createdAt":"2024-03-13T16:23:12.538Z","updatedAt":"2024-03-13T16:23:12.538Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":4,"revision":1,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"layoutComponentCards"}},"locale":"en-US"},"fields":{"title":"/software-engineering/what-is-software-engineering-lp Cards","cards":[]}}}}]}},"seo":{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"4F18jrhFHxrCl4wGMHab8z","type":"Entry","createdAt":"2024-01-12T19:21:26.742Z","updatedAt":"2024-05-07T16:36:29.464Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":16,"revision":7,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"seo"}},"locale":"en-US"},"fields":{"metaTitle":"What is software engineering?","metaDescription":"Learn about software engineering, including common roles and day-to-day tasks.","openGraphTitle":"What is software engineering?","openGraphDescription":"Learn about software engineering, including its definition and the role of a software engineer as well as engineering types, career requirements, and common job tasks."}},"topics":[{"metadata":{"tags":[],"concepts":[]},"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"wfutmusr1t3h"}},"id":"2rA4e4cxa38jUCur3Bhm8V","type":"Entry","createdAt":"2024-01-11T21:00:25.343Z","updatedAt":"2024-10-09T18:27:20.797Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":30,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"topic"}},"locale":"en-US"},"fields":{"slug":"software-development","label":"Software Development"}}]}}],"featureFlags":{"featureEnabledNewFormsService":false,"featureEnabledNewAppNavigation":true,"featureEnableSearch":false}},"__N_SSP":true},"page":"/topics/[slug]","query":{"slug":"software-development"},"buildId":"ZokmF09g2SkORXwoG0TZr","isFallback":false,"isExperimentalCompile":false,"gssp":true,"locale":"en-US","locales":["en-US","ja","pt-BR","es-419","ko-KR"],"defaultLocale":"en-US","scriptLoader":[]}</script> <div id="ghcc" style="position:sticky;bottom:0;z-index:99999"></div> <script>function gtElInit() {var lib = new google.translate.TranslateService();lib.translatePage('pl', 'ko', function () {});}</script> <script src="https://translate.google.com/translate_a/element.js?cb=gtElInit&hl=en-GB&client=wt" type="text/javascript"></script> </body> </html>