This paper will assess the different principles of maintainable software and give insight on why they are necessary while writing software. Throughout this paper we will access these practices by writing code examples, by following these practices and sometimes deliberately not following them or sometimes just discussing in general why these practices should be followed, creating a sense for measuring maintainability in software. At the end we will develop a generalized file system for Software that encourages maintainability while applying key principles discussed.