A few hours before you start cooking (or the night before), cut the skin (if any) off the pork shoulder. Don't trim any more fat than what comes off with the skin. Brush the outside with the marinade.
Start a charcoal fire in your pit, with all the charcoal on one side of the grate. If you're using wood chips (which you will have to if using gas), wrap them in heavy aluminum foil and punch a few holes in the resulting packet.
Brush the shoulder with the marinade, then coat with a thick coating of dry rub. Place it as far away from the fire as you can, and drape a sheet of aluminum foil down to prevent direct heat from hitting the meat. Top the fire with the smoking wood. Put a pan of water over the fire and close the cover.
Maintain a temperature of about 175-200 degrees in the pit, adding fuel, wood and water as needed. After four hours, check the internal temperature by inserting a meat thermometer (without touching bone). You want to ultimately see 170 degrees, but if all goes well it won't get there for at least six hours. The longer it's in there, the better. Eight or ten or twelve hours is fine, as long as the pork isn't drying out.
But don't look at the clock. It's ready when you can pull the meat from the bone with tongs. When that happens, remove it from the pit, let it rest for about ten minutes, then pull away. Serve with your best barbecue sauce on the side.