diff --git a/radar.csv b/radar.csv
index 91444eb..f95fe89 100644
--- a/radar.csv
+++ b/radar.csv
@@ -1,158 +1,158 @@
name,ring,quadrant,isNew,description
-Daily standups,adopt,techniques,true,"Having a daily standup each day helps us prepare to have the best possible day."
-Pairing,adopt,techniques,true,"Pairing helps collaboration and knowledge transfer within the team."
-Team Exploratory Testing Sessions,adopt,techniques,true,"Team exploratory testing helps us gain deep feedback on development work."
-Lightweight Architecure Decision Records,adopt,techniques,true,"Much documentation can be replaced with highly readable code and tests. In a world of evolutionary architecture, however, it's important to record certain design decisions for the benefit of future team members as well as for external oversight. Lightweight Architecture Decision Records is a technique for capturing important architectural decisions along with their context and consequences. We store these details in source control, instead of a wiki or website, as then they can provide a record that remains in sync with the code itself."
-Pull Request Templates,adopt,techniques,true,"PR templates can pre-populate a pull request with a list of things to check before the PR is merged."
-Mobbing,explore,techniques,true,"Mobbing is a software development approach where the whole team works on the same thing, at the same time, in the same space, and at the same computer. The SQL Prompt team are exploring mobbing."
-Domain-driven Design,explore,techniques,true,"Domain-driven Design (DDD) is a development approach that deeply values the domain model and connects it to the implementation. DDD gives us the opportunity to keep ourselves honest about striving for persistence ignorance by abstrating the consistency boundaries through proper domain modeling. We are finding it easy to shape the discussions around business language and structure the codebase around the well-established DDD concepts such as Aggregate, Command, Event, etc. There is a also great deal of resource and community support behind this approach which makes it easy to acquire the knowladge. Being explored by The Spiders."
-Isolated installer tests,adopt,techniques,true,"Automated tests that install in an isolated VM gives confidence that build is actually releasable. Ideally, both a clean install, and an upgrade install from the previous release, to ensure the installer works for both new and existing users."
-C# 7,adopt,languages and frameworks,true,"We build our software using C#. We try to keep up to date with the latest version of C# possible as new language features help us write simpler code."
-C++,endure,languages and frameworks,true,"C++ was the right tool for the job in the past."
-Delphi,endure,languages and frameworks,true,"SQL Backup engine is written in Delphi."
-VB.Net,retire,languages and frameworks,true,"There is no reason to prefer VB.Net over C#."
-JavaScript (pre ES6),retire,languages and frameworks,true,"We don't use older versions of JavaScript. ES6 features like promises, modules and classes significantly improve the JavaScript experience, and tools like BabelJS allow us to adopt this with confidence."
-JavaScript (ES6+),adopt,languages and frameworks,true,"We use JavaScript for rapid prototyping of ideas because it allows us to go faster. In code bases where we already have significant JavaScript we will continue to use modern JavaScript."
-TypeScript,adopt,languages and frameworks,true,"TypeScript provides an advanced type system on top of JavaScript. We have a preference for TypeScript in production code because the optional type safety can help and improved tool support."
-Autofac,adopt,languages and frameworks,true,"Autofac is an Inversion of Control container for .NET Core, ASP.NET Core, .NET 4.5.1+ and our preferred IoC container choice. Autofac allows you to register components and express dependencies through its flexible module system and simple extension points."
-Ninject,endure,languages and frameworks,true,"Ninject is a dependency injector for .NET applications. However, Autofac is our preferred IoC container."
-NUnit 2,endure,languages and frameworks,true,"NUnit is our default framework for writing unit and integration tests. NUnit 2 is working well in most projects that use it, but consider upgrading to NUnit 3 for newer features."
-NUnit 3,adopt,languages and frameworks,true,"NUnit is our default framework for writing unit and integration tests. We use NUnit 3 by default for new projects."
-Pester,adopt,languages and frameworks,true,"Pester is our default framework for writing tests in PowerShell. We use Pester by default for new PowerShell tests."
-Balsamiq,adopt,tools,true,"Balsamiq gives us the ability to create quick low-fidelity wireframes to describe workflows."
-Git,adopt,tools,true,"Git is our defacto VCS, and all repositories are stored on GitHub."
-OneDrive,adopt,tools,true,"OneDrive is our default choice for storing Office documents to share within the organization. In the last three years, Microsoft have done a lot of work on OneDrive and the associated sync clients and have closed the gap on their competitors. The sync client is very stable and doesn’t contain the restrictions that it did before."
-Raygun error reporting,adopt,tools,true,"Raygun allows loosely-coupled error reporting to a web endpoint. Raygun offers other capabilities too, but we only use the error reporting. Ideally our choice of error provider would be a server-side decision, but RedGate.Usage.Client doesn't currently support error reporting"
-Google Drive,retire,tools,true,"We don’t have corporate Google accounts and it doesn’t make sense to subscribe to both GSuite and Office 365, both for cost reasons and from an information management point of view. The fact that we don’t have corporate accounts means data can’t be removed from Google accounts when someone leaves the company (as we don’t own the account), so we shouldn’t be storing any personal information (such as customer data) in Google Drive."
-SmartAssembly,retire,tools,true,"SmartAssembly obfuscation, error and usage reporting becomes tightly-coupled to products and slows down builds."
-Windows 7+/2008R2+,adopt,platforms,true,"Our default supported operating system is Windows. If Microsoft continues to support this as part of their default support package we continue to support running our applications on that OS. See https://support.microsoft.com/en-us/help/13853/windows-lifecycle-fact-sheet"
-Chrome,adopt,platforms,true,"Chrome is Google's evergreen browser. We support it by default."
-Firefox,adopt,platforms,true,"Firefox is Mozilla's evergreen browser. We support it by default."
-Edge,adopt,platforms,true,"Edge is Microsoft's evergreen browser. We support it by default."
-IE 11,adopt,platforms,true,"IE 11 is the default browser on Windows 10 and makes up approximately 10% of the visits to Redgate.com. We support it by default."
-IE 10 and under,retire,platforms,true,"We do not support IE10 and under."
-Raven DB,retire,tools,true,"We previously used Raven DB in DLM Dashboard but our experience was not positive."
-NSubsitute,adopt,languages and frameworks,true,"NSubstitute is our default mocking library of choice. We feel it's got less setup cost than Moq and requires fewer .Object calls."
-Moq,endure,languages and frameworks,true,"Moq is a great framework for mocking, but we prefer NSubstitute's simplicity. We see no benefit in having a common mocking framework across solutions."
-Fakes,explore,techniques,true,"We've experimented using Fakes in the Redgate Usage Client - fakes used in the test can reduce the amount of mocking is required and can make the tests simpler."
-Rhino Mocks,retire,languages and frameworks,true,"Rhino Mocks is no longer actively maintained, nor does it support .NET Core / .NET Standard."
-Wix 3,adopt,tools,true,"Windows Installer XML Toolset 3 (WiX), is a free software toolset that builds Windows Installer packages from XML. We default to Wix v3."
-Wix 2,retire,tools,true,"Windows Installer XML Toolset 2 (WiX), is a free software toolset that builds Windows Installer packages from XML. We default to Wix v3."
-Inno Setup,endure,tools,true,"SQL Backup uses divergent installer technology."
-RedGate.Usage.Client,adopt,tools,true,"Redgate's standard tool for Product and Feature usage reporting."
-AppInsights,adopt,tools,true,"Microsoft's platform for data analysis."
-MixPanel,endure,tools,true,"Tool for presenting analytic data. Now superseded by AppInsights. We will review whether to retire this when Application Insights has a configurable retention period."
-Google Analytics,retire,tools,true,"Tool for presenting analytic data. Now superseded by AppInsights."
-SonarQube,adopt,tools,true,"Sonarqube provides automated code review, highlighting quality issues in changing code. This feedback is best surfaced through automated PR comments."
-RedGate.Build,adopt,tools,true,"Redgate's standardised, scripted infrastructure for building products. Based on build-script-templates."
-Custom build scripts,endure,tools,true,"Builds scripts that diverge from RedGate.Build. These were useful when first made, but we should move to sandard RedGate.Build when possible."
-Build magic,retire,tools,true,"Legacy build tooling, now to be deprecated in favour of RedGate.Build."
-IL weaving,retire,tools,true,"Byte weaving magic is not desirable as it adds compile time complexity that is often not visible to developers. Please note that this does not incorporate static linker tools such as ILMerge as they can still be useful to make some components more reusable by internalising a subset of their dependencies."
-Fody,retire,tools,true,"Tool for IL weaving. No longer endorsed."
-Vagrant,adopt,tools,true,"Vagrant is an open-source software product for building and maintaining portable virtual software development environments. We use Vagrant with Puppet to provision test environments and internal infrastructure."
-Puppet,adopt,tools,true,"Puppet is an open-source software configuration management tool. We use Vagrant with Puppet to provision test environments and internal infrastructure."
-DevCloud,adopt,tools,true,"DevCloud is an internal platform for hosting short-lived virtual machines."
-Long-lived Virtual Machines,retire,tools,true,"We avoid using long-lived virtual machines, especially those that cannotbe trivially rebuilt on demand."
-Docker,explore,tools,true,"Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. Current being explored by Whitesharks."
-Kubernetes,explore,tools,true,"Kubernetes is an open-source container-orchestration system for automating deployment, scaling and management of containerized applications. Currently being explored by Whitesharks."
-Lucidchart,explore,tools,true,"Diagramming tool that allows drawing architectural diagrams in a team environment. Also allows integration with OneDrive, Confluence, etc. Currently being explored by The Spiders team."
-draw.io,explore,tools,true,"Simple Open source diagramming tool that allows drawing architectural diagrams. Also allows integration with OneDrive, Jira, Confluence, etc. Currently being explored by the Prompt team (for C4 diagrams)."
-CEF,retire,languages and frameworks,true,"Chromium Embedded framework (CEF) is an open source framework for embedding a web browser engine inside other tools. This was explored, but proved unsuccessful for Redgate."
-Winforms,endure,languages and frameworks,true,"Winforms is a legacy UI library in the .NET Framework. Maybe Redgate products already use Winforms, but we prefer other tools for new development."
-WPF,adopt,languages and frameworks,true,"Windows Presentation Foundation (WPF) s a graphical subsystem provided with the .NET Framework. It's one of our prefered desktop UI technologies, especially when embedding products inside Visual Studio or SSMS."
-Electron,adopt,languages and frameworks,true,"Electron is an open-source desktop UI framework. It's developed/maintained by GitHub, and used by Microsoft for VS Code. It's one of our prefered desktop UI technologies, especially for standalone desktop tools."
-Check for Updates (CfU),endure,tools,true,"Redgate's established mechanism for distributing product upgrades. The update process is manual and intrusive for users, leading to slow version uptake and version fragmentation in production. We're keen to explore alternatives."
-"Release Management: User-controlled background updates",explore,techniques,true,"Allowing a user to kick off a background upgrade of products, from the UI. Being explored by ICloneable<Sheep> on SQL Clone."
-Log4Net,endure,languages and frameworks,true,"Log4Net is no longer actively maintained. We've also had problems with our use of it by having a single static root. We don't recommend this for new applications, but can tolerate existing usages."
-SeriLog,adopt,languages and frameworks,true,"Serilog is our preferred logging framework. It's well maintained, supports structured event data and is portable between .NET platforms."
-Oracle database,explore,platforms,true,"Oracle database is a strong rival to SQL Server. Redgate has legacy tools for this suite (Oracle Compare & Source Control), and the space is under ongoing investigation by Foundry (with support from TKomp)."
-SQL Server on Linux,explore,platforms,true,"SQL Server has had growing support on Linux for some time, but Linux is not a platform that Redgate actively targets. Current windows-based tools support connecting to a SSoL database, and further value is being explored in Foundry."
-Azure DB Studio,explore,platforms,true,"Azure DB Studio is Microsoft's aspirational replacement for SSMS. Potential Redgate tooling support is being investigated by Foundry."
-SQL Change Automation,explore,tools,true,"Redgate SQL Change Automation is our commerical offering to help people manage the state of databases as part of application deployment. We should investigate if/how to use our own tools as part of our development activities. Versioning Teams to investigate this by looking at how CORE manage databases."
-React,adopt,languages and frameworks,true,"React is our web framework of choice. It's popular, it's easy to understand and it's got great tooling support."
-Honeycomb Web Toolkit,adopt,languages and frameworks,true,"Honeycomb is our design system and the web toolkit makes adopting this in your own projects easy."
-SignalR,adopt,languages and frameworks,true,"SignalR allows server code to send asynchronous notifications to client-side web applications."
-Webpack,adopt,languages and frameworks,true,"Webpack is a module bundler. It's main purpose is to bundle JavaScript files for usage in a browser."
-Babel,adopt,languages and frameworks,true,"Babel is a JavaScript compiler allowing you to confidently use the latest JavaScript features in all browsers."
-Enzyme,adopt,languages and frameworks,true,"Enzyme is a JavaScript Testing utility for React that makes it easier to assert, manipulate and traverse your React Components' output."
-Redux,adopt,languages and frameworks,true,"Redux is a predictable state container for JavaScript apps. We recommend this when state management becomes complicated with React alone."
-Knockout.js,endure,languages and frameworks,true,"Knockout is a minimilast library for binding data to web views. We prefer React now though existing usages of knockout.js are fine."
-JQuery,retire,languages and frameworks,true,"JQuery has had it's time. Modern browsers and advances in JavaScript means we don't require it any more."
-"Release Management: Manual releases",retire,techniques,true,"A release that involves someone manually going through a whole heap of steps across different systems is bad."
-"Release Management: Release scripts",adopt,techniques,true,"Using a single powershell script (basic-release.ps1 or using RG.Release) to manage your entire release process is a good trade off between saving effort, and security and accountability for each release."
-Automated releases via Octopus Deploy,explore,techniques,true,"Octopus is more trustworthy than TeamCity for automating releases (via @rmc47), so teams wishing to try this should first move their release process to Octopus. SQL Monitor currently uses Octopus for deploying to monitor.red-gate.com."
-Trello,adopt,tools,true,"Some teams use Trello for issue management and digital taskboards. Setup and administration are cheap, but issue management capabilities are limited."
-Jira,adopt,tools,true,"Some teams use Jira for issue management and digital taskboards. The setup and administration costs are higher than other tools, but issue management capabilities are rich."
-GitHub Issues,adopt,tools,true,"Some teams use GitHub issues for issue management and digital taskboards. Setup and administration are slightly costlier than Trello, while issue management capabilties are limited. Integration with source code and repositories can be valuable, but is also complex for multi-repository projects."
-Physical whiteboards,adopt,tools,true,"Some teams use physical whiteboards for issue management and a physical taskboard. Costs are variable dependent on the setup and how the tool is used but can be minimal. Issue management and audit capabiltiies are minimal."
-".NET Framework 4.6.1",adopt,languages and frameworks,true,"We continue to build our products using the .Net framework, but libraries should target .Net Standard."
-".NET Framework 4.7.1",explore,languages and frameworks,true,"A newer version of .NET Framework, which supports .NET Standard better than previous versions. Currently being explored by the Masketeers in Figleaf."
-".NET Standard 2.0",adopt,languages and frameworks,true,"Microsoft has delivered a cross-platform future. New applications should be built to conform to .NET Standard by default."
-".NET Core 2.0",adopt,languages and frameworks,true,"Microsoft has delivered a cross-platform future. New applications should be built with .NET Core by default whenever possible. .NET Core doesn't yet support WPF/Winforms applications, but we're hopeful for support in .NET Core 3."
-"SSMS 2012 and above",adopt,platforms,true,"SQL Server Management Studio 2012 and above are supported my Microsoft, so we should support them in our tools."
-"SQL Server 2008 and above",adopt,platforms,true,"SQL Server 2008 and above are supported by Microsoft, so we should support them in our tools."
-"Retrospectives",adopt,techniques,true,"Regular retrospectives help us gain feedback to improve our development teams"
-"Redgate Installer",adopt,tools,true,"Redgate Installer is our standard installer which we should use in preference to other installer technologies because it allows us to ship products together, provides a consistent experience, and integrates with our release, licensing and update systems."
-"TeamCity",adopt,tools,true,"We build all of our projects on TeamCity because it's simpler to use one CI system across the company. Our use of build scripts rather than complex TeamCity configuration reduces coupling of our builds to TeamCity itself."
-"Prettier",adopt,tools,true,"Prettier automates consistent code styling for web languages by providing as few formatting options as possible."
-"RedGate.Legacy.*",endure,languages and frameworks,true,"We have a collection of old technologies in the 'RedGate.Legacy' packages, as the name suggests these are old and should not be adopted. But moving away from them can be expensive so we don't think its worth the cost."
-"Dogfooding",adopt,techniques,true,"As a general principle we should use our own tools to solve problems. This process is known as dog-fooding. We should do this even if we feel our products don't solve our own problems perfectly because doing so is the best way to learn how to improve our products."
-"Java",endure,languages and frameworks,true,"Typically we don't use Java, but we will when necessary. Examples include the SQL Change Automation plugins for TeamCity, Bamboo and Jenkins."
-"PowerShell 5",adopt,languages and frameworks,true,"For internal automation we use PowerShell 5."
-"PowerShell 3+","adopt",platforms,true,"When we are writing cmdlets for external use we target PowerShell 3."
-"PowerShell Core","explore",languages and frameworks,true,"The Figleaf team are in a position to explore PowerShell Core (the cross-platform version of PowerShell)."
-"JSON",adopt,tools,true,"For storing user information, such as settings we want to use a textual format. The choice boils down to JSON or XML. We prefer JSON because it's less verbose."
-"XML",endure,tools,true,"For storing user information we used to use XML. We'll continue to use that, but avoid it in the future because it's very verbose. We perceive the cost of migration away to be high enough for this to be Endure, rather than Retire."
-"Registry",endure,tools,true,"We avoid storing settings in the Registry as it's Windows specific. However, it does make it easier for system administrators to apply group policy so we should bear this in mind when choosing setting locations."
-"Technical spikes",adopt,techniques,true,"Timeboxed prototype/proof-of-concept for some feature or technical implementation detail. Usually done with minimal quality (since they're never intended to be real code), implemented on a branch and then thrown away."
-"Feature flags",adopt,techniques,true,"A mechanism to prevent code in master from affecting the way the product behaves. There are lots of different types of flags/toggles: they might be set at compile or run time; they might be purely internal or visible to the user, and so on."
-"edge.js",explore,languages and frameworks,true,"edge.js is a library which allows .NET code to be run from node and vice-versa. It marshals object references and method calls across the .NET/node boundary. The Figleaf team is currently exploring this."
-"Scrum",adopt,techniques,true,"Agile framework focused on time-boxed, iterative plannning. We default to this approach to encourage iterative delivery in teams and a simple process to follow."
-"Kanban",explore,techniques,true,"Flow-based agile framework the emphasises limiting work-in-progress (WIP). Historically adopted by teams who find time-boxed iterations restrictive, or need to work in a more reactive manner. Currently being explored by ICloneable<Sheep>."
-"MoSCoW",retire,techniques,true,"MoSCoW stands for Must, Should, Could and Wont. This prioritisation technique requires the majority of features / stories to be identified up front - this does not fit well with our exploratory approach to finding customer needs and drilling in based on our riskiest assumption. It also has the effect of creating fixed view of what will be delivered and can result in teams delivering work that is not valued by customers."
-"master is always releasable",adopt,techniques,true,"'master as always releasable' is an ethos teams will follow and constantly strive to make true. We should have enough confidence in the product and automated tests that anyone can press the release button at any time. We release whenever we have something to release. We should act like master is always releasable at any time, and when we discover that it isn't/wasn't releasable, reflect on why and add the appropriate checks for next time."
-"Zero bugs policy",explore,techniques,true,"A zero-bug policy does not mean bug-free code production; it means striving to eradicate all known bugs. ICloneable<Sheep> will be exploring this with support from the Quality Coaches."
-"Karma",adopt,languages and frameworks,true,"Karma is a test runner for JavaScript which spawns a web server that executes source code against test code for each of the browsers connected."
-"jasmine",explore,languages and frameworks,true,"Jasmine is a BDD framework for testing JavaScript code. The Monitor team are using it through Karma."
-"nightwatch",explore,languages and frameworks,true,"Nightwatch is an end-to-end testing solution for browser-based apps using WebDriver. The ICloneable<Sheep> team is exploring this."
-"jest",adopt,languages and frameworks,true,"Jest is a way to test all JavaScript code that's used by Facebook. COREDev have a non-trivial amount of tests over multiple projects that use jest."
-"spectron",explore,languages and frameworks,true,"spectron is a tool to allow you to easily test your Electron apps using ChromeDriver/WebDrive IO. Figleaf is exploring this."
-"mocha",retire,languages and frameworks,true,"mocha is a feature rich test framework running on Node/Browser. We believe Jasmine/Jest are better alternatives."
-"chai",endure,languages and frameworks,true,"chai is a BDD/TDD assertion library being explored by the ICloneable<Sheep> team."
-"Definition of Done",explore,techniques,true,"Scrum says that 'when ... is described as 'Done', everyone must understand what 'Done' means'. By agreeing up front what constitutes 'done' for a feature / story it can highlight any misunderstandings over what is expected from the story. The definition can also help ensure basic quality and ancillary tasks are completed e.g. documentation is updated. Tested across all operating systems / database versions etc. The Versioning teams will be trying to do this."
-"Ranorex",endure,languages and frameworks,true,"Ranorex is a commercial GUI test automation framework that was used for various Redgate products in the past. It only remains in-use with SQL Source Control, and should not be adopted any further."
-"UIAutomation/System.Windows.Automation",endure,languages and frameworks,true,"UI Automation is an accessibility framework, while System.Windows.Automation supports automation of WPF clients. Microsoft recommend use of Appium and WinAppDriver rather than building your own automation framework with these tools."
-"Coded UI",retire,languages and frameworks,true,"Coded UI is a GUI test automation framework presented in Visual Studio. Coded UI Test for automated UI-driven functional testing is deprecated, and will not be available beyond Visual Studio 2019. Microsoft recommend using Appium with WinAppDriver instead."
-"Appium with WinAppDriver",adopt,languages and frameworks,true,"WinAppDriver is a service to support Selenium-like UI Test Automation on Windows Applications. It is Microsoft's recommendation for automated UI-driven functional testing for Windows applications."
-"DotNetZip",retire,languages and frameworks,true,"DotNetZip is an opensource .NET library for handling ZIP files. We prefer the capabilities provided by the .Net framework in System.IO.Compression."
-"7Zip",endure,languages and frameworks,true,"7Zip is an open source file archiver and compression tool. We prefer the capabilities provided by the .Net framework in System.IO.Compression."
-"System.IO.Compression",adopt,languages and frameworks,true,"System.IO.Compression is the .Net Framework/Core provided set of compression and decompression services for streams."
-"ReSpeller using AmE",adopt,tools,true,"ReSpeller is a spell-checking engine integrated with ReSharper. We use American English to be consistent with .NET Framework and other 3rd party libraries. Additional words are stored in a solution team-shared settings file (*.sln.DotSettings)."
-"Time-based estimation",endure,techniques,true,"We've found time-based estimation to be costly, difficult to be accurate with, and difficult to apply to non-repeatable tasks. Broad brush estimates, such as 'few days', 'couple of weeks', 'month or more', can be useful to set expectations with non technical people."
-"Kaizen Rota",explore,techniques,true,"Dedicated time to perform Kaizen/Technical Direction activities whilst working with the Coaches. Currently being trialed by the SQL Crackers / Hammerheads teams working on SQL Monitor."
-"User Stories",explore,techniques,true,"User stories are short, simple description of a feature as described from the perspective of end users. They typically follow a simple template, As a X, I want Y to achieve Z. Both Versioning & Automation and the Prompt are using this approach."
-"Open API specification",adopt,techniques,true,"Our public web-based APIs are exposed through the Open API specification interface as being the description for REST APIs, which allows both humans and computers to discover and understand the capabilities of a service without requiring access to source code, additional documentation, or inspection of network traffic."
-"NSwag",explore,languages and frameworks,true,"An implementation of the Open API specification currently being explored by the Data Catalog team."
-"Swashbuckle",explore,languages and frameworks,true,"An implementation of the Open API specification currently being explored by the Versioning teams for providing the out-of-process APIs."
-"Value Stream Mapping",explore,techniques,true,"Value Stream mapping is a technique to visualize the steps needed in a process. By doing so we can use a systems thinking mindset to look for optimizations and perform small experiments to learn what to optimize. The Oracle/V&A teams will look at exploring this technique."
-"Automated Code Style Settings",adopt,techniques,true,"Each team should automate their coding style using a team shared R# settings file."
-"Stop the line when master is red",adopt,techniques,true,"A red build of the master branch should be teams' top priority. When it happens, all the work in a team halts and team members agree who is fixing it. This ensures that the problem is visible and it's the whole team's responsibility to solve it. This approach also encourages teams to fix flaky tests."
-"Vertical slicing",adopt,techniques,true,"We aim to deliver work in small, vertical slices. This enables regular delivery of working software, faster feedback from early adopters, and gradual learning as we incrementally deliver richer capabiltiies."
-"Iteration planning",adopt,techniques,true,"We plan work in iterations to align on a short term goal. This allows teams to build a shared understanding of the work, discuss necessary tasks, and identify dependencies between those tasks."
-"Frequent update release channels",explore,techniques,true,"Allowing users to opt-in to more regular product updates, allowing quicker feedback for Redgate, while maintaining a slower-cadence release channel for other users. This is being explored with SQL Source Control and SQL Compare."
-"Single release channel",explore,techniques,true,"Notifying all licensed users of all product updates, allowing users granualar control of their environments while enabling potentially wider-ranging feedback for Redgate. This is being explored with most products."
-"Private builds",retire,techniques,true,"Shipping a release that isn't publically available to a user, typically for feedback. We prefer other delivery mechanisms for getting this feedback, rather than accepting version fragmentation."
-"Beta/Early Access programmmes",explore,techniques,true,"Working with a self-selected group of users to get feedback on product development. This has been explored in the past, but may not be under active investigation now."
-"Concierge users",explore,techniques,true,"Close feedback loops with selected customers to give rich feedback on product development. This is being explored with SQL Change Automation in SSMS."
-"Outcome-focussed OKRs",adopt,techniques,true,"We believe Outcome-focussed OKRs are a really important piece of the puzzle to set teams up with clarity of purpose and linking work to a higher aim (important aspects of team motivation and engagement as called out in Dan Pink's Drive). More details about how we currently frame OKRs can be found here."
-"RESTful APIs",adopt,techniques,true,"RESTful APIs are an architectural style that defines a set of constraints for creating web services. We follow the Microsoft guidelines on RESTful services."
-"Gamestorming / Liberating structures",adopt,techniques,true,"The ideation, decision-making and exploration games/activities described in Gamestorming and Liberating Structures have proved to be very successful ways to help teams and wider groups engage with difficult and thoughtful topics. They balance different styles of input (more/less gregarious people, more confident/reticent people, etc) and help groups come up with better, more robust ideas than any individual could on their own."
-"Theory of Constraints",explore,techniques,true,"The Theory of Constraints is a method for identifying the most important limiting factor (i.e. constraint) that stands in the way of achieving a goal and then systematically improving that constraint until it is no longer the limiting factor. In manufacturing, the constraint is often referred to as a bottleneck. The application of this method in a software dev environment has a demonstrable benefit to task lead times, reduction in waste and, basically, deliver the most valuable stuff to users quicker. Dev Leads team will be running workshops (and, we hope, a book club) to help teams explore how applying the ToC can help them deliver the most valuable stuff to users quicker."
-"Story Points",retire,techniques,true,"Story Points are an example of abstract estimation. They get conflated to mean stuff they don't mean and don't really help estimation when we focus on outcomes/agility. We prefer to focus on making pieces of work/value really small, with technqiues like 'Vertical slicing'."
-"Impact Mapping",explore,techniques,true,"Impact Mapping is a planning technique. It focuses on desired impacts and outcomes over the detail of how those outcomes will be achieved. This is being investigated by the Oracle team."
-"ASP.NET Core",adopt,languages and frameworks,true,"ASP.NET Core should be the default for new web-based projects."
-"ASP.NET 4.x",retire,languages and frameworks,true,"ASP.NET 4.x and below should be retired (slowly as it's a major undertaking). New development is on ASP.NET Core, and future versions of ASP.NET will only support .NET Core so it makes sense to retire this in products we expect to stick around."
-"Chocolatey",adopt,tools,true,"Chocolatey is a package manager for Windows. We use this internally to install tools such as Vagrant and Virtual Box and as part of our test infrastructure."
-"OWASP Dependency-Check",explore,tools,true,"Dependency-Check is a Software Composition Analysis (SCA) tool that attempts to detect publicly disclosed vulnerabilities contained within a project's dependencies. It's value to Redgate is being explored by the coaches."
-"FluentAssertions",adopt,languages and frameworks,true,"FluentAssertions is an assertion framework that allow you to more naturally specify the expected outcome of a TDD or BDD-style unit tests. Much more readable than Assert.That()."
-"Shoudly",endure,languages and frameworks,true,"Shouldly is an assertion framework similar to FluentAssertions. We decided to adopt the latter."
+Daily standups,adopt,techniques,false,"Having a daily standup each day helps us prepare to have the best possible day."
+Pairing,adopt,techniques,false,"Pairing helps collaboration and knowledge transfer within the team."
+Team Exploratory Testing Sessions,adopt,techniques,false,"Team exploratory testing helps us gain deep feedback on development work."
+Lightweight Architecure Decision Records,adopt,techniques,false,"Much documentation can be replaced with highly readable code and tests. In a world of evolutionary architecture, however, it's important to record certain design decisions for the benefit of future team members as well as for external oversight. Lightweight Architecture Decision Records is a technique for capturing important architectural decisions along with their context and consequences. We store these details in source control, instead of a wiki or website, as then they can provide a record that remains in sync with the code itself."
+Pull Request Templates,adopt,techniques,false,"PR templates can pre-populate a pull request with a list of things to check before the PR is merged."
+Mobbing,explore,techniques,false,"Mobbing is a software development approach where the whole team works on the same thing, at the same time, in the same space, and at the same computer. The SQL Prompt team are exploring mobbing."
+Domain-driven Design,explore,techniques,false,"Domain-driven Design (DDD) is a development approach that deeply values the domain model and connects it to the implementation. DDD gives us the opportunity to keep ourselves honest about striving for persistence ignorance by abstrating the consistency boundaries through proper domain modeling. We are finding it easy to shape the discussions around business language and structure the codebase around the well-established DDD concepts such as Aggregate, Command, Event, etc. There is a also great deal of resource and community support behind this approach which makes it easy to acquire the knowladge. Being explored by The Spiders."
+Isolated installer tests,adopt,techniques,false,"Automated tests that install in an isolated VM gives confidence that build is actually releasable. Ideally, both a clean install, and an upgrade install from the previous release, to ensure the installer works for both new and existing users."
+C# 7,adopt,languages and frameworks,false,"We build our software using C#. We try to keep up to date with the latest version of C# possible as new language features help us write simpler code."
+C++,endure,languages and frameworks,false,"C++ was the right tool for the job in the past."
+Delphi,endure,languages and frameworks,false,"SQL Backup engine is written in Delphi."
+VB.Net,retire,languages and frameworks,false,"There is no reason to prefer VB.Net over C#."
+JavaScript (pre ES6),retire,languages and frameworks,false,"We don't use older versions of JavaScript. ES6 features like promises, modules and classes significantly improve the JavaScript experience, and tools like BabelJS allow us to adopt this with confidence."
+JavaScript (ES6+),adopt,languages and frameworks,false,"We use JavaScript for rapid prototyping of ideas because it allows us to go faster. In code bases where we already have significant JavaScript we will continue to use modern JavaScript."
+TypeScript,adopt,languages and frameworks,false,"TypeScript provides an advanced type system on top of JavaScript. We have a preference for TypeScript in production code because the optional type safety can help and improved tool support."
+Autofac,adopt,languages and frameworks,false,"Autofac is an Inversion of Control container for .NET Core, ASP.NET Core, .NET 4.5.1+ and our preferred IoC container choice. Autofac allows you to register components and express dependencies through its flexible module system and simple extension points."
+Ninject,endure,languages and frameworks,false,"Ninject is a dependency injector for .NET applications. However, Autofac is our preferred IoC container."
+NUnit 2,endure,languages and frameworks,false,"NUnit is our default framework for writing unit and integration tests. NUnit 2 is working well in most projects that use it, but consider upgrading to NUnit 3 for newer features."
+NUnit 3,adopt,languages and frameworks,false,"NUnit is our default framework for writing unit and integration tests. We use NUnit 3 by default for new projects."
+Pester,adopt,languages and frameworks,false,"Pester is our default framework for writing tests in PowerShell. We use Pester by default for new PowerShell tests."
+Balsamiq,adopt,tools,false,"Balsamiq gives us the ability to create quick low-fidelity wireframes to describe workflows."
+Git,adopt,tools,false,"Git is our defacto VCS, and all repositories are stored on GitHub."
+OneDrive,adopt,tools,false,"OneDrive is our default choice for storing Office documents to share within the organization. In the last three years, Microsoft have done a lot of work on OneDrive and the associated sync clients and have closed the gap on their competitors. The sync client is very stable and doesn’t contain the restrictions that it did before."
+Raygun error reporting,adopt,tools,false,"Raygun allows loosely-coupled error reporting to a web endpoint. Raygun offers other capabilities too, but we only use the error reporting. Ideally our choice of error provider would be a server-side decision, but RedGate.Usage.Client doesn't currently support error reporting"
+Google Drive,retire,tools,false,"We don’t have corporate Google accounts and it doesn’t make sense to subscribe to both GSuite and Office 365, both for cost reasons and from an information management point of view. The fact that we don’t have corporate accounts means data can’t be removed from Google accounts when someone leaves the company (as we don’t own the account), so we shouldn’t be storing any personal information (such as customer data) in Google Drive."
+SmartAssembly,retire,tools,false,"SmartAssembly obfuscation, error and usage reporting becomes tightly-coupled to products and slows down builds."
+Windows 7+/2008R2+,adopt,platforms,false,"Our default supported operating system is Windows. If Microsoft continues to support this as part of their default support package we continue to support running our applications on that OS. See https://support.microsoft.com/en-us/help/13853/windows-lifecycle-fact-sheet"
+Chrome,adopt,platforms,false,"Chrome is Google's evergreen browser. We support it by default."
+Firefox,adopt,platforms,false,"Firefox is Mozilla's evergreen browser. We support it by default."
+Edge,adopt,platforms,false,"Edge is Microsoft's evergreen browser. We support it by default."
+IE 11,adopt,platforms,false,"IE 11 is the default browser on Windows 10 and makes up approximately 10% of the visits to Redgate.com. We support it by default."
+IE 10 and under,retire,platforms,false,"We do not support IE10 and under."
+Raven DB,retire,tools,false,"We previously used Raven DB in DLM Dashboard but our experience was not positive."
+NSubsitute,adopt,languages and frameworks,false,"NSubstitute is our default mocking library of choice. We feel it's got less setup cost than Moq and requires fewer .Object calls."
+Moq,endure,languages and frameworks,false,"Moq is a great framework for mocking, but we prefer NSubstitute's simplicity. We see no benefit in having a common mocking framework across solutions."
+Fakes,explore,techniques,false,"We've experimented using Fakes in the Redgate Usage Client - fakes used in the test can reduce the amount of mocking is required and can make the tests simpler."
+Rhino Mocks,retire,languages and frameworks,false,"Rhino Mocks is no longer actively maintained, nor does it support .NET Core / .NET Standard."
+Wix 3,adopt,tools,false,"Windows Installer XML Toolset 3 (WiX), is a free software toolset that builds Windows Installer packages from XML. We default to Wix v3."
+Wix 2,retire,tools,false,"Windows Installer XML Toolset 2 (WiX), is a free software toolset that builds Windows Installer packages from XML. We default to Wix v3."
+Inno Setup,endure,tools,false,"SQL Backup uses divergent installer technology."
+RedGate.Usage.Client,adopt,tools,false,"Redgate's standard tool for Product and Feature usage reporting."
+AppInsights,adopt,tools,false,"Microsoft's platform for data analysis."
+MixPanel,endure,tools,false,"Tool for presenting analytic data. Now superseded by AppInsights. We will review whether to retire this when Application Insights has a configurable retention period."
+Google Analytics,retire,tools,false,"Tool for presenting analytic data. Now superseded by AppInsights."
+SonarQube,adopt,tools,false,"Sonarqube provides automated code review, highlighting quality issues in changing code. This feedback is best surfaced through automated PR comments."
+RedGate.Build,adopt,tools,false,"Redgate's standardised, scripted infrastructure for building products. Based on build-script-templates."
+Custom build scripts,endure,tools,false,"Builds scripts that diverge from RedGate.Build. These were useful when first made, but we should move to sandard RedGate.Build when possible."
+Build magic,retire,tools,false,"Legacy build tooling, now to be deprecated in favour of RedGate.Build."
+IL weaving,retire,tools,false,"Byte weaving magic is not desirable as it adds compile time complexity that is often not visible to developers. Please note that this does not incorporate static linker tools such as ILMerge as they can still be useful to make some components more reusable by internalising a subset of their dependencies."
+Fody,retire,tools,false,"Tool for IL weaving. No longer endorsed."
+Vagrant,adopt,tools,false,"Vagrant is an open-source software product for building and maintaining portable virtual software development environments. We use Vagrant with Puppet to provision test environments and internal infrastructure."
+Puppet,adopt,tools,false,"Puppet is an open-source software configuration management tool. We use Vagrant with Puppet to provision test environments and internal infrastructure."
+DevCloud,adopt,tools,false,"DevCloud is an internal platform for hosting short-lived virtual machines."
+Long-lived Virtual Machines,retire,tools,false,"We avoid using long-lived virtual machines, especially those that cannotbe trivially rebuilt on demand."
+Docker,explore,tools,false,"Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. Current being explored by Whitesharks."
+Kubernetes,explore,tools,false,"Kubernetes is an open-source container-orchestration system for automating deployment, scaling and management of containerized applications. Currently being explored by Whitesharks."
+Lucidchart,explore,tools,false,"Diagramming tool that allows drawing architectural diagrams in a team environment. Also allows integration with OneDrive, Confluence, etc. Currently being explored by The Spiders team."
+draw.io,explore,tools,false,"Simple Open source diagramming tool that allows drawing architectural diagrams. Also allows integration with OneDrive, Jira, Confluence, etc. Currently being explored by the Prompt team (for C4 diagrams)."
+CEF,retire,languages and frameworks,false,"Chromium Embedded framework (CEF) is an open source framework for embedding a web browser engine inside other tools. This was explored, but proved unsuccessful for Redgate."
+Winforms,endure,languages and frameworks,false,"Winforms is a legacy UI library in the .NET Framework. Maybe Redgate products already use Winforms, but we prefer other tools for new development."
+WPF,adopt,languages and frameworks,false,"Windows Presentation Foundation (WPF) s a graphical subsystem provided with the .NET Framework. It's one of our prefered desktop UI technologies, especially when embedding products inside Visual Studio or SSMS."
+Electron,adopt,languages and frameworks,false,"Electron is an open-source desktop UI framework. It's developed/maintained by GitHub, and used by Microsoft for VS Code. It's one of our prefered desktop UI technologies, especially for standalone desktop tools."
+Check for Updates (CfU),endure,tools,false,"Redgate's established mechanism for distributing product upgrades. The update process is manual and intrusive for users, leading to slow version uptake and version fragmentation in production. We're keen to explore alternatives."
+"Release Management: User-controlled background updates",explore,techniques,false,"Allowing a user to kick off a background upgrade of products, from the UI. Being explored by ICloneable<Sheep> on SQL Clone."
+Log4Net,endure,languages and frameworks,false,"Log4Net is no longer actively maintained. We've also had problems with our use of it by having a single static root. We don't recommend this for new applications, but can tolerate existing usages."
+SeriLog,adopt,languages and frameworks,false,"Serilog is our preferred logging framework. It's well maintained, supports structured event data and is portable between .NET platforms."
+Oracle database,explore,platforms,false,"Oracle database is a strong rival to SQL Server. Redgate has legacy tools for this suite (Oracle Compare & Source Control), and the space is under ongoing investigation by Foundry (with support from TKomp)."
+SQL Server on Linux,explore,platforms,false,"SQL Server has had growing support on Linux for some time, but Linux is not a platform that Redgate actively targets. Current windows-based tools support connecting to a SSoL database, and further value is being explored in Foundry."
+Azure DB Studio,explore,platforms,false,"Azure DB Studio is Microsoft's aspirational replacement for SSMS. Potential Redgate tooling support is being investigated by Foundry."
+SQL Change Automation,explore,tools,false,"Redgate SQL Change Automation is our commerical offering to help people manage the state of databases as part of application deployment. We should investigate if/how to use our own tools as part of our development activities. Versioning Teams to investigate this by looking at how CORE manage databases."
+React,adopt,languages and frameworks,false,"React is our web framework of choice. It's popular, it's easy to understand and it's got great tooling support."
+Honeycomb Web Toolkit,adopt,languages and frameworks,false,"Honeycomb is our design system and the web toolkit makes adopting this in your own projects easy."
+SignalR,adopt,languages and frameworks,false,"SignalR allows server code to send asynchronous notifications to client-side web applications."
+Webpack,adopt,languages and frameworks,false,"Webpack is a module bundler. It's main purpose is to bundle JavaScript files for usage in a browser."
+Babel,adopt,languages and frameworks,false,"Babel is a JavaScript compiler allowing you to confidently use the latest JavaScript features in all browsers."
+Enzyme,adopt,languages and frameworks,false,"Enzyme is a JavaScript Testing utility for React that makes it easier to assert, manipulate and traverse your React Components' output."
+Redux,adopt,languages and frameworks,false,"Redux is a predictable state container for JavaScript apps. We recommend this when state management becomes complicated with React alone."
+Knockout.js,endure,languages and frameworks,false,"Knockout is a minimilast library for binding data to web views. We prefer React now though existing usages of knockout.js are fine."
+JQuery,retire,languages and frameworks,false,"JQuery has had it's time. Modern browsers and advances in JavaScript means we don't require it any more."
+"Release Management: Manual releases",retire,techniques,false,"A release that involves someone manually going through a whole heap of steps across different systems is bad."
+"Release Management: Release scripts",adopt,techniques,false,"Using a single powershell script (basic-release.ps1 or using RG.Release) to manage your entire release process is a good trade off between saving effort, and security and accountability for each release."
+Automated releases via Octopus Deploy,explore,techniques,false,"Octopus is more trustworthy than TeamCity for automating releases (via @rmc47), so teams wishing to try this should first move their release process to Octopus. SQL Monitor currently uses Octopus for deploying to monitor.red-gate.com."
+Trello,adopt,tools,false,"Some teams use Trello for issue management and digital taskboards. Setup and administration are cheap, but issue management capabilities are limited."
+Jira,adopt,tools,false,"Some teams use Jira for issue management and digital taskboards. The setup and administration costs are higher than other tools, but issue management capabilities are rich."
+GitHub Issues,adopt,tools,false,"Some teams use GitHub issues for issue management and digital taskboards. Setup and administration are slightly costlier than Trello, while issue management capabilties are limited. Integration with source code and repositories can be valuable, but is also complex for multi-repository projects."
+Physical whiteboards,adopt,tools,false,"Some teams use physical whiteboards for issue management and a physical taskboard. Costs are variable dependent on the setup and how the tool is used but can be minimal. Issue management and audit capabiltiies are minimal."
+".NET Framework 4.6.1",adopt,languages and frameworks,false,"We continue to build our products using the .Net framework, but libraries should target .Net Standard."
+".NET Framework 4.7.1",explore,languages and frameworks,false,"A newer version of .NET Framework, which supports .NET Standard better than previous versions. Currently being explored by the Masketeers in Figleaf."
+".NET Standard 2.0",adopt,languages and frameworks,false,"Microsoft has delivered a cross-platform future. New applications should be built to conform to .NET Standard by default."
+".NET Core 2.0",adopt,languages and frameworks,false,"Microsoft has delivered a cross-platform future. New applications should be built with .NET Core by default whenever possible. .NET Core doesn't yet support WPF/Winforms applications, but we're hopeful for support in .NET Core 3."
+"SSMS 2012 and above",adopt,platforms,false,"SQL Server Management Studio 2012 and above are supported my Microsoft, so we should support them in our tools."
+"SQL Server 2008 and above",adopt,platforms,false,"SQL Server 2008 and above are supported by Microsoft, so we should support them in our tools."
+"Retrospectives",adopt,techniques,false,"Regular retrospectives help us gain feedback to improve our development teams"
+"Redgate Installer",adopt,tools,false,"Redgate Installer is our standard installer which we should use in preference to other installer technologies because it allows us to ship products together, provides a consistent experience, and integrates with our release, licensing and update systems."
+"TeamCity",adopt,tools,false,"We build all of our projects on TeamCity because it's simpler to use one CI system across the company. Our use of build scripts rather than complex TeamCity configuration reduces coupling of our builds to TeamCity itself."
+"Prettier",adopt,tools,false,"Prettier automates consistent code styling for web languages by providing as few formatting options as possible."
+"RedGate.Legacy.*",endure,languages and frameworks,false,"We have a collection of old technologies in the 'RedGate.Legacy' packages, as the name suggests these are old and should not be adopted. But moving away from them can be expensive so we don't think its worth the cost."
+"Dogfooding",adopt,techniques,false,"As a general principle we should use our own tools to solve problems. This process is known as dog-fooding. We should do this even if we feel our products don't solve our own problems perfectly because doing so is the best way to learn how to improve our products."
+"Java",endure,languages and frameworks,false,"Typically we don't use Java, but we will when necessary. Examples include the SQL Change Automation plugins for TeamCity, Bamboo and Jenkins."
+"PowerShell 5",adopt,languages and frameworks,false,"For internal automation we use PowerShell 5."
+"PowerShell 3+","adopt",platforms,false,"When we are writing cmdlets for external use we target PowerShell 3."
+"PowerShell Core","explore",languages and frameworks,false,"The Figleaf team are in a position to explore PowerShell Core (the cross-platform version of PowerShell)."
+"JSON",adopt,tools,false,"For storing user information, such as settings we want to use a textual format. The choice boils down to JSON or XML. We prefer JSON because it's less verbose."
+"XML",endure,tools,false,"For storing user information we used to use XML. We'll continue to use that, but avoid it in the future because it's very verbose. We perceive the cost of migration away to be high enough for this to be Endure, rather than Retire."
+"Registry",endure,tools,false,"We avoid storing settings in the Registry as it's Windows specific. However, it does make it easier for system administrators to apply group policy so we should bear this in mind when choosing setting locations."
+"Technical spikes",adopt,techniques,false,"Timeboxed prototype/proof-of-concept for some feature or technical implementation detail. Usually done with minimal quality (since they're never intended to be real code), implemented on a branch and then thrown away."
+"Feature flags",adopt,techniques,false,"A mechanism to prevent code in master from affecting the way the product behaves. There are lots of different types of flags/toggles: they might be set at compile or run time; they might be purely internal or visible to the user, and so on."
+"edge.js",explore,languages and frameworks,false,"edge.js is a library which allows .NET code to be run from node and vice-versa. It marshals object references and method calls across the .NET/node boundary. The Figleaf team is currently exploring this."
+"Scrum",adopt,techniques,false,"Agile framework focused on time-boxed, iterative plannning. We default to this approach to encourage iterative delivery in teams and a simple process to follow."
+"Kanban",explore,techniques,false,"Flow-based agile framework the emphasises limiting work-in-progress (WIP). Historically adopted by teams who find time-boxed iterations restrictive, or need to work in a more reactive manner. Currently being explored by ICloneable<Sheep>."
+"MoSCoW",retire,techniques,false,"MoSCoW stands for Must, Should, Could and Wont. This prioritisation technique requires the majority of features / stories to be identified up front - this does not fit well with our exploratory approach to finding customer needs and drilling in based on our riskiest assumption. It also has the effect of creating fixed view of what will be delivered and can result in teams delivering work that is not valued by customers."
+"master is always releasable",adopt,techniques,false,"'master as always releasable' is an ethos teams will follow and constantly strive to make true. We should have enough confidence in the product and automated tests that anyone can press the release button at any time. We release whenever we have something to release. We should act like master is always releasable at any time, and when we discover that it isn't/wasn't releasable, reflect on why and add the appropriate checks for next time."
+"Zero bugs policy",explore,techniques,false,"A zero-bug policy does not mean bug-free code production; it means striving to eradicate all known bugs. ICloneable<Sheep> will be exploring this with support from the Quality Coaches."
+"Karma",adopt,languages and frameworks,false,"Karma is a test runner for JavaScript which spawns a web server that executes source code against test code for each of the browsers connected."
+"jasmine",explore,languages and frameworks,false,"Jasmine is a BDD framework for testing JavaScript code. The Monitor team are using it through Karma."
+"nightwatch",explore,languages and frameworks,false,"Nightwatch is an end-to-end testing solution for browser-based apps using WebDriver. The ICloneable<Sheep> team is exploring this."
+"jest",adopt,languages and frameworks,false,"Jest is a way to test all JavaScript code that's used by Facebook. COREDev have a non-trivial amount of tests over multiple projects that use jest."
+"spectron",explore,languages and frameworks,false,"spectron is a tool to allow you to easily test your Electron apps using ChromeDriver/WebDrive IO. Figleaf is exploring this."
+"mocha",retire,languages and frameworks,false,"mocha is a feature rich test framework running on Node/Browser. We believe Jasmine/Jest are better alternatives."
+"chai",endure,languages and frameworks,false,"chai is a BDD/TDD assertion library being explored by the ICloneable<Sheep> team."
+"Definition of Done",explore,techniques,false,"Scrum says that 'when ... is described as 'Done', everyone must understand what 'Done' means'. By agreeing up front what constitutes 'done' for a feature / story it can highlight any misunderstandings over what is expected from the story. The definition can also help ensure basic quality and ancillary tasks are completed e.g. documentation is updated. Tested across all operating systems / database versions etc. The Versioning teams will be trying to do this."
+"Ranorex",endure,languages and frameworks,false,"Ranorex is a commercial GUI test automation framework that was used for various Redgate products in the past. It only remains in-use with SQL Source Control, and should not be adopted any further."
+"UIAutomation/System.Windows.Automation",endure,languages and frameworks,false,"UI Automation is an accessibility framework, while System.Windows.Automation supports automation of WPF clients. Microsoft recommend use of Appium and WinAppDriver rather than building your own automation framework with these tools."
+"Coded UI",retire,languages and frameworks,false,"Coded UI is a GUI test automation framework presented in Visual Studio. Coded UI Test for automated UI-driven functional testing is deprecated, and will not be available beyond Visual Studio 2019. Microsoft recommend using Appium with WinAppDriver instead."
+"Appium with WinAppDriver",adopt,languages and frameworks,false,"WinAppDriver is a service to support Selenium-like UI Test Automation on Windows Applications. It is Microsoft's recommendation for automated UI-driven functional testing for Windows applications."
+"DotNetZip",retire,languages and frameworks,false,"DotNetZip is an opensource .NET library for handling ZIP files. We prefer the capabilities provided by the .Net framework in System.IO.Compression."
+"7Zip",endure,languages and frameworks,false,"7Zip is an open source file archiver and compression tool. We prefer the capabilities provided by the .Net framework in System.IO.Compression."
+"System.IO.Compression",adopt,languages and frameworks,false,"System.IO.Compression is the .Net Framework/Core provided set of compression and decompression services for streams."
+"ReSpeller using AmE",adopt,tools,false,"ReSpeller is a spell-checking engine integrated with ReSharper. We use American English to be consistent with .NET Framework and other 3rd party libraries. Additional words are stored in a solution team-shared settings file (*.sln.DotSettings)."
+"Time-based estimation",endure,techniques,false,"We've found time-based estimation to be costly, difficult to be accurate with, and difficult to apply to non-repeatable tasks. Broad brush estimates, such as 'few days', 'couple of weeks', 'month or more', can be useful to set expectations with non technical people."
+"Kaizen Rota",explore,techniques,false,"Dedicated time to perform Kaizen/Technical Direction activities whilst working with the Coaches. Currently being trialed by the SQL Crackers / Hammerheads teams working on SQL Monitor."
+"User Stories",explore,techniques,false,"User stories are short, simple description of a feature as described from the perspective of end users. They typically follow a simple template, As a X, I want Y to achieve Z. Both Versioning & Automation and the Prompt are using this approach."
+"Open API specification",adopt,techniques,false,"Our public web-based APIs are exposed through the Open API specification interface as being the description for REST APIs, which allows both humans and computers to discover and understand the capabilities of a service without requiring access to source code, additional documentation, or inspection of network traffic."
+"NSwag",explore,languages and frameworks,false,"An implementation of the Open API specification currently being explored by the Data Catalog team."
+"Swashbuckle",explore,languages and frameworks,false,"An implementation of the Open API specification currently being explored by the Versioning teams for providing the out-of-process APIs."
+"Value Stream Mapping",explore,techniques,false,"Value Stream mapping is a technique to visualize the steps needed in a process. By doing so we can use a systems thinking mindset to look for optimizations and perform small experiments to learn what to optimize. The Oracle/V&A teams will look at exploring this technique."
+"Automated Code Style Settings",adopt,techniques,false,"Each team should automate their coding style using a team shared R# settings file."
+"Stop the line when master is red",adopt,techniques,false,"A red build of the master branch should be teams' top priority. When it happens, all the work in a team halts and team members agree who is fixing it. This ensures that the problem is visible and it's the whole team's responsibility to solve it. This approach also encourages teams to fix flaky tests."
+"Vertical slicing",adopt,techniques,false,"We aim to deliver work in small, vertical slices. This enables regular delivery of working software, faster feedback from early adopters, and gradual learning as we incrementally deliver richer capabiltiies."
+"Iteration planning",adopt,techniques,false,"We plan work in iterations to align on a short term goal. This allows teams to build a shared understanding of the work, discuss necessary tasks, and identify dependencies between those tasks."
+"Frequent update release channels",explore,techniques,false,"Allowing users to opt-in to more regular product updates, allowing quicker feedback for Redgate, while maintaining a slower-cadence release channel for other users. This is being explored with SQL Source Control and SQL Compare."
+"Single release channel",explore,techniques,false,"Notifying all licensed users of all product updates, allowing users granualar control of their environments while enabling potentially wider-ranging feedback for Redgate. This is being explored with most products."
+"Private builds",retire,techniques,false,"Shipping a release that isn't publically available to a user, typically for feedback. We prefer other delivery mechanisms for getting this feedback, rather than accepting version fragmentation."
+"Beta/Early Access programmmes",explore,techniques,false,"Working with a self-selected group of users to get feedback on product development. This has been explored in the past, but may not be under active investigation now."
+"Concierge users",explore,techniques,false,"Close feedback loops with selected customers to give rich feedback on product development. This is being explored with SQL Change Automation in SSMS."
+"Outcome-focussed OKRs",adopt,techniques,false,"We believe Outcome-focussed OKRs are a really important piece of the puzzle to set teams up with clarity of purpose and linking work to a higher aim (important aspects of team motivation and engagement as called out in Dan Pink's Drive). More details about how we currently frame OKRs can be found here."
+"RESTful APIs",adopt,techniques,false,"RESTful APIs are an architectural style that defines a set of constraints for creating web services. We follow the Microsoft guidelines on RESTful services."
+"Gamestorming / Liberating structures",adopt,techniques,false,"The ideation, decision-making and exploration games/activities described in Gamestorming and Liberating Structures have proved to be very successful ways to help teams and wider groups engage with difficult and thoughtful topics. They balance different styles of input (more/less gregarious people, more confident/reticent people, etc) and help groups come up with better, more robust ideas than any individual could on their own."
+"Theory of Constraints",explore,techniques,false,"The Theory of Constraints is a method for identifying the most important limiting factor (i.e. constraint) that stands in the way of achieving a goal and then systematically improving that constraint until it is no longer the limiting factor. In manufacturing, the constraint is often referred to as a bottleneck. The application of this method in a software dev environment has a demonstrable benefit to task lead times, reduction in waste and, basically, deliver the most valuable stuff to users quicker. Dev Leads team will be running workshops (and, we hope, a book club) to help teams explore how applying the ToC can help them deliver the most valuable stuff to users quicker."
+"Story Points",retire,techniques,false,"Story Points are an example of abstract estimation. They get conflated to mean stuff they don't mean and don't really help estimation when we focus on outcomes/agility. We prefer to focus on making pieces of work/value really small, with technqiues like 'Vertical slicing'."
+"Impact Mapping",explore,techniques,false,"Impact Mapping is a planning technique. It focuses on desired impacts and outcomes over the detail of how those outcomes will be achieved. This is being investigated by the Oracle team."
+"ASP.NET Core",adopt,languages and frameworks,false,"ASP.NET Core should be the default for new web-based projects."
+"ASP.NET 4.x",retire,languages and frameworks,false,"ASP.NET 4.x and below should be retired (slowly as it's a major undertaking). New development is on ASP.NET Core, and future versions of ASP.NET will only support .NET Core so it makes sense to retire this in products we expect to stick around."
+"Chocolatey",adopt,tools,false,"Chocolatey is a package manager for Windows. We use this internally to install tools such as Vagrant and Virtual Box and as part of our test infrastructure."
+"OWASP Dependency-Check",explore,tools,false,"Dependency-Check is a Software Composition Analysis (SCA) tool that attempts to detect publicly disclosed vulnerabilities contained within a project's dependencies. It's value to Redgate is being explored by the coaches."
+"FluentAssertions",adopt,languages and frameworks,false,"FluentAssertions is an assertion framework that allow you to more naturally specify the expected outcome of a TDD or BDD-style unit tests. Much more readable than Assert.That()."
+"Shoudly",endure,languages and frameworks,false,"Shouldly is an assertion framework similar to FluentAssertions. We decided to adopt the latter."