Agile software development is a collective group of software developments in which solution and requirements evolve through collaboration between cross-functional teams and self-organization. It promotes evolutionary development, adaptive planning, continuous improvement, early delivery, and flexible response and encourages rapid to change. It is a conceptual framework that emphasis on frequently delivering growths of working software.
Advantages of Agile Model:
One of the advantages of agile model development is the ability to evolve and emerge, and the ability to embrace change. In agile model development the focus is more on building the right product. This makes agile model creation a team as much as enjoyable for many individuals in an active Business, engagement and partnership way. It leads to the creation of a highly motivated and successful team (Dybå & Dingsøyr, 2008, p. 12).
Disadvantages of Agile Model:
There are several shortcomings and risks that are associated with agile method. The biggest shortcoming of agile methodology is how they handle large teams. Highsmith and Cockburn concluded that agile technology is very difficult for larger teams, as size increases and interfaces coordination becomes a predominant concern. They also believed that agile with face-to-face communication breaks down and later become more complex and difficult with developers (Nerur, Mahapatra, & Mangalaraj, 2005, p. 31).
The conflict between cost, quality, and time occurs in agile development or implementation process. As one progress from design, analysis, testing, coding and production, it is evident that the cost of solving a problem increases exponentially. When fixing the problem it will be realized that there will be an increase in cost after production, a cost of roughly 50 to 100 times more than eradicating the problem in the design face. It is also evident that when reducing this cost, it is recommended that one should use heavyweight methodologies so that a lot of time is spent in an open requirement gathering. Although with time it cost less to implement a change with XP than it will cost to implement with the traditional methodology (Nerur, Mahapatra, & Mangalaraj, 2005, p. 41). In order to reduce the cost during implementation it is advisable to follow the following step during implementation process:
- Test-driven development and unit testing ensures that the errors and bugs are found early and quickly so that it would be cheaper to solve.
- Functional testing and on-site customer testing is important since it ensures the specification and analysis of the system is precise and up-to-date with the business/users requirements.
- Pair programming must be used since it allows two or more developers working together on a single computer to increase the chance of lead to a simpler model/design or finding the bugs.
- Increasing design consistency and refactoring improves flexibility and simplicity to the structure during implementation of the model since it ensures that the system is easy to use and well-designed.
- Regular release of agile model feedback from both the customer and the production team during implementation phases helps to make the product cheap as possible in order to be used by many people.
The principles of agile project management are in discomfort of the high cost of fitting errors keeping in mind the specifications, design features, fast track feedback and outstanding implementation. However, according to Laurie Williams, this does to transcend to the fact that agile process is there to increase or decrease the cost development as compared to traditional process such as heavyweight. Based on figure 1 below, Laurie is able to document the above information in graphs to help explain further about the above concern. In Figure 1 graph a, it shows the expense that arises from traditional methods over a certain period. It also elaborates that most of the expenses come from new development and some of the revision that is undertaken in the process development cycle. Contrary to figure 1 a, 1b indicates a cost pattern for the Agile (XP) process (Dybå & Dingsøyr, 2008, p. 24).
Here the information content is the opposite, since it shows extra spending on the revisions and less on the process of development. In respect to both the graphs it is obvious that the same amount of spending that happens over the same time exists. William stipulates that solid anecdotal evidence is credible, but shows that additional revision does not supersede the cost of initial specifications such as engineering, design and preparation. One of the most challenging tasks of using agile processes is to introduce the process into a company or organization that has used it a longstanding conventional system (Dybå & Dingsøyr, 2008, p. 66).
The problem of change to agile model is directly reflected to the managers who are required to persuade and advise employees on the merits that come with adoption of agile method. This is because agile systems come with different issues such as the [ The Large Project Up-Front ] culture known as a different culture. This culture, for example, comes with freedom within the structure of the programme. Therefore, such organization should understand that implementing an agile process will mean that the organization will change its functions and also change the employees and funding profile as well in the organization.
Comparison with Other Methodologies
Aboriginal methodologies have been around for a considerable amount of time. The Waterfall Model has been utilized within a small and larger set of software programs since its introduction. For many projects, this methodology has been successful, and is therefore considered to be an added advantage for many organizations, both currently and those that used them previously. However, despite the benefits that come with this method, there are various demerits that come with it such as inflexibility is adopting its requirements, high formal process that come irrespective of the project sizes amid other drawbacks (Highsmith, 2002, p. 77).
The drawbacks highlighted in the Waterfall methodology was boosted by Kent Beck, who took into account of these drawbacks and was able to come up with extreme programming; this is the first form of agile methodology produced. Agile methods are flexible hence able to work with unstable and volatile requirements by adopting a number of techniques that focuses on partnerships between clients and developers to support early and fast delivery (Highsmith, 2002, p. 101).
Application of Agile Model
Agile model has been widely used for development of several software products since most of them use certain features of software, such as object technology. Nevertheless, these models can be practical to the development of non-software products e.g. motor vehicles, food, clothing, computer, and medical devices.
The model can also be applicable in other areas of life e.g. raising children. It has been successful in child development due to its basic management principles such as awareness, adaptation, and communication. Agile model development can be applicable to raising children as well as household management (Paetsch, Eberlein, & Maurer, 2003, p. 23).
- Dybå, T., & Dingsøyr, T. (2008). Empirical studies of agile software development: A systematic review. Information and software technology, 50(9), 833-859.
- Highsmith, J. (2002). Agile software development ecosystems. Addison-Wesley Longman Publishing Co., Inc..
- Nerur, S., Mahapatra, R., & Mangalaraj, G. (2005). Challenges of migrating to agile methodologies. Communications of the ACM, 48(5), 72-78.
- Paetsch, F., Eberlein, A., & Maurer, F. (2003, June). Requirements engineering and agile software development. In 2012 IEEE 21st International Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises (pp. 308-308). IEEE Computer Society.