ne ismételje meg magát (száraz, vagy néha ne ismételje meg magát) a szoftverfejlesztés elve, amelynek célja a szoftverminták ismétlésének csökkentése, absztrakciókkal való helyettesítése vagy az adatok normalizálása a redundancia elkerülése érdekében.
a száraz elv szerint “minden tudásnak egyetlen, egyértelmű, hiteles reprezentációval kell rendelkeznie egy rendszeren belül”. Az elvet Andy Hunt és Dave Thomas fogalmazta meg a pragmatikus programozó című könyvükben. Széles körben alkalmazzák, hogy tartalmazzák az “adatbázis-sémákat, tesztterveket, az építési rendszert, sőt a dokumentációt is”. Ha a száraz elvet sikeresen alkalmazzák, a rendszer egyetlen elemének módosítása nem igényli más logikailag független elemek megváltoztatását. Ezenkívül a logikailag összefüggő elemek kiszámíthatóan és egységesen változnak, és így szinkronban maradnak. Amellett, hogy módszereket és szubrutinokat használnak a kódjukban, Thomas és Hunt a kódgenerátorokra, az automatikus építőrendszerekre és a szkriptnyelvekre támaszkodik, hogy a rétegek között betartsák a száraz elvet.