Znát Java Core API i další knihovny
Používat vhodné nástroje a dát si práce s jejich zvládnutí
Znát a používat návrhové vzory
Provádět vhodnou dekompozici
Základním pravidlem je rozdělení problému na co nejmenší podproblémy, které ještě má cenu řešit samostatně - raději více menších tříd, více jednodušších metod. Snadné vodítko: maximem jsou dva vnořené cykly, resp. cyklus a větvení. Cokoli je složitejší, dekomponujeme do více metod. Důležité je potom správně modelování dat kvůli předávání parametrů mezi těmito metodami. Java bohužel na rozdíl od Pascalu nemá úplnou blokovou strukturu...
Minimalizovat míru závislostí
Používat vhodnou metodiku (např. Extrémní programování)
Provádět automatizované testování