Agile Methodologies for Software Development

Agile Methodologies

Name

Institution affiliation

Agile Methodologies for Software Development:

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. In an active Corporation, involvement, and collaboration manner this makes agile model development a team as much as enjoyable place for many individuals. As a result this helps to develop a highly inspired and performance 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 since size grows and coordinating interfaces becomes a prevailing 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).

Implementation Process:

In agile development or implementation process there exist a tension between cost, quality, and time. 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 shows an Agile (XP) method expense structure (Dybå & Dingsøyr, 2008, p. 24).

Here the content of information is opposite because it shows extra spending on the revisions and less on the development process. With reference to both the graphs it is clear that there exist the same level of expense that occurs over the same time. William stipulates that, robust anecdotal evidence is reliable, but depicts that extra revision does not supersede the expense that come with upfront requirements such as engineering, designing and planning. One of the most difficult tasks that come with the use of agile process is the introduction of the process into a firm or organization that has been using a traditional structure for many years (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 processes come with different issue such as a different culture known as [The Big Design Up-Front] culture. For example, this culture comes with freedom within the program structure. 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. Since its introduction, the Waterfall Model has been used within a small and a larger set of software programs. This methodology has been successful for many projects, hence considered as an added advantage to many organizations, currently as well as 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).

References

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.