Steam the asparagus until just tender and set aside. Get a full kettle of water on the boil. You will need it for your bain marie...and set the grate in your stove to the bottom placement. Preheat the oven to 375'F.
Butter your souffle dish. If you wish to put a parchment paper collar around the dish, butter the top half of the collar and tie it with the buttered side facing inside the dish with kitchen twine. I didn't find this necessary because my souffle didn't rise up over the edge. Put the asparagus in the bottom of the buttered dish.
Over low heat, melt the butter in a heavy skillet. Whisk in the flour until smooth; gradually add the milk, stir constantly until the sauce thickens.
Add cheeses and seasonings; stir until the cheese melts. Add the beaten egg yolks and stir well. Remove from the heat; fold the egg whites into the cheese sauce.
Pour the mixture into your prepared souffle dish. Set the dish in a bigger dish and put it in the oven.
Being careful not to get any water into your souffle pour the boiling water from the kettle into the bigger dish. The water should be 1/2 inch deep around the souffle dish.
Turn the heat down to 350'F and bake uncovered for 30 minutes or until the souffle is golden on the top. It should rise up at least 3 times it's original size. Test it with a long wooden skewer. If any of the souffle is moist at the bottom leave it in a few more minutes. It should be totally cooked through.
The souffle should be crusty on the top but still jiggly when you shake it.
Serve immediately, otherwise the souffle will lose it's nice crust on the top.