Bring 4 quarts of water to a boil and add 2 tablespoons salt. Set up ice bath nearby. Blanch the asparagus for 1 minute, place in an ice bath, and reserve the asparagus cooking water. Once the asparagus is cooled, drain and cut into 1-inch lengths. Set aside.
In a heavy-bottomed skillet with 3-inch sides, combine the speck, olive oil and onion and cook over medium heat until softened but not browned, about 5 minutes. Add the rice and, stirring constantly, cook until the rice turns opaque, about 2 minutes. Add the asparagus cooking water until it covers the rice. Turn the heat up to high, stirring constantly, and cook the rice until the liquid level goes below the level of the rice. Continue adding the warm asparagus cooking liquid, 1 ladle at a time, to maintain the liquid level above the rice for 15 minutes. Add the asparagus to the rice and cook until the rice is soft but still al dente. Remove from heat, add butter, Parmigiano and parsley and stir through. Serve immediately.