Step 1 Heat the broiler.
Step 2 Cook the ham, parsley and 1 tablespoon butter in a skillet over low heat until ham renders its fat and begins to shrivel, 10 minutes.
Step 3Meanwhile, cut up the asparagus. Start cutting from the base in 1/4- to 1/2-inch crosswise slices. Cut up to the tips, but leave the last inch of the tips whole. Add to the ham and continue cooking another 5 minutes.
Step 4Melt the remaining tablespoon of butter over medium-low heat in a 10-inch nonstick skillet or omelet pan. Beat the eggs in a large bowl with a fork to break up the yolks. Do not whisk -- you don't want to beat air into the eggs. Stir in the asparagus, ham and parsley.
Step 5Pour into the skillet and cook, stirring gently, just until the eggs start to form curds, about 5 minutes. Be careful to scrape the bottom of the pan while you're stirring to keep the eggs from setting up too quickly. Cover and reduce the heat to low. Cook until the top is almost set, another 5 to 10 minutes.
Step 6Sprinkle the top with the Parmesan and place the pan 4 or 5 inches under the broiler. Cook just until the cheese begins to brown, about 1 1/2 minutes. Remove the frittata from the broiler and loosen the sides with a thin spatula. Set aside to cool to room temperature. When ready to serve, remove the frittata from the pan and cut it into wedges. Or, cut it in 1-inch squares and place a toothpick in the center of each to serve as an appetizer.