1. I ignore maximum depth, and instead base my profile upon my average depth over the last 10 or 15 minutes. For example, if I drop down to 120' for 5 minutes to look at some black coral and a longnose hawkfish, and then start working my way back up a wall and have spent a lot of time up at 70', then I do my ascent as if starting from 70', not 120'. (I recommend that those divers doing the NAUI half-depth stop also apply this logic to their choice of "half depth")
2. I figure out how long I want to take on my ascent. Never less than 6 minutes. Rarely more than 12. This is a judgement call, based on experience with similar dive profiles/multiple dive sequences and observation of how long it takes to get the N2 bargraph on my Oceanic computer back into the green section (More or less equivalent to 80% of Buhlmann M-value, or a gradient factor of 80 or 0.8 depending upon program).
If I'm up against NDL limit on a long 60' dive, it will take longer to offgas the heavily loaded medium speed compartments than it would on a dive to 100'+ to near NDL which is controlled by faster compartment; so my ascent time from 60' would actually be longer than from 100' near NDL dive.
This is also where you crank in a fudge factor for how well behaved your profile has been (surging up and down, yo-yo-ing up and down around coral heads vs. nice clean gradually ascending multi-level profile), and how you are feelng that day.
Anyway, you come up with a desired total ascent time.
Current runtime + desired minutes of ascent give you what runtime you will be making your final ascent. REMEMBER THAT FINAL SURFACING RUNTIME, and of course your TOTAL ASCENT TIME.
3. I pick out my deep stop depth. For my dives it will be 35' to 50'. 50' if coming up from 120'. 35' if coming up from spending time at 60'. Work out 30fpm ascent time to that point, and add 1 or 2 minutes. That tells you the time you will LEAVE the first stop.
4. While hangin at the deepest stop, figure out how to split the remaining time between another intermediate stop and a final 20- to 10' glide. If 6 minutes total ascent, it will be something like 3 for the shortest, 2 for an intermiate stop, and just 1 for the deepest stop. Again, you weight things a bit according to where you are coming from. If doing a direct ascent from a square profile dive at 100', then you will spend more of the total ascent time at the first two deeper stops than you would on an ascent from a dive to 60'.
5. Intermediate stop --- kind of splits the difference between your first 35' to 50' stop and the final 20' to 10' slide. The length of the stop will also be longer than the 1st stop, but shorter than the 2nd stop. Once you have figured out the time, all you have to remember is at what runtime you depart this stop.
6. I start the last stop around 20' and then slowly glide upward during the entire period so that I end it around 10' when it is time to surface. (You do still remember that 1 number you decided upon at the beginning of the ascent, right?). As with the other things, the specifics of the stop get fudged a bit accoring to what sort of dive I'm coming up from. If I'm very heavily loaded in the slower compartments from a third dive of the day in the 40-50' range, then this stop may actually start at 15' and go up as shallow as 6' or 8'. OTOH, coming up directly from a deep dive, it will be weighted all towards the 20' end.
In any case, people I dive with often can just look at where I am in the water column and know when I'm ready to ascent.
===================================
At first reading, the above may seem to be complicated, but in reality it isn't that difficult. After a while you will indeed have a pretty good gut feeling as to how many minutes you should be taking on any given ascent. And then splitting it into 3 stops is IMO, a reasonable tradeoff between complexity and closeness to an ideal "shape of deco" curve.
Charlie Allen