Disclaimer: This is an example of a student written essay.
Click here for sample essays written by our professional writers.

Any opinions, findings, conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of UKEssays.com.

Limitations of Agile Software Processes

Info: 2582 words (10 pages) Essay
Published: 7th Jun 2021 in Computer Science

Reference this

Abstract

The research paper focuses on “The Limitations of Agile Software Processes”. More importantly, it focuses on the applications of Agile Software Processes and its Limitations through this process at various places and stages of implementation. Dank Turk, Robert France, and Bernhard Rumpe contributed to furnish the constraints of agile in a detailed way. Their research started by evaluating the explanations behind the necessity for agile software development and they discussed the prominence of this software development model within the modern-day world. However, their major focus was on understanding how Agile acts as a road blocker in development process of software. They researched how Agile a limitation would be and stated many situations and conditions that limit the scope of the Agile Software Development process.

Get Help With Your Essay

If you need assistance with writing your essay, our professional essay writing service is here to help!

Find out more

The evolution of Agile has started to address the difficulties that the developers face during the Internet time. The motto of Agile was to make things better not just to the developer but to the entire business team. Agile supports business changes at any point of time before production. Irrespective of the development or testing phase, business users can always have a requirement to be altered. With the conventional model of Software Development like the Waterfall or the Iterative model, incorporating these changes would be a troublesome task and would delay the production deployments. But Agile gives the flexibility to make these Ad hoc changes to the requirements. Agile is a blend of proper usage of technical and managerial processes. Agile supports faster deployments and developments. Agile, when properly followed gives a great advantage to business users through its Continuous Integration/ Continuous Delivery feature. It also increases the customer base by providing earlier and faster support during the production of code.

Focusing on the “Agile Alliance”, several processes that claimed as “Agile” was proposed. To support the definition of “Agile”, several methodologies came up to define “Agility”. This led to a better state of what agility means in Software Development. Agile Alliance was formed during the gathering on the development of Agile, which led to the release of the Agile Manifesto, which had a detailed definition of agile, goals and values of Agile Development.

The manifesto has various principles and processes. They can be explained as follows:[1]

  1. The highest priority is to ensure early and continuous delivery of software and satisfy the customers.
  2. Development team and business team should work together daily during the project.
  3. The design should support new requirements even in later stages.
  4. Frequently deliver the working software.
  5. Progress is to be measured by using the Working Software.
  6. The environment should support and provide good satisfaction to the team.
  7. Self-organizing teams help in achieving good design, architecture and requirements.
  8. Face to face conversation is the most effective way to convey information.
  9. Sustainable Development is promoted by Agile processes.
  10. Technical Knowledge and Design Thinking can increase agility.
  11. Making things simple is essential.
  12. Teams should assess effectiveness at regular intervals and adjust their behavior accordingly.

Assumptions:

During the process of developing the agile alliance, the authors have noted some basic assumptions to increase the benefits of the Agile Process.

The Assumptions of the Agile Development process are as follows:

  1. Teams stay together overtime: The framework of the agile process assumes that the agile teams don’t change. The ceremonies like a daily standup, spring planning, retrospective, and review are designed with this underlying assumption. If the teams are volatile, the benefits of the agile process will be overridden.
  2. People are specializing generalists: This is an underlying assumption in the first assumption. This means that people are resources who can be infinite time-sliced across many projects.
  3. People are engaged and motivated: Since one of the qualities of agile is the range of control, developers have on the application. More control would mean more responsibility. When more responsibility lies in the team, the chances of an application’s quality depends on the team. If the team lacks motivation and responsibility, it would result in a bad product.
  4. You’ve got the top 10%: If we really want to get the best results out of agile, we need our team to be highly qualified and taking ownership of the application. For this to happen, we need a team that focuses on continuous learning and adapts to new ways of learning. However, this might happen in all cases.
  5. Teams deliver products: It is often claimed that Agile acts as a product delivery life cycle rather than being a Software Development Life cycle. Usually, agile is optimized for teams that concentrate on continuous ongoing investment but ever-changing codebase. The plan of revolving the teams in temporary and short projects should be minimized.
  6. Projects come to Teams: With the traditional models, we are inclined towards moving the teams around the projects. Before we approve such decisions, we need to understand that the productivity of the team can be reduced due to this step.
  7. Teams are loosely coupled: For establishing a good velocity, the agile teams must be loosely coupled from the rest of the organization. It implies that the velocity of one team should be independent of the other team.
  8. Teams have minimum External dependencies: When a team can deliver the task assigned without acquiring help from other teams, then the dependency level from the other teams would be zero. But this might not happen in all the cases of software development. When the task delivery lies within multiple teams, the dependency would increase. One team might need to wait for other teams to complete the tasks. This would lead to project delays when not handled properly.
  9. Fully engaged Customers:  Fully engaged customers are the basic reason behind many of the advantages that agile provides like less documentation, minimal specification, and continuous inspection. If the customers are not highly effective with this process, agile lacks in providing these key features. The value that the developers deliver would be compromised if the customers lack in communicating their needs.
  10. Established Architecture: Agile methodology doesn’t usually address the process of building a product from scratch. In such cases, the development of enterprise-level projects would be different. Mitigation of risk would be a tedious task. Since agile methodologies lack this feature, it would be a tiresome task.
  11. Minimal Process Governance: Some of the major advantages that agile provides is the elimination of phases, approvals, templates, and change management process. But, most of these features result in less governance. It depends on the level of trust between the user and the team.
  12. Team Members are co-located: The agile ceremonies like Daily Standup, Sprint Planning, Spring Retrospective work on the underlying assumption that the team members are co-located. Not just these, but also the major features of Agile like Pair Programming, Lightweight documentation also assume developers to be in the same place. But, when the teams are working from multiple locations, the way of communication should be improved so that the advantages of agile can be fully leveraged.

