Desire Lines in software architecture: what can we learn from landscape architecture?

Reposted with kind permission from CodeBork. Before Christmas I was talking with Simon about an architectural approach we’d taken on a recent project. The aim of the project is to replace an existing WinForms user interface with a shiny new HTML and JavaScript version. Part of this involves making HTTP requests back to the “engine” of the product, a .NET application, and of course our chosen data format is JSON. To protect the HTML UI from changes made in... read more

Top 3 Tips for Getting Started with Testing a Mature Product

Developers and testers generally don’t like to work on a mature product with a legacy code base, especially when the majority of the team has no previous knowledge of either. Having said that, while building and testing a mature product can prove a lot more challenging than tackling a greenfield one, my recent experiences suggest there... read more

Testing Community

Testing Community One of the best things about working at Red Gate is that we work in small agile multifunctional teams. As a tester, I really enjoy close interaction with the developers and other roles, just being able to turn around and discuss things with them. Also I love being involved right from the... read more

What’s in a (Strong) Name?

Reposted with kind permission from Package managers Package managers are brilliant. The obvious win is the convenience of versioning your dependencies without having to commit binaries to Git. Lots of people use package managers for third party dependencies, but I’m going to talk about using them for components within an organisation. This is where package... read more

JavaScript Unit Tests

The amount of JavaScript code being used at Red Gate is increasing quite rapidly. We are writing more web based products and also opting to use web technologies like CEF for our desktop products, so it is inevitable that a lot of our code is going to be written in JavaScript, like it or... read more

Visualizing team work: Physical Taskboards vs Virtual Taskboards

Reposted with kind permission from Chris’ blog. I’m a project manager, so unsurprisingly I can find myself in animated conversations with other project managers regarding how best to manage the work that our team members are doing. We all have our favourite techniques and methods, but the process generally starts with making the work... read more

Providing help documentation for PowerShell cmdlets

We’ve been working on a new product that involves writing Windows PowerShell cmdlets (pronounced “commandlets”) for our customers to use and, to make their lives easy, we want to provide rich built-in help documentation. There’s no easy way to do this out of the box, so I’ve written a tool that allows us to... read more

Property-based Testing

As part of our down tools week Toby Smyth and I decided to look at property-based testing.  This is a type of testing that is more commonly used in more functional programming languages, so we decided to investigate how we could apply this to C# and see what we learnt. Why should I care... read more

There and back again – a meandering on the size of a unit

In this article I’m going to try to walk through how I’ve been thinking about unit tests over the past few months. We’re using a toy example here, but it should be representative of a bigger system. “Where did it all go wrong?”[1] Let’s start with ‘classical’ unit testing. We have a class with... read more

Five steps to an effective sprint retrospective

Reposted from my blog. In a typical agile software development process, sprint retrospectives are meetings run at the end a development iteration. In those sessions the team looks back on what they have done and how they have done it, and decides what they can do to improve. More succinctly, the team inspect and... read more