Snap off the bottom third or so of the asparagus spears. You won’t need these woody parts. Soak the top parts in a bowl of cold water for 10 minutes or so. Drain in a colander, then chop them up roughly. Heat the olive oil in a frying pan and sauté the spring onion until golden. Add the asparagus and water and cook until softened, then add the parsley. Season with salt and pepper. Put the lid on and cook for 10 minutes or so, until the asparagus are tender but not overcooked.
Preheat the oven to 180°C (350°F/Gas 4). To make the béchamel, melt the butter in a saucepan and then stir in the flour. Heat the milk in a separate pot and then slowly pour into the butter and flour, whisking to loosen it. When the milk is added and the mixture is smooth, simmer over low heat for 5 minutes or so to thicken slightly. Season with salt and pepper, and a grating of nutmeg. Remove from the heat and stir in the asparagus.
Start the assembly. Spoon a quarter of the béchamel over the bottom of the dish, spreading it to cover evenly. Cover with a layer (2 sheets) of pasta, then one-third of the remaining béchamel, spreading it gently. Scatter 2 tablespoons of parmesan over evenly. Tear 2 slices of ham in half and make a layer on top of the parmesan. Add another layer of pasta, half the remaining béchamel, 2 tablespoons of parmesan, then 2 slices of ham. Make a final layer of pasta, spread with the last of the béchamel and scatter over the remaining parmesan.
Bake in the oven for 20 minutes or so, until a bit crusty and golden here and there. Cool a little before cutting into squares to serve.