Software entities (class, modules, functions etc) should be open for extension but closed for modification.