Case 4
Running Head: AGILE METHODOLOGIES 1
AGILE METHODOLOGIES 1
Agile Methodologies: Scrum and Extreme Programming
Institution Affiliation
Instructor
Name
Abstract
There have been arguments for and against agile methodologies that were introduced to suit customers' preferences and increase satisfaction. While some programmers praise the methods for being simple to use, agile, flexible, and superior to other methods, some feel that the traditional methods still have some time to be used effectively and that agile methodologies are difficult to use. This paper explores the reasons why agile methods, including Scrum and Extreme Programming, are considered superior and the counterargument for the same. In conclusion, the paper asserts the advantages of methodologies and points out why they are excellent.
The term agile came about when several process methodologists met to discuss the future of software development. They realized that their methods had many standard features, such as being light, efficient, and sufficient, and therefore decided to call them agile. Agile software's main focus in on people, for example, customer interaction, collaboration, efficient software, and change rather than on tools and plans. Although there are engineering practices that are not agreed on by all software developers, agile methods have increasingly been used and accepted. In the recent past, evidence has shown that agile methods are suitable, efficient, and useful in a myriad of environments and conditions. However, more studies should be done to ascertain the effectiveness and likelihood of using these software development methods (Flora, 2014). Due to increasing uncertainty, people prefer to work with software features that they can control, for example, interactions with customers, management, and colleagues. There is constant change in ideas, people, and problems. Although plan-driven management and style development are still needed, agility and flexibility are the most desirable aspects of growth. Agile software methods strive to provide an answer to the robust business world which awaits software development processes that are faster and light in action (Flora, 2014). All agile methodologies assert that adding lightness to the package accomplishes customer satisfaction and provides high-quality software methods. Among the agile methods include Scrum, Crystal Methods, Adaptive Software Development, Extreme Programming, and Dynamic System Development.
Agile methodologies are superior to traditional methods because they are better suited to tolerate increasingly rapid projects and changing business needs. First, although the project or need is defined before starting, it can be modified at any time, unlike traditional methods. While conventional methods are linear, agile methods are iterative (Linke, 2019). This means that efforts to revert in conventional methods may force the process to start all over again. However, agile methods can handle complex projects and are, therefore, superior and efficient.
Moreover, requirements can be given at intervals, therefore increasing the chances of the user and developer understanding. The project can also be divided into sections (modules) to determine the solution, which can be delivered occasionally (Linke, 2019). Moreover, the user has a chance to review the answer given and decide whether it meets his or her need, thus promoting quality results. This characteristic of adaptability is essential, especially in complex projects which generally have many interconnected parts. Agile methodologies enable managers to take risks due to their flexibility.
Moreover, agile methodologies are flexible, a quality that is most desired by managers and developers (Linke, 2019). When customers request changes, developers can make them as they only work on a small part at a time, and the customer approves every sprint before it is finished. In agile methodologies, one can create re-usable compartments. Another criterion of the effectiveness of agile methods is that there is less documentation, which reduces expenses and time consumption. Also, when using agile methodologies, control is not centralized. Instead, the members are divided into groups. Each group works on a project and is self-managed. But, they come together with all other groups for discussions and process links (Linke, 2019). Agile projects comprise of the product owner who oversees every project and has expertise on the project, the scrum master who looks overall processes and makes sure that iterations are complete, and the team which comprises of members. Agile methodologies have very high customer engagement, which makes them superior.
Scrum is one of the light, agile methodologies that have vast applicability. Its popularity among agile users stems from its productivity and simplicity. It also wraps up a myriad of engineering practices that are found in other agile software methodologies. As with all agile methods, Scrum has the product owner, the scrum master, and the team. The product master prioritizes items through a backlog, which comprises of features and requirements that must be met for a software system to work (CollabNet, 2020). Scrum works with real results rather than assumptions. The sprints, which are usually one to two weeks long, are work cadences. At the end of every sprint, the team gathers, discusses the increment of the potentially shippable product, and plans the way forward. Moreover, Scrum is a stable combination of responsibilities, meetings, and role, which eliminates the unpredictability of learning and discovery (CollabNet, 2020)
Extreme Programming (XP) is another agile methodology that has rapidly gained popularity among companies making it very successful. Its success stems from its focus on customer satisfaction (Wells, 2009). The methodology delivers software immediately, unlike other processes that deliver far off in the future. Moreover, it adapts to customers' needs long after the procedure is initiated. Extreme Programming focuses on teamwork, where all team players are equal, hence creating a collaborative team. Since it creates a simple and active environment, groups using XP become highly productive and organize themselves to solve problems with maximum efficiency (Wells, 2009). Moreover, its effectiveness is improved through simplicity, feedback, communication, courage, and respect. It has a simple design, and the programmers can efficiently communicate with their customers and make changes as fast as possible. Through each member's contribution, members develop respect for each other, and as a result, programmers respond to changing technology courageously. A shared feature between Extreme Programming and Scrum, which leverages their position in the technological world, is the simplicity of the rules. The rules are dynamic and can be changed to suit a company’s preferences.
Although there is overwhelming evidence of the positive aspects of agile methodologies, there are counterarguments that discredit them. Some programmers argue that using agile methodologies puts pressure on the team to perform. Vahrol (2018) argues that people may think that they understand agile methodologies from what they have read, which may be wrong and misleading. He adds that many people practice these without understanding the underlying principles. Moreover, some members may resist agile methodologies because they feel threatened and want to continue carrying out processes in the same old-fashioned manner (Vahrol, 2018). There is also an argument that most people are turning to agile because they want to appear modern. These people may be using traditional methods that serve them well, but seek to switch to agile methods for a change (Vahrol, 2018). When a company has established its processes through other means, it would be costly to switch to agile methods, such as the documentation process.
Also, it is argued that if one’s project or application cannot be broken into smaller processes, it is impossible to utilize agile methodologies (Vahrol, 2018). Moreover, Denning (2012) of Forbes Magazine observes that agile is made for innovators and stars just like its creators. He argues that not all teams can be self-sufficient, like agile methodologies need, and not all teams are disciplined or skilled enough to organize themselves (Denning, 2012). In this way, agile methodologies are designed with the assumption that all its users are competent. Moreover, agile methodologies have little documentation; therefore, new users are stranded when they cannot understand certain features leading to difficulties in use. Because agile requires little preparation in its initial stage, the project may quickly fall out of track. It is assumed that the customer's needs are always changing; however, the programmer may not fully understand the changes a customer wants to be made and focus on the wrong areas (Denning, 2012). Some companies also argue that agile is not suitable for them because everyone in a team is the same, because hierarchy is essential in the corporate world.
Although there are valid counterarguments about the superiority of agile methodologies, their perks outweigh their disadvantages. While they may exert pressure on the team, it ensures that the team produces quality work. Agile methodologies such as Scrum and Extreme Programming have simple rules and guidelines, which can be used by virtually all users. This negates the statement that agile is challenging to use. Moreover, agile methodologies are more volatile and efficient than traditional methods; therefore, those who switch to agile do not only want to appear modern but also want to change with changing technology. Besides, agile methodologies are highly versatile. Agile methodologies promote teamwork, through which respect is maintained; therefore, there is no insubordination. It is vital to note that it is rare for agile projects to fall off track since they are divided into iterations, and changes can be done to the parts at any point in the process. Therefore, the argument that projects can fall off track in agile stands true for the traditional methods. In light of this evidence, agile methodologies are superior to conventional methods, and are suitable in the fast, changing technological world. Due to their agility and lightness, they can be used for complex projects and can be used by programmers, developers, and customers alike to improve customer satisfaction.
References
CollaNet. (2020, February 16). What is Agile methodology? CollabNet VersionOne Resources. https://resources.collab.net/agile-101/agile-methodologies
Denning, S. (2012, December 11). The case against Agile: Ten perennial management objections. Forbes. https://www.forbes.com/sites/stevedenning/2012/04/17/the-case-against-agile-ten-perennial-management-objections/#36ce2d043a95
Flora, H. (2014, January 1). (PDF) A systematic study on Agile software development Methodlogies and practices. ResearchGate. https://www.researchgate.net/publication/266742256_A_Systematic_Study_on_Agile_Software_Development_Methodlogies_and_Practices
Linke, K. (2019, September 6). (PDF) Traditional and Agile management approaches. ResearchGate. https://www.researchgate.net/publication/335724209_Traditional_and_Agile_Management_Approaches
Varhol, P. (2018, February 6). 8 reasons to ditch Agile. TechBeacon. https://techbeacon.com/app-dev-testing/8-reasons-ditch-agile
Wells, D. (2009). Extreme Programming: A Gentle Introduction. https://www.extremeprogramming.org/