(In the context of .NET for what its worth)
I tend to not use inheritance and rarely use interfaces. I came across someone who thinks interfaces are the best thing
I think that you describe there top-down design method. You don't have to do it, but sometimes he really help.