My standard pattern for developing each feature is Design, Build, Fix.
I know what features I want in the final game, so the design phase is to layout what classes, member variables, connections to other classes, UI, and other implementation design choices I must make all broken down into tickets. Next I spend the time building the darn thing hammering out code to get all of those tickets done. Meanwhile I'll create bug tickets for anything wrong I find, so the last step is to fix the bugs. After each iteration I have, if all went right, a fully functional build relatively bug free and one more feature in place.
I have just finished the submarine unlocking, 'purchasing' (using cargo you loot off mobs), and switching feature, and I've started the design of procedurally generating the ocean! One down, 20+ more features to go!