Abstract
Project management is a process tasks and activities are planned, organized, assigned resources and executed within a given budget and period. There are several software management methodologies that are used in the process of managing a software project. Since there are many of the techniques and methods, this articles selects and analyzes some of them. This is to help managers in making a decision which tool to use depending on their needs. Methodology in software project management means a standard practice that sometimes with guides and procedures on how to carry out activities. Methodologies are sometimes diagrammed to illustrate procedures that project team members will use.
1.0 Introduction
Project management is a process tasks and activities are planned, organized, assigned resources and executed within a given budget and period. There are several software management methodologies that are used in the process of managing a software project. Since there are many of the techniques and methods, this articles selects and analyzes some of them. This is to help managers in making a decision which tool to use depending on their needs. The main reason for looking at the software methodologies is the limited information on the usage of the methodologies (Cutts, 1988).
1.1 Purpose of this paper
This paper seeks to research on the most used software project management methodologies. The methodologies that will be reviewed are the currently being used. General information on each of the selected methodologies will be discussed with emphasis on their key points, advantages and disadvantages. Methodology in software project management means a standard practice that sometimes with guides and procedures on how to carry out activities. Methodologies are sometimes diagrammed to illustrate clear steps that are supposed to be followed. Techniques on the other hand are a method of gathering information about a software project in a complex manner.
2.0 Methodologies
There are several software development methodologies that will be highlighted in this section. The methodologies that will be discussed in respect to software project management include; Rational, SSADM and PRINCE2.
2.1 Rational Unified Process (RUP)
This is a methodology that was designed by Rational Software Company which was acquired by IBM in 2003. This is a methodology that involves large amount data and formal processes. This is the reason why software designed with this methodology has high level of details. RUP is easy to adapt because it is documented using Unified Modeling Language UML (Cobsilen, Tablang & Ruiz, 2012). This methodology has a bigger difference with other major software methodology because it does not use waterfall approach.
The phases of RUP are not strictly followed in the development cycle of software. The main phases in RUP are requirement, analysis, design, implementation, integration and testing. Interactive approach is instead implemented in RUP where a software product is produced during the succession incremental iterations. The iterations have the phases of software development as illustrated in figure 11 below.
There are several application areas of RUP because of its modular nature. This methodology is applicable in all types of software project regardless of the size, cost and time period. However, because this methodology is very complex, it is recommended for large projects where there is enough time to follow all the documented procedures.
Rational unified process is efficient because of the iterative approach. It is easy to test the project product during each iteration instead of testing at the end of the whole project cycle. These ensures that the end product is successful and meets all the requirements with minimal errors. Efficiency also occurs in the RUP because it is not mandatory that one phase is completed before starting the next one like in waterfall approach. It is possible to work on the next phase while the first phase is not yet complete. Given that the first phase and subsequent phases deliver a software product implementation can be done at the same time while the software moves into the next iteration cycle.
It is not possible to define all the software requirements especially of the project is large. RUP gives the project team an opportunity to introduce new requirements during development. This approach takes care of the creep requirements which in other approaches are difficult to add. This software development methodology is distributed to team members in a softcopy hence all the requirements that the team members may need are readily available. There is no need for members to go out in search of RUP information. Softcopy also ensures that team members have a synchronized copy or version of RUP.
RUP is commercially available hence one must purchase to have a copy. There is no shareware or open source software. RUP is only found in an electronic format hence having limited use. This methodology is also complex because of detailed procedures of software design. This makes it unsuitable for small projects. The software program also requires the team members to learn how to use it before they can apply RUP in a project.
2.2 Structured Systems Analysis and Design Methodology (SSADM)
SSADM is a software project development methodology that is widely used. In UK for instance, it is one of the requirements for computing projects of the government and it has been largely adopted in Europe. SSADM was launched in 1981 with further improvement up the stable version delivered on the market in 1990. SSADM unlike RUP it is a standard ad open software implying that it is free for use. This has enabled it to stabilize because many companies have supported it (Kruchten, 2004).
SSADM take an approach of waterfall systems development where there are a sequence of steps which are to be accomplished one after another. The figure 2 below illustrates SSADM’s phases.
The first step is feasibility study which entails analysis of the business area and determine if the software project if feasible or doable. The second step is requirement analysis where the current business environment and business systems options are evaluated. Requirement specification and logical system options are the third and fourth steps respectively while project design is the last step or phase in SSADM. SSADM is a methodology that uses three techniques; Logical data modeling, data flow modeling and entry or event modeling.
SSADM can be used in all projects of all sizes small, medium or large. It can be used to new projects starting from scratch or existing ones that need maintenance or upgrade.
Given that SSADM is standard, it can be freely acquired. This has enable many company to offer training materials and CASE tools. The SSADM approach of splitting the project tasks into modules, stages, task and steps which are easy to manage. The management team is able to easily execute project tasks. If the project manager is in control of the project tasks, the it becomes effective and deliver quality products. There are clear steps in requirement analysis hence the chances of adding new requirement are minimal.
This methodology assumes that requirements will not change or misunderstood at the initial stages of the project which is impossible in a dynamic project environment.
2.3 eXtreme Programming (XP)
this is a software engineering methodology that was developed by Kent Beck in 19196. Software project management can use this methodology in designing their software project. There are two practices in this methodology that are regarded as controversial; pair programming and test-driven development. This methodology is aimed at reducing risks in the software development and management process (Sambasivam, (2004).
In project management, delays in making decisions can result into huge losses. XP is aimed at reducing the cost as a result of delaying decisions. This methodology pays attention to the cost and revenues of design decisions. Delaying decisions on whether to implement options in software development is very risky. This is because implementing options later becomes more expensive at a later date.
XP methodology is made of releases just like iterations of SSADM where the first release gives a working version. Further releases just build up on the initial release where additional features are made and errors from the previous version are fixed. This methodology allows the stakeholders to add requirements because the requirements are not fixed. Before the commencement of the project customer requirements are grouped into stories. The customers select the story with highest priority during the start of a next iteration.
This methodology is applicable for small and medium size projects. It is also most suitable in situations where requirements are not very clear and there are chances of additional requirements later in the development of the software. Some of the advantages of this methodology is that an earlier working version is produced after first release. This reduces the chances of final product failing to meet the user requirements because they are improved based on user feedback.
3. Conclusion
Software methodologies are very important in software project management. Project managers should select a project methodology that they are familiar with and is most suitable for the project. The size of the project and the duration for the development of a project should be considered in software development method. This paper has only looked at three software development methodologies with much emphasis on the management part. There are many other software methodologies that can be selected in a project. It is also possible to combine two or more methodologies in a single project.
Work cited
Cutts, G. (1988). Structured systems analysis and design methodology. Van Nostrand Reinhold Co. Retrieved from: http://dl.acm.org/citation.cfm?id=48812
Hughes, B., & Cotterell, M. (1968). Software project management. Tata McGraw-Hill Education.
Cobsilen, K. J., Tablang, C. J. P., & Ruiz, L. (2012). Rational Unified Process (RUP). SCSIT Research Journal, 1(1). Retrieved from: http://journals.smu.edu.ph/index.php/scsitrj/article/view/31
Sambasivam, G. (2004). Extreme Programming (XP). Agile Alliance, www. agilealliance. org/articles. Retrieved from: http://www.unf.edu/~broggio/cen6016/ExtremeProgramming(XP)Article.pdf