Redgate’s Tech Radar July 2019 Edition

Jeff Foster
Ingeniously Simple
Published in
4 min readJul 19, 2019

Since January we’ve had over 100 contributions from loads of people. A huge thank you to everyone that contributed to this (Chris Hurley, Gareth Bragg, Mark Jordan, Julia Hayward, Krzysztof Kroczak, Mikiel Agutu, Greg Smulko, Ally Parker, Andrew Farries, Dave Rook, Mike Upton, Michelle Taylor, Rob Clenshaw and Mark Raymond, phew!).

This post covers the highlights over the last six months but you can view all the items live here (and the libraries here).

Obligatory image of the Tech Radar!

Adoption

When something moves into the Adopt quadrant, it means it’s the new standard for Redgate. It’s our current working default for that class of problem. To be in this category, we must have used this technology/process had some favourable experience.

  • .NET 4.7.2 — We’re normalizing on this as the release of .NET we use across our tools. This means easier installation for our customers, a common framework for us to develop against, and we’re much closer to working on .NET Core!
  • Mob programming — It’s a whole team approach to software development that fits with our values. The Prompt and Orca team have both tried this with great success and having Woody Zuill (who coined the term) in for training has really cemented this practice in the division.
  • Zero Bugs Policy — This hugely simplifies our bug management process. Either we’re going to fix something because it’s important, or we’re not. We run with this practice in Prompt and recommend it to all teams.

Retirements

We should really celebrate these! These are technology and techniques that have served their purpose well, but no longer the right thing for us and have been removed from our ecosystem. Removing them simplifies development at Redgate by removing complexity.

None of this is a value judgement on these libraries, they just don’t work for us!

  • Edge.js — This is a technology for calling C# code from JavaScript world. We’ve now decided there’s better options than this (such as CLIs or http APIs), so we’ve removed this from all our products.
  • Fody / IL Weaving — A tool for byte-code weaving. If that sounds complicated, it’s because it is. We didn’t need the complexity it generated, and it got in the way of us supporting .NET Core.
  • WiX2 — An installer framework. We’ve used this successfully for ages, but v3 was released in 2009! By upgrading everyone to WiX2 we’ve removed some legacy cruft and simplified things.
  • Task Parallel Library — This was a library that allowed older versions of .NET access to some of the features in .NET Framework 4. We’ve long since moved to a modern version and we’ve now simplified by removing this from our products.

Explore

The Explore category represents technology that we are actively, errr, exploring. We think this technology might be important for us in the future. Items in this area always have a team that’s commited to exploring them, and these items should move into a different area once we’ve built up experience with them.

  • Polly — A library for resilience and transient fault handling that supports both .NET Framework and .NET Core — this’ll simplify our code meaning we can spend more time on the stuff that matters.
  • Hangfire — An easy way to perform background processing, being explored by the Data Catalog team.
  • Renovate — Automated dependency updates — this saves us oodles of time by automatically doing the work of updating.
  • Docker / Kubernetes — Lots of investigation into this space from a product perspective (Clone), and a platform perspective (Team 9 ¾) and more!
  • Four Key Metrics — The “Accelerate” book covers four key metrics that predict organizational performance. We’ve got these metrics visible and we’re exploring how to make maximum use of them.

Endure

The final category is Endure. This is no longer how we do things but we’re not planning to retire the technology. This might be because we don’t have problems like this anymore, or simply because the cost of replacement is astronomically high.

During H1 we had a change of focus which meant a fair few items moved back into Endure, primarily from Retire. We’ll only invest in retiring technology if it gets in the way of our goals. Our current goal is .NET Core compatibility, so if an out of favour library is not getting in the way of that, then we’ll grit our teeth and use it. This means our focus can be on the right battles, rather than engineering purity.

Examples of things in Endure are IE 11 (we don’t want to support it, but since the web site does, so should our products), Chromium Embedded Framework (used by SQL Doc — again, our experience hasn’t been positive and we wouldn’t choose it again) and pre ES6 JavaScript (it’s ugly, but the cost of rewriting is too high).

Summary

This is just a write up of the highlights, you can view the whole thing live here (and the libraries here).

The repository is open; if you’re using technology for developing products at Redgate and have opinions then please open an issue and start contributing.

--

--