Reply needed 1 Designing software is a complex initiative. If one were to measure the complexity by the lines of code required to develop a piece of software it would start to make sense just how important instituting a development methodology really is. For example, consider the Debian Linux distribution, which is a free and open-source operating system provided by the Debian Project. Toward the beginning of 2009 Debian 5.0 was released to the public for download or upgrade, and it included 324 MSLoC (million source lines of code). To put into perspective just how big that is, consider the following: 50 lines/page roughly equates to 6.5M pages (Ernst, 2016). This begins to highlight the importance of incorporating sounds practices into any organizational software development lifecycle. Most organizations include different teams in their process, which makes it even more important to include a methodology that aligns all parties regardless of what pieces of the project they are responsible for. A software development methodology is essentially a structured process that project teams follow from start to finish. Depending on the nature of the project one can choose any number of methodologies, often grouped under either tradition or agile. Regardless of what methodology is chosen to best fit a project, the goal of any methodology is to provide management through a series of steps or phases like planning and defining requirements, solution building, testing, and finally deployment and maintenance (Eason, 2016). Choosing the appropriate methodology, whether to align with the organization or a specific project, requires buy-in from all stakeholders to achieve success.
Furthermore, software development stems from the discipline of software engineering to establish various approaches to the same outcomes; the final software product. The comparison to the likeness of other engineering fields can be summed up in the following quote, “Software engineering is a field of the engineering family, because that the software product needs to pass by all of the analysis, design and development processes same as other engineering fields such as the electrical engineering, mechanical engineering, and civil engineering” (Al-Saqqa et al., 2020). Similar to other engineering fields, software development requires a streamlined process where different teams can work in tandem to accomplish the same goal. Cooperation for successful development benefits from a defined methodology. Additionally, projects often run into various issues or require unforeseen changes to the requirements, which has led many organization’s in recent years to adopt a more responsive process. This method is known as Agile software development, which originated from growing frustrations with traditional approaches, like Waterfall. At a high level, the Agile methodology provides scalability and speed in the software development process. It is an umbrella term incorporating various models sharing similar characteristics, as seen with the models that fall under the traditional methodology. The main point to convey on Agile is the iterative approach to development, focusing on the collaboration of self-driving teams, that respond in rapid succession to the changing needs of stakeholders to produce valuable software at an increased rate (Palmquist et al., 2013). Regardless of which Agile model is employed, teams work collaboratively in incremental phases (sometimes referred to as sprints) to continuously deliver new and improved software versions following four key values:
1. Individuals and interactions over processes and tools;
2. Working software over comprehensive documentation;
3. Customer collaboration over contract negotiation; and
4. Responding to change over following a plan (Beck et al., n.d.).
In addition to the Agile values, the Agile Manifesto includes 12 principles under their overall values to better guide teams in executing with agility.
Compared to traditional methodologies and the models included, Agile has come on strong due to the overwhelming needs of customers. Whether it is software commissioned for an individual customer or something produced from a vendor for many to take advantage of, one thing remains true, customers are likely to have additional requests outside the scope of the original plan as needs shift. Even if a project is seen to completion it is only a matter of time before there is another request requiring updates to the software. This is what makes the Agile methodology so attractive compared to the rigidity of traditional methods. Organizations are likely to use Agile in circumstances where they are faced with solving a complex problem, the requirements may not be entirely defined, there are likely to be changes requested, the work can be broken up into different components, and collaboration between project teams and the end-users is essential (Rigby et al., 2016). Compared to traditional methods that typically rely on sequential work, provide limited flexibility, and lose out on feedback generation until entire phase completion or project completion, Agile is favorable for industries with constant change and innovation (like information security).
Lastly, software assurance is an integral part of any development methodology as it helps ensure quality software that is delivered with limited vulnerabilities that stakeholders need to worry about. One particular challenge for teams to consider is the lack of “defined” requirements for a typical Agile development project. Since flexibility is important and requirements often change, it is difficult for teams to outline specific assurance requirements as a one-size-fits-all approach. This is also important since the threat landscape changes so rapidly it is near impossible to have assurance requirements to account for all risks. Therefore, at the beginning of each sprint teams should clearly document all relevant security requirements and acceptance criteria prior to starting work (Lanford, 2017). Additionally, another challenge of note stems from the difficulty to integrate software assurance into the various development teams that Agile requires. NASA indicates that the challenge can be overcome by bringing dedicated SA personnel into each team to provide input during each sprint and oversee the entire development lifecycle (NASA, 2014). Despite some of the challenges, Agile has become an integral development method that extends across all industries and even to the Federal government.
Al-Saqqa, S., Sawalha, S., & AbdelNabi, H. (2020). Agile Software Development: Methodologies and Trends. International Journal of Interactive Mobile Technologies, 14(11), 246–270. https://doi-org.ezproxy.umgc.edu/10.3991/ijim.v14i11.13269.
Eason, O. K. (2016). Information systems development methodologies transitions: An analysis of waterfall to agile methodology. University of New Hampshire. https://scholars.unh.edu/cgi/viewcontent.cgi?article=1288&context=honors.
Ernst, M. (2016). Software development lifecycle. University of Washington. https://courses.cs.washington.edu/courses/cse403/16sp/lectures/lecture-03-software-lifecycle.pdf.
Lanford, B. (2017, July 13). Software assurance in the agile software development lifecycle. Cyber Security & Information Systems Information Analysis Center. https://www.csiac.org/journal-article/software-assurance-in-the-agile-software-development-lifecycle/.
National Aeronautics and Space Administration. (2014, September 4). Agile development brings new challenges for software assurance at NASA. Office of Safety & Mission Assurance. https://sma.nasa.gov/news/articles/newsitem/2014/09/04/agile-development-brings-new-challenges-for-software-assurance-at-nasa.
Palmquist, S. M., Lapham, M. A., Miller, S., Chick, T., & Ozkaya, I. (2013, October). Parallel worlds: Agile and waterfall differences and similarities. Software Engineering Institute. https://learn.umgc.edu/content/enforced/383271-022073-01-2195-GO1-9041/AgileAndWaterfallSEI.pdf?_&d2lSessionVal=rBmrSqb5DgBd9Oefc8JYw3cXn&ou=515613.
Rigby, D. K., Sutherland, J., & Takeuchi, H. (2016, May). Embracing agile. Harvard Business Review. https://hbr.org/2016/05/embracing-agile.
Reply 2 Needed:
Agile is a software development model based continuous iteration of development and testing throughout the lifecycle of a project. It breaks the tasks of the project into smaller iterations where it lays down the scope and requirements at the early stages of the development. The agile software development model focuses on the values of both individual and teamwork, more emphasis on working on the software than comprehensive documentation, more customer collaboration than contract negotiation, and response to changes other than following a plan. To complete a project, the agile methodology engages in six steps which involve the gathering of requirements, designing the requirements, iteration, testing the software, deployment stage, and feedback (Robert, 2018). These steps may be applied using scrum, crystal, Dynamic Software Development Method (DSDM), Feature Driven Development (FDD), Lean Software Development, and eXtreme Programming (XP) testing methods can either be used.
Agile has characteristics that make it stand out when compared to the other models. First, it is it has releases that organize, estimate, and prioritizes features, defects, and enhancement requests as well as fixed-length iterations. Secondly, it has delivering working tested features that measure its progress on team collaboration, customer feedback, and project visibility that help in providing evidence that both the system and the project are on track. Continuous planning in agile methods insists on upfront planning to be held accountable for the resources it consumes (Lebo, 2018).
Although there are many benefits of using agile software development methodology, it is as its challenges which interfere with its assurance. They include people’s behavioral change especially when change is involved which leaves people questioning their abilities and long-held values. Lack of skilled product owners from the business also poses a challenge to assurance as most of them are new to the model making it difficult to control the development direction (Blueprint Systems, 2019). Lastly, assurance of the model is faced with the challenge of a lack of dedication from cross-functional teams who are any members needed to deliver a product.
Blueprint Systems. (2019). Benefits and Challenges of Agile Development. Blueprintsys.com. Retrieved 17 August 2020, from https://www.blueprintsys.com/agile-development-101/agile-benefits-and-challenges.
Lebo, J. (2018). Characteristics of Agile Development Success. Digital.ai. Retrieved 17 August 2020, from https://digital.ai/resources/agile-101/agile-development-success.
Robert, K. (2018). Agile Model (Software Engineering) – javatpoint. www.javatpoint.com. Retrieved 17 August 2020, from https://www.javatpoint.com/software-engineering-agile-model.
We confidently assure you high-quality work. We engage a number of strategies in to guarantee top-level assignments. The projects go through a thorough system of control prior to being submitted to the customers. Studentscoursework.com guarantees that the assignments delivered are 100 percent plagiarism-free.
We never share or resell customer’s work. Therefore, once it is checked using our plagiarism software, the assignment will be original. In terms of assignment completion, we adhere to the guidelines given by you and assign the work to the most suitable writer. We assign our writers based on various factors such as academic qualification, previous customer feedback, etc.
First and foremost, we provide high-quality work. However, in case you require extra-brilliance, here is what you can do. First, select a top writer who is proficient in a certain discipline. Second, you can seek our editing services.
Our team of editors revises the assignments, checking them to ensure they comply with the standards of academic writings. Additionally, editing may entail refining the language, adding more reference material, and making sure the formatting part is properly done. The editors may also enhance papers completed by yourself in to meet your needs.
We guarantee the following quality in our work to you:
We use the following tools to crosscheck our assignments:
Delivering a high-quality product at a reasonable price is not enough anymore.
That’s why we have developed 5 beneficial guarantees that will make your experience with our service enjoyable, easy, and safe.
You have to be 100% sure of the quality of your product to give a money-back guarantee. This describes us perfectly. Make sure that this guarantee is totally transparent.Read more
Each paper is composed from scratch, according to your instructions. It is then checked by our plagiarism-detection software. There is no gap where plagiarism could squeeze in.Read more
Thanks to our free revisions, there is no way for you to be unsatisfied. We will work on your paper until you are completely happy with the result.Read more
Your email is safe, as we store it according to international data protection rules. Your bank details are secure, as we use only reliable payment systems.Read more
By sending us your money, you buy the service we provide. Check out our terms and conditions if you prefer business talks to be laid out in official language.Read more