Software development has taken many forms these days and always new and sophisticated techniques are introduced with respect to software development process. Initially development of software is considered as the biggest task as it includes many steps and procedures to complete a single cycle of software development . There are many software development models proposed across the literature of software engineering and each of them are proved to be successful in few aspects and failed to contribute the maximum level of development feasibility with respect to the software development process.
Across any software development methodology, the crucial step that should be given the top priority is the requirements gathering phase and the software vendors almost spend 30 to 40 percent of the software development time in gathering the requirements . Requirements gathering are the key step across the software development process and there are different techniques followed by the software organizations with respect to this step and apart from the level of efforts buried across the requirements gathering phase, at some time the clients or the vendors fail to contribute their best in delivering the requirements. The traditional way of gathering the requirements for a particular software development includes many meetings among the clients and software vendors and they use to come to a common agreement with respect to the requirements.
Whenever the requirements are freeze, modifications to the client requirements and changes to the current work done is done in most of the cases, due to miscommunication at the stage of meetings done at the requirements gathering stage and due to lot of rework is done and finally the project deliverables are affected a lot with respect to this. Due to miscommunication and less interaction at the requirements gathering phase, there are some cases where the project are failed abruptly and the clients and vendors end up with lot issues. In general a requirements gathering phase include lot of hidden issues and the clients and vendors should be wide open enough while explaining the requirements and each and every step that should be included in the software should be discussed in detail, such that changes in the requirements and modifications to the software developed will be reduced in future.
Irrespective of the efforts kept by the clients and vendors at the requirements gathering phase, always there would be lot of issues that can’t be avoided and thus to reduce these issues, there are many tools that were in the implementation for a perfect requirements gathering methods. Requirements gathering has very important role in software development and even there is a separate area with respect to this like requirements engineering where different methodologies and frameworks are introduced with respect to requirements gathering phase and different requirements gathering techniques are introduced with respect this phase.
In general requirements can be categorized in to different types like client requirements, architectural requirements, functional requirements, structural requirements, behavioral requirements, design requirements and performance requirements. If the clients and vendors are not clear with any of these requirements the software that is being developed would end up with lot of issues irrespective of the number of tools and techniques followed in gathering the requirements in the software development process.
Waterfall project management is a well know technique followed across many projects and proved to a successful implementation with respect to the requirements gathering phase and later where the client requirements are changing and increasing this model could not handle the changes in an effective manner, as the waterfall project management model is sequential and there is no scope to handle the changes as back tracking the model is not possible with respect to this model. To solve these issues, always there is lot of research done with respect to a perfect implementation of a tool that can handle the software development and requirements and the recent development in this area is Agile project management model.
Agile project management is an iterative model, where handling the changes in the requirements can be done effectively as there is scope for lot of iterations. Requirements are determined from the client in an iterative manner and even the software can be delivered in a highly effective and interactive manner. In general Agile project management has many implementations for a perfect requirements gathering step and delivery of the project and the main of this project is to investigate and critically review the importance of Agile in project management and different tools involved in the Agile framework .
Agile scrum methodology is commonly used methodology used these days across the software development process. The main advantage with the Agile scrum methodology is that is follows an empirical process control framework across the software development process. In general the agile scrum methodology uses the accurate and real time progress of the data rather than the assumptions or best guess process across the software development process. Agile scrum methodology is applied to the software development process in parts and these parts are usually known as sprints and these sprints are something like the deadlines.
In general these sprints can be of one week, two weeks or three weeks and so on and at the end of each sprints, the project stakeholders and the team members review the progress done across each sprint and if the required aspects are covered across the sprint, then the sprint is said to be successful or it is declared as sprint fail, even a small deliverable or update is missing across the sprint. In general there are different roles across the Agile scrum methodology like the Product owner, Scrum master and team member and each of these roles as some responsibilities to be executed.
Following are the research questions identified with respect to this research
- What is the importance of Agile project management and how it is different from existing project management models?
- What are the different Agile project management methodologies and what is their role against different phases of software development?
Aims and Objectives
Aim: To investigate and critically review the importance of Agile project management with respect to various stages of software development
Following are the research objectives
- To review different software development models and evaluates the key limitations in comparison to Agile project management method.
- To critically evaluate different Agile methodologies with respect all the stages in the software development process
- To understand the Agile life cycle and different tools related to Agile project management method.
- To review the concepts like scaling the Agile, Agile design and Agile testing and evaluate the corresponding implementation procedure.
Agile project management is widely used across many organizations these days due to the number of excellent features available with Agile framework. The key feature available with Agile frame work is that it provides a very light weight components across the software development method and also light weight activities that can be used for a simple way to project development and deployment. In general these activities include all the required components at each stage of software development like requirements gathering, design, coding and testing the software.
Most of the agile development methodologies concentrate on the software management aspects, but the key functionality of agile framework is enhanced at the stages of coding, testing and delivery of software artifacts. In general as per the definition of software engineering institute, a project management methodology should meet some basic requirements and methods to be called as a perfect methodology and a typical project management model should include some key features as listed below
- Work environment
- Project management tools
All the key features included above should be perfectly connected and collaborated to achieve a perfect project management model and in general Agile is completely built on this basis and holds the complete grip on every aspect as listed above. The main focus of this type of framework is concentrated on the people and the corresponding communication standards with respect to the software development model.
Agile software delivery process
In general the software delivery process implemented across the Agile project management is very rapid and accurate when compared to other existing project management methods. The process of adoption towards the changes in code, project or product is streamlined across the Agile framework and also includes many techniques to handle the changes in the requirements or the complete products in an easy manner without much sophistication and complexity. In general the Agile process can be divided in to three important aspects as discussed below and the complete functionality of the Agile can be described with the help of these steps
- Agile is incremental and Evolutionary, where the changes related to the internal and external environment can be easily adopted
- Agile is modular and lean, where the process involved in developing the software can be easily modified as per the requirements of the users and stakeholders
- Agile is time based, where the iterative methodology is implemented across the software development process and also includes the feedback loops and progress checkpoints.
Managing the change across the software development can be considered as the tedious job to be handled and in general most of the organizations fail at this stage. In general handling the change is not a problem, as the world is changing continually and thus the requirements from the client also changes in a very natural manner. Handling the changes from the client involves lot of issues and requires a perfect plan and proper change management methodologies to achieve success in delivering the required changes as per the client requirement.
In general the changes across the software development can be of either liner or non-liner and handling the liner changes is not a great deal and the main issues raises when the changes or of radical and non-linear and most of the change management procedures fail at this level. Agile can be considered as the best project management method that can be used to handle these types of changes in a convenient manner. Agile provides a perfect methodology to handle the changes in the requirements and ensure a rapid delivery of the software without any further issues.
In general the research methodology can be of either qualitative or quantitative based on the research being done. Quantitative research methodology is done to proceed with this research and an empirical investigation is done towards different software development models in place for a successful delivery of the project. Each and every software development model is reviewed and compared against the process followed and a comparison is done with the agile framework to evaluate the importance of agile framework.
As the main aim of this project is to understand and review the importance of agile project management model, secondary source of information is used across the research. Gathering the primary source of information is really tough across this project, as access to the organizations which are using Agile framework is not provided. Thus primary source of information in the form of interviews or semi structured interviews is not possible in this context and thus I would like to use only secondary source of information to proceed with this research. The required secondary source of information is gathered from different websites, articles and journals and few of them are listed as below. To test the validity of the research done, agile scrum methodology is reviewed initially and compared with the existing models like water fall model and V model.
|Task||Description||Start Date||End Date||Duration|
|Introduction||Basic introduction to the project along with the problem definition and aims and objectives are defined in this section.||2 weeks|
|Literature review||Following tasks are covered across literature review
|Research analysis||Following aspects are covered under this section
|Research findings||Following tasks are covered under this section
|Conclusion and Future work||Overall conclusion to the work done and the future recommendations are covered in this chapter||1 week|