Effort estimation is an ongoing activity throughout a project lifecycle (Peixoto et al., 2010). A high level of estimate is required to decide whether the project is feasible or not, at the beginning of the effort estimation preparation stage. Then later on, a more detailed analysis and estimate would have to be done and this estimate will constantly be refined from time to time. An estimate should not be presented without having any detailed requirements or analysis to back it up. Software effort estimation is not an easy task for both the client and the development team. If the project cost has been underestimated, the project will exceed its total budget. This will initiate other problems such as software with poor quality or underdeveloped functions and most likely project delay (Jørgensen, 2013). On the other hand, overestimating a project, risks the project having redundant resources (Singh & Misra, 2012). Inaccurate estimation is most of the time caused by unsuitable estimation technique applied to the project and at the same time, one perfect estimation model for all types of software project is just not possible. Therefore, an accurate estimation is necessary to manage requirement changes (Bardsiri, Jawawi, et al., 2013; Peixoto et al., 2010).