Agile software development simply describes a set of procedures for the development of software where the requirements and solution tend to evolve via a collaborative effort of the cross-functional team. The principles of agile method tend to support continuous evolution of various software development methods. Some of the agile methods focus on practices such as pragmatic programming and XP while other focuses on workflow management such as scrum (Beck et al., 2001). The essay will focus on major agile software development frameworks.
Extreme programming (XP) by Beck (1999)
It was developed by Kent Beck and has become popular and controversial agile methodology. It helps deliver a higher level software quality faster and continuously. Further, it has been established to enhance a higher level of customer involvement, testing, planning in addition to a close teamwork to ensure that working software is delivered at a frequent interval. It is specifically founded on the following core values: simplicity, communication, feedback in addition to courage (Beck et al., 2001). It allows customers work closely with the team to prioritize core granular units of the functionality. The development team plan delivers high quality this is often in the form of working in iteration-by-iteration basis. It further provides supportive, in addition to a lightweight framework that helps in guiding the team hence ensuring higher quality software. For example, XP is considered the most suitable for the rest of the methods since it helps cut the cost of changes in the requirement through providing several short development cycles.
Scrum (Schwaber, 1995; Schwaber and Beedle, 2002)
It is considered an iterative in addition to an incremental agile software development method, used to manage product development. It allows the entire team to work as one to achieve a common goal. It has further been argued to allow the entire team to self-organize, and this is done by encouraging close line collaboration in addition to face to face communication. It states that during the process of product development, there are instances where a potential consumer might change his or her mind on what they want, and this cannot be easily addressed in a planned approach (Beck et al., 2001). It is thus the most suitable approach since it focuses on evidence- based empirical approach. Further, it emphasizes the need to maximize the ability of the team in order to achieve a quick delivery.
Crystal (Cockburn, 2004)
It is most lightweight methodology and highly adaptable when it comes to software development. It has unique features that are believed to be driven by the size of the team, the priorities of the project in addition to the criticality of the system. According to Beck et al., (2001), the tenets of Crystal has been established to been the following: communication, its simplicity in addition to the teamwork and all this helps to adjust and further improve the overall processes (Beck et al., 2001). It has further been established to have the ability to promote frequent and early working soft ware delivery. Further, it allows for a higher user engagement. Additionally, it is suitable for eliminating potential distractions or even bureaucracy.
Feature-driven development (FDD) (Palmer and Felsing, 2002)
It was developed by Jeff De Luca and later articulated by other researchers. It is therefore considered as a model driven process which begins by creating the model shape. It recommends certain types of programmer practices including Component/Class Ownership in addition to Regular Builds. It has been established that FDD tends to scale more straightforwardly compared to the rest of agile methods. Further, it is different from other methods in that it describes the specific and short work phases that are to be done differently per feature.
Adaptive software development (Highsmith, 2000)
This software development process was created by Jim Highsmith and Sam Bayer in the year 2000. It holds the assumption that continuous adaptation of the process is the normal state of affair. It is essential since it offers a continuous process of learning and adaptation to the projects emergent state. It has been argued to change tolerant; mission focused and risk driven which gives it an advantage over the other methods.
Dynamic systems development method (Stapleton, 1997)
It was established in the year 1994 to specifically device and promotes a uniform industry framework to enhance software delivery. This method is especially founded on core principles which include: business value, active user involvement, and empowered teams, frequent delivery, integrated testing, in addition to stakeholder collaboration (Beck et al., 2001). It is suitable approach since it promotes fitness for the business purpose of the major criteria for system delivery. Various requirements are further identified early within the project. Further, these requirements are planned and then delivered in a fixed-length time-boxes. This method is believed to be highly independent hence can be used together with other iterative methods including Extreme Programming. It is effective in understanding various needs of the business and deliver efficient and cheap software solution (Beck et al., 2001).
Test-driven development (Beck, 2002)
This is another type of agile software development process invented by Kent Beck, which focuses on short development cycles repetition. It is suitable since, unlike other methods, it allows software to be included only if it meets the necessary requirements. Additionally, it has been established to be effective since it encourages the development of simple designs while at the same time inspires confidence. This method has also been argued to offer more validation of correctness in addition to propelling the program design. It is also essential since it provides the ability to undertake small steps whenever necessary. This approach further is believed to result in an advanced modularized and highly flexible code (Beck et al., 2001).
Lean software development
Lean Software Development is one of the agile methodologies developed by Mary and Tom Poppendieck. It derives much of its principles and practices to Lean Enterprises movement in addition to Toyota Companys principles. It aligns the team on delivering a high quality value to its customers in addition to the efficiency of the value stream. It helps to eliminate waste, amplify learning, and build integrity in, delivering fast and empowering team members (Beck et al., 2001). This method helps to eliminate waste using various practices such as choosing truly valuable features for a given system, prioritize them, in addition, to delivering them in small and manageable batches. Further, it has been shown to stress on speed and efficiency within the workflow development. It relies heavily on a reliable feedback between the consumers and programmers. Decision making authority is focused on individuals hence established as the fastest and efficient methods compared to the hierarchical control flow. It emphasizes on the efficiency of team resources making sure that each person is productive.
Agile Unified Process (AUP)
This is considered a simplified version of Rational Unified Process and was developed by Scott Ambler. It generally outlines a simpler and easiest approach to understand the development of business software by use of techniques and concepts that are yet remaining true to RUP. It applies various agile techniques such as TDD, database refactoring in addition to agile change management to enhance the business productivity. It is believed that staffs using this method understand what they are doing hence ensuring high quality. This method is argued to hold the concept of simplicity where all items are described succinctly with relevant links to the details and concisely than other methods (Beck et al., 2001). It tends to focus specifically on those activities that are believed to count hence saving on resources and time. Using the Agile UP, the business can make use of any available toolset especially those that are believed to be suitable for the job, simple tools or open source tools. It has been established that Agile UP can be easily tailored to meet the needs of the business by the use of any HTML editing tool. Therefore, the user of this method will not be required to purchase a special tool or even make an effort to attend a course in order to tailor the AUP. For instance, it has been established to lie between XP and the traditional RUP hence suitable to business in need of a process that is highly agile and entails those activities that are accustomed to the business. XP has been established to be too light and fails to show the procedure to create relevant artifacts, but RUP is considered highly effective and essential. However, AUP is believed not to be for everyone where some extreme programmers consider it fairly heavy while the traditional programmers find it too streamlined. In the event, the business wants a detailed and well defined process of software development the AUP is the most suitable method to be adopted and implemented (Beck et al., 2001).
Roadblocks to Implementation
It is worth noting that there exist several roadblocks to implementing a new project approach in any organization. First excluding key stakeholders is one of the major roadblocks towards implementation since it will lead to potential barriers towards implementation strategies. Most of the organization fails to include stakeholders in the process of implementation resulting in potential barriers to success. Team members can result to a roadblock where project members might direct core resources to other less important projects in order to make progress and this often as a result of lack of proper training and communication. The progress further might result into an inbuilt excuse to yield a potential roadblock. The un-reorganized project team has further been shown to have the potential of creating a roadblock where the organization might have a limited team to fill core areas of responsibilities (Henderson & Evans, 2000).
The essay has critically analyzed different agile software development methods, identifying the suitable environments where the methods work best. It has been established that agile method principles are essential since they support a constant software development methods evolution. Each of the agile methods outlined in the essay has its strengths and weaknesses; therefore, it is important to take a close look at the features for each one of them before making the decision on the most suitable method to use.
Beck, K., Beedle, M., Van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., ... & Kern, J. (2001). Manifesto for agile software development. Retrieved from agilemanifesto.org/
Henderson, K. M., & Evans, J. R. (2000). Successful implementation of six sigma: benchmarking General Electric Company. Benchmarking: An International Journal, 7(4), 260-282.
Need a paper on the same topic?
We will write it for you from scratch!
If you are the original author of this essay and no longer wish to have it published on the SpeedyPaper website, please click below to request its removal:
- Budgeting Essay
- Genetic Assessment
- MONEY AND HAPPINESS
- Air Pollution Prevention
- FIGHTING IN SCHOOLS
- Therapeutic Boundaries Violations
- Audit Report
- History and Background of Rene Descartes
- End of Life Medical Issues
- Institution AffiliationFacing Death in Ancient Greece
- The Internet as a vital tool for political campaigns
- Cognitive Restructuring Technique