The computer software development process, must follow a methodology, which can make the process a much better experience. However, for a development team, to successfully develop a software, they must make sure, that they chose the correct methodology, because integration can definitely stall any software development project. In this paper the advantages and disadvantages of choosing a software development methodology, for any software development project, will be analyzed, in order to understand, why it is important to use a software development methodology. By using an adequate software development methodology, the success rate of a software development project is increased. Choosing a software development methodology, is not an easy task, because a wide range of software development methodologies, have been developed over time.
This paper will also analyze the rule-based technique, which can help software developers, choose the most suitable methodology, for their software development projects. Also factors such as complexity, stability, performance requirement, and project team, as well as criticality, project size and duration of the project are also analyzed, in order to understand their impact on choosing an adequate software development software. Software development projects, have critical success factors, which are identified and compiled on this paper. The four project success categories, such as quality, scope, time and cost are also analyzed and reliability analyses of software development methodology, was also conducted. The delivery strategy, agile software engineering and team capability are three critical success factors, for agile software development projects, these factors are identified and described on this paper as well.
Software development teams have been implementing, a software development methodology, over a decade ago, in order to develop software (Sulaiman, Mahrin & Yusoff, 2016). However; a full understanding on how to implement agile practices, during software development, is still needed to successfully develop software (Sulaiman, Mahrin & Yusoff, 2016). During web application development, a distinct methodology, must be developed, because using existing models can be questionable, when the adequate methodology is not chosen (Soni & Kohli, 2017).
Enterprises all over the world, are choosing to adopt, an agile methodology, as part of their wider IT transformation efforts (Donnelly, 2017). When enterprises and companies fail to implement an adequate methodology, the organization can fall into traps, which can derail a software development project. These problems and pitfalls could be avoided, if the proper process is taken, to choose the correct methodology (Donnelly, 2017). In the IT industry, techniques and skills for managing software development projects are necessary, for the successful development of an application (Mihai Liviu, 2014). The quality of the code generated for an application can be impacted, by the methodology that a software development team choses (Shawky & Abd-El-Hafiz, 2016). The center of attention of software engineering researchers, have always been the development process and the workflow of the production of software (Mahdikhani & Abbasifard, 2016).
The collection of coordinated activities, which are designated to construct a complex software system is known as the software development process (Mahdikhani & Abbasifard, 2016). A corresponding software development process must correctly be chosen, during the development of software (Mahdikhani & Abbasifard, 2016). The success of a software development project, depends on applying the adequate methodology, which plays an important role in software development.
A report of the Standish Group International (2009) on project success rate showed that, 32% of all projects succeeded (delivered on time, on budget, with required features and functions), 44% were challenged (late, over budget, and/or with less than the required features and functions) and 24% failed (cancelled prior to completion or delivered and never used). The use of an adequate methodology plays an important role in developing software, to assure that it is delivered within schedule, within cost and meets users’ requirements (Geambaşu, et. al, 2011). It is not expected to perfectly utilize a software development methodology, even though, there are efforts to employ software engineering methodologies perfectly (Chow & Cao, 2008). It is not common to see consistent successful software development, which results in delayed, failed, abandoned and rejected software projects (Chow & Cao, 2008).
Methods & Results
In an environment where the atmosphere is of constant change, agile methods are the best suited, because of their flexibility and responsiveness, in order to successfully develop a software (Chow & Cao, 2008). Using the Cronbach’s alpha method, computer scientists, were able to perform a reliability analysis on several factors, which may affect the success or failure of an agile software development project (Chow & Cao, 2008). The identification of twelve factors, were identified, and each of them were linked to the four success factors of an agile development project (Quality, Scope, Time and Cost) (Chow & Cao, 2008). The twelve factors identified, which could break or make a software development project are: (Chow & Cao, 2008).
- Strong management commitment
- Agile-friendly project team environment
- Agile-friendly organization environment
- High-caliber team capability,
- Agile-style project management process
- Strong customer involvement
- Methodical project definition process
- Agile-style software engineering techniques
- Correct deliver strategy
- Non-life-critical project nature
- Variable-scope project type
- Dynamic accelerated project schedule
All variations of software systems today, don’t have a general software development technique, that it’s powerful enough, to develop that software, due to many factors (Hanafiah & Kasirun, 2007). Many factors such as human factors, technology factors and the nature of the software, contribute to the choice of the software development project, which would help the software to be successfully developed (Hanafiah & Kasirun, 2007). A tool known as the SUIT-Method was developed, in order to help software development team, make the correct decision, when choosing a software development methodology, for their software development project (Hanafiah & Kasirun, 2007).
Users of the SUIT-Method can choose an adequate development methodology, based on what the needs of the users are, for their project (Hanafiah & Kasirun, 2007). Users can tell the SUIT-Method system, the size, complexity, requirements and details of a project development project, which can help a software development team, choose the correct method (Hanafiah & Kasirun, 2007). Early in the project life cycle, developers can benefit from using the SUIT-Method, because the software methodology and factors, which can impact the project, are carefully analyzed by this tool, in order to fulfill the needs of the software development project (Hanafiah & Kasirun, 2007). A series of factors, influence the suitability of a software development methodology, some of these factors are:
- Clarity of the initial requirements
- Accurate initial estimation of costs
- Development time
- Incorporation of requirements changes during the development process
- Functional versions of the system during the development process
- Software criticality
- Development costs
- Length of the delivery time of the final system
- System complexity
- Communication between customers and developers
- Size of the development team
The success or failure of a project development project, is at the mercy the chosen methodology; therefore, software development teams, must correctly chose the correct methodology for a software development project. A project has their own specific characteristics, which should be taken into consideration when choosing a methodology. Methodologies which best fit the characteristics of a project, can be chosen based on the factors mentioned above. If the factors mentioned earlier, are not taken into consideration when choosing a methodology, the method which is best suited for a software development project, could not be suitable for that project and derail that project.
References Asproni, G., Fedotov, A., & Fernandez, R. (2004). An experience report on implementing a custom agile methodology on a c++/python project. Overload, (64), 9-14.
Chow, T., & Cao, D. (2008). A survey study of critical success factors in agile software projects. Journal Of Systems & Software, 81(6), 961-971. doi:10.1016/j.jss.2007.08.020.
Donnelly, C. (2017). Paired approach offers key to agile success. Computer Weekly, 22.
Edberg, D., Ivanova, P., & Kuechler, W. (2012). Methodology Mashups: An exploration of processes used to maintain software. Journal Of Management Information Systems, 28(4), 271-304.
Geambaşu, C. V., Jianu, I., Jianu, I., & Gavrilă, A. (2011). Influence factors for the choice of a software development methodology. Accounting & management information systems / contabilitate si informatica de gestiune, 10(4), 479-494.
Hanafiah, M., & Kasirun, Z. M. (2007). Using rule-based technique in developing the tool for finding suitable software methodology. Malaysian Journal Of Computer Science, 20(2), 209-224.
Mahdikhani, F., & Abbasifard, M. R. (2016). Modeling software development methodologies: a logic based approach.
Mihai Liviu, D. (2014). Comparative study on software development methodologies. Database Systems Journal, 5(3), 37-56.
Shawky, D. M., & Abd-El-Hafiz, S. K. (2016). Characterizing software development method using metrics. Journal Of Software: Evolution & Process, 28(2), 82-96. doi:10.1002/smr.1766.
Sulaiman, N. L., Mahrin, M. N., & Yusoff, R. M. (2016). Influential factors on the awareness of agile software development methodology: a systematic literature review. Journal Of Korean Society For Internet Information, 17(5), 161-172. doi:10.7472/jksii.2016.17.5.161.