10 Papers Every Programmer Should Read On the criteria to be used in decomposing systems into modules – David Parnas A Note On Distributed Computing – Jim Waldo, Geoff Wyant, Ann