CMP73010: Agile Software Development Methodologies Report

Verified

Added on  2022/10/09

|11
|2720
|14
Report
AI Summary
This report provides a comprehensive analysis of agile software development methodologies, focusing on their application to different client projects. It begins with an overview of agile methodologies, their history, and their advantages over traditional approaches. The report then delves into specific methodologies, including Scrum, Extreme Programming (XP), Feature Driven Development (FDD), and Dynamic Systems Development Method (DSDM), evaluating their strengths and weaknesses and determining which methodologies are best suited for specific project types. The report includes a C# code example demonstrating automatic document generation, a key component of the assignment. The analysis covers the suitability of each methodology for both small start-ups and large companies, considering factors like team size, project scope, and the need for quality control. The report also discusses the importance of flexibility, adaptability, and collaboration in agile development and provides a detailed comparison of the methodologies, highlighting their adaptability and ability to allow progress tracking. The report concludes by summarizing the key findings and recommendations for selecting the most appropriate agile methodology for a given project.
Document Page
Agile Software Development Methodology 1
Agile Software Development Methodology
Student Name
Institution
Course
Date
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Agile Software Development Methodology 2
Executive summary
This paper scrutinizes the agile methodologies in the project development process. In the
introduction part, it has analyzed the importance of methodologies in software development. The
second part has given an overview of the agile methodology as well as its history. Thereafter, it
has analyzed different methodologies such as Scrum, Extreme Programming (XP), Feature
Driven Development (FDD) and Dynamic Systems Development Method (DSDM) on the basis
of where each of them works best
Introduction
People working in the software development industry understand that the art of software
development is a special art which is very different from the rest of engineering projects. It is
special and different because it demands the full attention of team members who are flexible,
adaptable and willing to respond quickly to the changes which may arise overnight from clients.
This is what agile process entails
Agile Methodology Overview
Agile methodology is a project management process that is mainly used in the software
development cycle where demands and requirements of the products evolve from time to time in
collaborative efforts of cross-functional and self-organizing teams as well as customers. As
stipulated in its values and principles, the agile methodology was initiated as a response to the
inadequacies witnessed in the traditional software development methods like the Waterfall
method (Patwardhan et al., 2016). Based on the fact that software requires continuous upgrades,
the software industry has turned out to be very competitive, forcing developers to constantly
Document Page
Agile Software Development Methodology 3
innovate and improve their products in order to remain on top of the game. This aspect was not
achievable in linear and sequential approaches of the waterfall method.
The history of agile development is traced back in the 1990’s after the software development
faced “application delivery lag” crisis. Through the experience of the crisis, it was realized that
the industry could not move fast enough to meet customer requirements and demands because
the time between business needs and actual development was very long (Peroni, 2016, p.55).
This was linked with the fact that traditional development models only considered the time factor
where development took place sequentially without revealing final products to customers until
completion. As a result, flexibility on changes and progress reviews was highly limited because,
by the time actual applications were finished, some of the requirements and original objectives of
the system would have changed already.
Possible Agile Methodologies for Client A
Extreme Programming (XP)
Extreme Programming is one of the foremost Agile methodologies that involve a high degree of
participation between its two main parties: developers and customers in the development
process. Customers inspire further development by emphasizing or outlining the most desirable
features of software through testimonials. On the other hand, developers pay keen attention to the
feedback obtained from customers to initiate necessary upgrades while continuing to test new
innovations in a progressive manner (Anwer et al., 2017, p.5). On its upside, Agile methodology
demands a high level of collaboration between customers and developers and minimum up-front
documentation. It is an efficient and persistent delivery model which requires a great level of
Document Page
Agile Software Development Methodology 4
discipline and full involvement from people beyond the IT world. As identified in the case
description, client A is a small start-up and hence XP would be an appropriate agile methodology
since it works best among small teams.
Scrum methodology
Scrum methodology is a lightweight agile project management approach that is used to manage
both incremental and iterative projects of different kinds. Over the years, it has gained popularity
because of its simplicity, ability to incorporate overarching practices and its proven productivity.
With the scrum approach, product owner works closely with the development team to prioritize
and identify system functionality through product backlog process (Tirumala, Ali and Babu,
2016, p.5). Product backlog lists the needs of a project to deliver a working system such as bug
fixes and non-functional requirements. After the establishment of the priorities, the cross-
functional teams estimate and sign up to deliver the system in successive sprints of
approximately 30 days. Once a product backlog is analyzed and prioritized, the next set of
deliverables is selected for the next sprint. This methodology works best with lightweight
projects or small projects hence the project of Client A can adopt this methodology since it’s a
startup.
Possible Agile Methodologies for Client B
Feature Driven Development (FDD)
This is a developer centred methodology that involves turning models into builds in every time
there are iterations. Contrary to other methodologies such as XP and SCRUM, this methodology
centers on strict operations through domains, designs, code and inspection. The model is created
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Agile Software Development Methodology 5
with a list of features where each feature has a design and development plan (Mahdavi-Hezave
and Ramsin, 2015). After a series of inspections, unit tests are done to make sure that they are
ready for build stage. Organization of the building process is very strict on FDD which results in
viable software which can be produced consistently. Also, FDD facilitates to quality design/code
and documentation of assessment. However, it demands an advanced level of planning foresight
and design skills. This is in consideration of the fact that early imperfections lead to prolonged
corrections which are costly. It is the most optimal methodology for big businesses where
maturity and quality control is obligatory. Considering the fact that Client B is a large company,
it will definitely require maturity and quality control which can be achieved best with the use of
FDD methodology.
Dynamic Systems Development Method (DSDM)
Dynamic Systems Development Method is an agile methodology that grew out of the desire to
provide a common software industry framework for rapid delivery of software. This
methodology has been evolving to provide a comprehensive foundation for planning, executing,
managing and scaling iterative software development projects. It is based on eight principles
which revolve around business needs, active user involvement, empowering teams, continuous
delivery, integrated testing and stakeholder collaboration (Vogelzang, Admiraal and Van Driel,
2019). It majorly focuses on business purposes as the main criteria to deliver acceptable systems
which focus on usefulness part of the system that can be delivered on time. The business
requirements of a project are baselined at a higher level of the development process where
reworks can be integrated into the project. The system requirements are usually planned and
delivered in short term basis also known as iterations or sprints. It is a favorable methodology for
Document Page
Agile Software Development Methodology 6
client B because the project is expected to be very large to an extent that it must be delivered in
sub-sections to avoid wastage of resources at the end of the project.
Arguments for and against different Agile Methodologies
Although scrum methodology can be applied in both Client A and Client B projects, it may not
work for client B because of the large scope of the project. This is in consideration of the fact
that scrum methodology reflects agile principles which are anti-agile in real sense. It is not a
good methodology especially when projects are enterprise-wide, large-scale and complex. The
reason behind this conclusion is that scrum is prescriptive and includes so many rules that must
not be broken (Acosta, Espinosa and Espinosa, 2019, p.10). For instance, it focuses on product
development through backlogs while large projects like the one for client B have so many other
things that must be done and managed outside the product development process. Scrum ignores
those things and assumes that the teams involved recognize the rest of the requirements which is
not true. Also, as a large project, client B will require the services of different people. However,
scrum recognizes only professionals and ignores other roles which are not an ideal case in the
real world and may lead to flaws in the system.
For client A where the project is small, scrum will help in managing the project more effectively
and making better use of time and budget because the development team can be coordinated
easily. Coordination will also guarantee transparency in all stages of the project. Its
implementation is done through sprints which will enable the developers to achieve a progressive
and sustainable development process. Because it allows daily meetings, it will be a great
approach to identify the emerging threats and problems that can be solved easily (Zafar, Nazir
and Abbas, 2017, p.5).
Document Page
Agile Software Development Methodology 7
Considering the FDD on the other hand, it is very clear that its approach to system development
is the best for client B whose project is large. The systematic approach which entails strict
operations through domains, designs, code and inspection will ensure that all activities from
different team members are coordinated fully to achieve the goal (Awan et al., 2016, p. 180).
However, for client A, this approach will be very costly because each step will require an expert
and utilization of resources. For instance, operations through domains, designs, code and
inspection which can be done by one person since the project is small will require more people
which raise the average cost of the project.
Projects favorable for different Agile Methodologies
Although SCRUM can be used in different projects, one of its main advantages is adaptability
and flexibility. Another advantage is its ability to allow progress tracking. In consideration of
those two advantages of this methodology, it can work best in web applications where the
requirements tend to change very fast and customers understand what they want after getting the
prototype (Soni and Kohli, 2017, p.935).
When projects are large, the risk of resource wastage when they are done into completion
increases. For instance, a project to take one year might be dangerous to be done all of it and
presented after one year than when done in sprints. This is because a mistake done in the first
few lines will be replicated all through until the project is completed (Baham et al., 2017, p.633).
When realized at the later stages the whole project will have to be redone which may take
another whole year. This is definitely resource wastage. Putting this factor into consideration,
Feature Driven Development and Dynamic Systems Development Method are preferably the
best approaches for large projects like Client B. This is because they allow project development
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Agile Software Development Methodology 8
in phases. For instance, FDD majors on strict operations through domains, designs, code and
inspection. After a series of inspections, unit tests are done to make sure that they are ready for
build stage (Serrador and Pinto, 2015). On the other hand, DSDM provides a comprehensive
foundation for planning, executing, managing and scaling iterative software development
projects. The approach by these two methodologies enables development teams to identify errors
at early stages and correct them before they can replicate.
Part 2- Automatic document generation
//C# program to demonstrate XML
//Documentation comments
Using system;
Public class Exercise5
///<summary>Method to display the letters
///<param>Here's how you could make a second paragraph in a description
<see cref="Console.Write (System.String)"/> for information about output statements.</param>
///</summary>
{
//Main function
Public static void main ()
}
String str;
Int I, wrd, 1;
Console.write(“\n\nCount the total number of words in a string:\n”);
Console.write(“---------------------------------------------\n”);
Console.write(“input the string:”);
Str=console.Readline ();
Document Page
Agile Software Development Methodology 9
1=0;
Wrd=1;
While (<= str.Length-1)
///<code>
///<example>
After checking the digits to ensure that <= str.Length-1, proceed to the next step
///</example>
///</code>
{
If (str[1]==’ ’ || str[1]==’\n’ || str[1]==’\t’)
{
Wrd++;
}
1++
}
///<returns>
After looping, all the numbers in the string are displayed
///</returns>
Console.write(“Total number of words in the string is: {0}\n”, wrd);
}
}
References
Acosta, A.F., Espinosa, J.E. and Espinosa, J., 2019. Application of the scrum software
methodology for extending simulation of urban mobility (sumo) tools. In Simulating Urban
Traffic Scenarios (pp. 3-15). Springer, Cham.
Document Page
Agile Software Development Methodology 10
Anwer, F., Aftab, S., Shah, S.M. and Waheed, U., 2017. Comparative analysis of two popular
agile process models: extreme programming and scrum. International Journal of Computer
Science and Telecommunications, 8(2), pp.1-7.
Awan, R., Muhammad, S.S., Fahiem, M.A. and Awan, S., 2016. A Hybrid Software Architecture
Evaluation Method for Dynamic System Development Method. The Nucleus, 53(3), pp.180-187.
Baham, C., Hirschheim, R., Calderon, A.A. and Kisekka, V., 2017. An Agile Methodology for
the Disaster Recovery of Information Systems Under Catastrophic Scenarios. Journal of
Management Information Systems, 34(3), pp.633-663.
Mahdavi-Hezave, R. and Ramsin, R., 2015, April. Fdmd: Feature-driven methodology
development. In 2015 International Conference on Evaluation of Novel Approaches to Software
Engineering (ENASE) (pp. 229-237). IEEE.
Patwardhan, A., Kidd, J., Urena, T. and Rajgopalan, A., 2016. Embracing Agile methodology
during DevOps Developer Internship Program. arXiv preprint arXiv:1607.01893.
Peroni, S., 2016. A simplified agile methodology for ontology development. In OWL:
Experiences and Directions–Reasoner Evaluation (pp. 55-69). Springer, Cham.
Serrador, P. and Pinto, J.K., 2015. Does Agile work?—A quantitative analysis of agile project
success. International Journal of Project Management, 33(5), pp.1040-1051.
Soni, D. and Kohli, P.J., 2017. Cost estimation model for web applications using agile software
development methodology. Pertanika Journal Of Science & Technology, 25(3), pp.931-938.
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Agile Software Development Methodology 11
Tirumala, S., Ali, S. and Babu, A., 2016. A Hybrid Agile model using SCRUM and Feature
Driven Development. International Journal of Computer Applications, 156(5), pp.1-5.
Vogelzang, J., Admiraal, W. and Van Driel, J., 2019. A teacher perspective on Scrum
methodology in secondary chemistry education. Chemistry Education Research and Practice.
Zafar, I., Nazir, A.K. and Abbas, M., 2017. The impact of agile methodology (DSDM) on
software project management. In Circulation in Computer Science: International Conference on
Engineering, Computing & Information Technology (ICECIT 2017) (pp. 1-6).
chevron_up_icon
1 out of 11
circle_padding
hide_on_mobile
zoom_out_icon
[object Object]