While the above assumptions hold good for ideal scenarios, they do not work for general scenarios. In ideal cases, it has the least possibility of occurrence. In the next section about limitations, the authors have focused on the instances where agile doesn’t fetch good and expected results. However, some agile processes fit the assumptions made but others might have some exceptions and limitations. Below are the limitations of agile processes, that the authors have stressed about:
Limitations:

  1. Limited support for distributed development Environments:
    Organizations with global markets and teams across the globe can be a victim to this limitation of agile. The agile practices do not fetch effective results in this scenario. When teams are spread across the globe and customers are from different locations of the world, the chance of face to face communication is very minimal. This reduction in face to face communication leads to less effectivity of agile processes. Although alternatives like video conferencing and phone calls can help, the effectiveness in face to face communication might not be achieved. Since efficient knowledge transfer cannot happen through video conferencing, the deliverables of the team can be adversely affected. In such cases, communication plays a vital role in software development through agile. Good documentation and designs can also be great to help.
  2. Limited support for sub-contracting:

During product development, in scenarios where subcontractors are involved, outsourcing software development would be a tedious task. To minimize the risk involved in this process, the tasks of subcontractors should be defined well in advance. While bidding, the subcontractors are expected to develop a plan with a defined process that includes proper milestones and cost estimation. This should also include an estimate of a number of iterations and increments in delivering the product.

  1. Support to build reusable artifacts:

Extreme programming is a process of agile. In this world of the internet, we are always inclined to generalize the solution, failing to achieve long term benefits. In such environments, generalized software development happens. Every form and every solution is generalized with reusability in mind. Though these artifacts can be reused to achieve a good range of applicability, it also lowers the quality in relation to the number of reused artifacts present in the application. I agree that the development of reusable artifacts is necessary. But there is no proper clarity on the way these agile processes can be followed without hindering the product quality through reusable artifacts.

  1. Development involving large teams:

One of the main features of agile is the low size of the team, which helps to achieve good communication and coherence among the team members. Lower the size of the team, greater would be their co-ordination. The ideal size of an agile team is 4-6. All the agile ceremonies from sprint planning to spring retrospective can be perfectly done with a smaller team. However, it doesn’t mean that Agile cannot be operated in larger teams. But the efficiency that can be met from smaller teams cannot be achieved.

  1. Developing Safety-critical Software:

Safety-Critical software has adverse effects on humans or leads to severe economic damage when unexpected failures occur in the system. The mechanisms for achieving quality control through agile processes are not enough to ensure that the product to be delivered is safe. To address such kind of situation, the authors have mentioned that agile and traditional software development are party compatible. To achieve productivity, they can be merged when necessary.

  1. Developing Large and Complex Software:

This limitation is in line with the problem of having large agile teams. In the case of complex teams, the assumption stating that code refactoring removes the necessity to design for change might fail. Large and complex architectures are expected to have complex design structures and implementation that might not be feasible to change with changing requirements. In these scenarios, change involves a lot of cost for implementation. This might even increase exponentially.

Opinions and Views

The authors were effective in trying to analyze the capability of Agile processes, by considering various real-time software development scenarios. They not just kept the small-scale firms into consideration but also tried accessing the effectiveness of agile processes in large scale companies. Agile, when properly followed, ensuring that all the assumptions made during Agile development by authors are not overridden, would fetch a lot of benefits by increasing the efficiency of the team, product, increasing the quality and reducing the time to market.

Find out how UKEssays.com can help you!

Our academic experts are ready and waiting to assist with any writing project you may have. From simple essay plans, through to full dissertations, you can guarantee we have a service perfectly matched to your needs.

View our services

Though the Agile process has a lot of benefits, from the assumptions and limitations provided by the authors of this paper, we can be skeptical about the efficiency of the agile process in some scenarios. To make sure that we reap good and expected benefits out of Agile, we need to make sure that our organization follows the agile standards keeping the assumptions into consideration. Proper care about the team size, location of the team, and communication would impact the productivity to a great extent.

Insights

Even when I was practicing the agile methodology in my previous organization, I always looked up to this process as a boon to the Software Development Industry. I was assuming that the following Agile would always give good benefits and would increase the productivity of the team. I blamed the Traditional Software Development process to be reducing the efficiency of the team and reducing the authority of the team over the product. I was happy to follow the Agile process that increased the knowledge through good knowledge transfer sessions within the teams through its Agile ceremonies like Sprint planning, Estimation, and Sprint Review.

But now, after carefully considering the assumptions stated by the authors, I understood the limitations of Agile processes. It made me realize that Agile wouldn’t be fruitful in all cases. The range of effectiveness in Agile processes would differ with the conditions of the firm like the team structure, the nature of team members, the hierarchy of the organization and the complexity of the project.

References

1. D. Turk, R. France, B. Rumpe (2002) Limitations of Agile Software Processes.

2. Auer, K., Miller, R. Extreme Programming Applied. Addison-Wesley, 2002.

3. Turk, D., France, R., Rumpe, Agile Software Processes: Principles, Assumptions and Limitations, Colorado State University, 2002.

4. Alghero, Processes in Software Engineering May 26-30, Italy, 2002.

5. https://activecollab.com/blog/project-management/agile-project-management-advantages-disadvantages

 

Cite This Work

To export a reference to this article please select a referencing stye below:

Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.

Related Services

View all

DMCA / Removal Request

If you are the original writer of this essay and no longer wish to have your work published on UKEssays.com then please: