don't make it more complicated than it really is. when an object explodes, the object goes from recognizable pieces like windows, beams, doors to unrecognizable debris. everything gets shattered, smashed, dented, dusted, melted, etc. into thousands of unrecognizable pieces. in addition to that, the brightness of the explosion backlights all the pieces and blows other ones out over the first few frames so you can't see all your pretty little shards. so picking your surfaces and running the shatter command on it is just a monumental waste of time. particle instancing is the easiest way to do the effect.
make a dozen different random shapes, shars, blocks, chunks, etc. in your particle expression set up some random scalings for the instances so that you get all kinds of sizes and setup some random initial rotations so that they all have different orientations. If you are blowing a hole in a wall, cut out that region of the model that will blow up and make it a seperate surface/s so that you can emit particles from there and also hide the original chunk of the wall.
when you emit your particles setup a large min/max distance so that the explosion really punches out and does not slowly emit from the same source.
rotate the pieces randomly as they fly through the air.
fill the air and explosion area with smoke and dust particles of varying size and density. its gotta be a thick mess.
slow mo through any explosion on tv or in a movie and you will see that one frame the object is there and on the next there's just fire and crap all over the place.
if you are blowing up an object with recognizable metalic features, like a cool metal door (a hollywood favorite), manually keyframe that object denting and twisting towards camera. if you animate a couple of hero pieces in your scene, you will ensure that the viewer is not focusing on why the brick wall exploded into 100 bricks when there were obviously 125 bricks in it.
good luck.