You first develop and test the operations that are performed first, then add and test the next functions, then the next, and so forth If there is some central control structure, you can develop it in gradually widening vertical slices The that slice are them implemented from top to bottom in a complete development iteration or cycle