I am reviewing a colleague's code and as part of the changes, this person introduced a few new pure data classes like so (C#):

```
public class Result : IResult
{
    public bool Succeeded { get; set; }
    public string ResponseMessage { get; set; }
}

```

And then afterwards defined an interface for the data schema, and used the interface throughout the code:

```
public interface IResult
{
    bool Succeeded { get; set; }
    string ResponseMessage { get; set; }
}

```

When I asked why, she just said it was "good practice", and I couldn't find any reason to complain other than that it seemed like an unnecessary abstraction.

Is this actually documented somewhere as a good practice? Is there any reason you would define an interface if you know that the class is just going to contain pure data and nothing else? (if it helps in this case, the class for a JSON REST API object)