PageSourceSearch

https://riskfirst.org/assets/js/be1ae4f1.4d10da9a.js

js riskfirst.org collected 2026-09-25 22:10:52 UTC 7,515 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkrf_website=globalThis.webpackChunkrf_website||[]).push([[6674],{76807(e,t,o){o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"practices/Development-And-Coding/Tool-Adoption","title":"Tool Adoption","description":"Implementing and utilising specific tools in the development process.","source":"@site/docs/practices/Development-And-Coding/Tool-Adoption.md","sourceDirName":"practices/Development-And-Coding","slug":"/practices/Development-And-Coding/Tool-Adoption","permalink":"/practices/Development-And-Coding/Tool-Adoption","draft":false,"unlisted":false,"editUrl":"https://github.com/risk-first/website/blob/master/docs/practices/Development-And-Coding/Tool-Adoption.md","tags":[{"inline":false,"label":"Tool Adoption","permalink":"/tags/Tool-Adoption"},{"inline":false,"label":"Practice","permalink":"/tags/Practice"}],"version":"current","frontMatter":{"title":"Tool Adoption","description":"Implementing and utilising specific tools in the development process.","tags":["Tool Adoption","Practice"],"featured":{"class":"c","element":"<action>Use Tool</action>"},"practice":{"aka":["Tool Integration","Software Tools","Development Tools"],"mitigates":[{"tag":"Schedule Risk","reason":"Facilitates the use of specialized tools to improve development efficiency and quality."},{"tag":"Process Risk","reason":"Reduces the risk of manual errors by automating repetitive tasks."},{"tag":"Operational Risk","reason":"Enhances operational efficiency through the use of appropriate tools."}],"attendant":[{"tag":"Lock-In Risk","reason":"Creates dependencies on specific tools and their continued support."},{"tag":"Funding Risk","reason":"Can incur costs associated with acquiring and maintaining tools."},{"tag":"Complexity Risk","reason":"Integrating multiple tools can add complexity to the development process."},{"tag":"Lock-In Risk","reason":"Once tools become embedded in the process, they can be hard to change."}],"related":["../Planning-And-Management/Change-Management","../Development-And-Coding/Coding","../Deployment-And-Operations/Automation"]}},"sidebar":"tutorialSidebar","previous":{"title":"Standardisation","permalink":"/practices/Development-And-Coding/Standardisation"},"next":{"title":"Version Control","permalink":"/practices/Development-And-Coding/Version-Control"}}');var i=o(74848),s=o(28453);const a={title:"Tool Adoption",description:"Implementing and utilising specific tools in the development process.",tags:["Tool Adoption","Practice"],featured:{class:"c",element:"<action>Use Tool</action>"},practice:{aka:["Tool Integration","Software Tools","Development Tools"],mitigates:[{tag:"Schedule Risk",reason:"Facilitates the use of specialized tools to improve development efficiency and quality."},{tag:"Process Risk",reason:"Reduces the risk of manual errors by automating repetitive tasks."},{tag:"Operational Risk",reason:"Enhances operational efficiency through the use of appropriate tools."}],attendant:[{tag:"Lock-In Risk",reason:"Creates dependencies on specific tools and their continued support."},{tag:"Funding Risk",reason:"Can incur costs associated with acquiring and maintaining tools."},{tag:"Complexity Risk",reason:"Integrating multiple tools can add complexity to the development process."},{tag:"Lock-In Risk",reason:"Once tools become embedded in the process, they can be hard to change."}],related:["../Planning-And-Management/Change-Management","../Development-And-Coding/Coding","../Deployment-And-Operations/Automation"]}},r=void 0,l={},c=[{value:"Description",id:"description",level:2},{value:"Variations",id:"variations",level:2},{value:"Used By",id:"used-by",level:2}];function d(e){const t={a:"a",blockquote:"blockquote",em:"em",h2:"h2",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components},{MethodList:o,PracticeIntro:n}=t;return o||h("MethodList",!0),n||h("PracticeIntro",!0),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n,{details:a}),"\n",(0,i.jsx)(t.h2,{id:"description",children:"Description"}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsxs)(t.p,{children:['"Software tools are programs and utilities that help developers create, debug, maintain, or otherwise support software development." - ',(0,i.jsxs)(t.a,{href:"https://en.wikipedia.org/wiki/Software_tool",children:["Software tool, ",(0,i.jsx)(t.em,{children:"Wikipedia"})]})]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["Tool Adoption involves implementing and utilizing specific tools to enhance the development process. Unless a problem is ",(0,i.jsx)(t.em,{children:"specific to your circumstances"}),", it's often better to adopt proven tools rather than building from scratch. Tools are worth using if they offer a better risk return than not using them\u2014and some tools (compilers, type systems, garbage collection, build tools) offer such ",(0,i.jsx)(t.em,{children:"amazing"})," returns that not using them becomes unthinkable."]}),"\n",(0,i.jsxs)(t.p,{children:["However, picking new tools should be done ",(0,i.jsx)(t.strong,{children:"carefully"}),": you may be stuck with your choices for some time. See ",(0,i.jsx)(t.a,{href:"/risks/On-Software-Dependencies",children:"On Software Dependencies"})," for guidance."]}),"\n",(0,i.jsx)(t.h2,{id:"variations",children:"Variations"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:(0,i.jsx)(t.strong,{children:"Tool Category"})}),(0,i.jsx)(t.th,{children:(0,i.jsx)(t.strong,{children:"Description"})}),(0,i.jsx)(t.th,{children:(0,i.jsx)(t.strong,{children:"Reference"})})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"IDEs"})}),(0,i.jsx)(t.td,{children:"Integrated Development Environments for writing, debugging, and testing."}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Integrated_development_environment",children:"IDE, Wikipedia"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"Build Tools"})}),(0,i.jsx)(t.td,{children:"Tools for compiling, packaging, and managing dependencies."}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Build_automation",children:"Build Automation, Wikipedia"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"Collaboration Tools"})}),(0,i.jsx)(t.td,{children:"Tools for team communication and project tracking."}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Collaborative_software",children:"Collaborative Software, Wiki
1pedia"})})]})]})]}),"\n",(0,i.jsx)(t.h2,{id:"used-by",children:"Used By"}),"\n",(0,i.jsx)(o,{tag:"Tool Adoption"})]})}function p(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}function h(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},28453(e,t,o){o.d(t,{R:()=>a,x:()=>r});var n=o(96540);const i={},s=n.createContext(i);function a(e){const t=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.