The AlphaBetaWithMemory code is given in the interest of completeness. Some programs have a fine grained evaluation function, where positional knowledge can be worth as little as one hundredst of a pawn. Big score swings can become inefficient in for these programs. At the end, if you overshoot the minimax value, you have to make a small search in the opposite direction, using the previous search bound without an extra bonus, to make the final convergence. Also, it can be quite instructive to experiment with different evaluation function grain sizes.
Some programs unroll the search of the root node, for example, to do extra move sorting at the root.
In the interest of cleanliness this is not shown in the pseudo code. Sometimes forward pruning or search extensions that depend on alpha and beta values react in surprising ways to a search that consists of zero window calls only. You may have to do some re-tuning to get it all in synch again. Make sure that the transposition table works properly. Consider storing leaf and quiescence nodes in the table.