Combining both methods in single software thus normally creates programming difficulty, mainly from different backgrounds of programmers who have expertise in different fields. In addition, software maintenance including the implementation of new developments can also pose additional difficulties after the software has been used for sometimes.