Real world applications are usually much larger than the examples above. In has been proven that the best way to develop and maintain a large program is to construct it from smaller pieces (functions) each of which is more manageable than the original program.