Lay lamb shoulder flat, skin side up. Using a sharp knife, slash the skin to make a diamond pattern.
Combine spices, ginger, garlic, soy sauce and oil, excluding the lemon juice, in small bowl and whisk until well combined. Place flattened lamb shoulder in a large zip lock or freezer bag and pour in the marinade.
Seal well and using hands work the marinade through the lamb. Place in the refrigerator and marinate for at least 4 hours, or overnight.
Preheat oven to 150C (300F).
Place lamb in a casserole dish with a lid, squeeze the half lemon over the lamb. Cover with the lid, or if in a baking pan, seal very tightly with tin foil. Bake in the oven for 3 hours, or until lamb is very tender and can be easily pulled apart with a fork.
Once cooked, place under a hot oven grill (broiler) for 10 minutes to brown and caramelise slightly on the surface.
Remove and let stand for 10 – 15 minutes before serving.