Plan, Execute, and be Flexible
Before you write a single line of code, have a design or plan. Plans come in all shapes and forms. You could have a formal design document, a UML diagram drawn on a cocktail napkin, or an idea you thought about for a few hours. Regardless of the level of polish, you need a plan. [...]