Add the asparagus to a medium saucepan and cover with water. Heat until boiling, and continue to cook for a few minutes, until the asparagus is crisp-tender. Immediately drain the water and cover with cold water to stop the cooking. Drain again, and set aside.
In a medium bowl, combine the eggs, milk, salt and pepper. Whisk until well blended. Whisk in the cheddar cheese.
Melt the butter in a 12-inch skillet set over medium-low heat. Swirl the butter around in the pan a bit so that it completely coats the bottom and sides of the pan. Add the ham and scallions to the pan and cook, stirring occasionally, just until fragrant and warmed through, about 2-3 minutes. Add the drained asparagus to the pan, stirring once. Pour the egg mixture into the pan and give the mixture a quick stir to ensure even distribution of the ingredients.
Increase the heat to medium and allow to cook without stirring. Cook until set around the edges and the center and top are still liquid, about 7-8 minutes. Meanwhile, preheat the broiler. Transfer the skillet to the broiler and continue to cook until the top and center are fully cooked, about 3-4 minutes more. Remove from the oven and let cool until set, about 5 minutes. Slice and serve. (Remember to use an oven mitt when handling the pan during serving – it will be quite hot!)