Agile Software Development

Start Date: 01/03/2021

Course Type: Common Course

Course Link: https://www.coursera.org/learn/agile-software-development

About Course

Software industry is going crazy on agile methods. It is rapidly becoming the choice for software development where requirements are unpredictable or is expected to change over time. This course will help you gain knowledge on what is agile? Why agile is better suited for these situations? We will also cover some of the most common agile frameworks like scrum and XP in depth. Prerequisite: You need basic knowledge of software development process and software development methodologies. After completing this course, you will be able to : 1) Demonstrate the ability to participate effectively in agile practices/process for software development. 2) Explain the purpose behind common agile practices. 3) Ability to apply agile principles and values to a given situation. 4) Ability to identify and address most common problems encountered in adopting Agile methods. Project: You will also be given opportunity to apply what you learn in this course. You will be given fictional case studies, where after studying the case study, you will have to exercise some of the practices, techniques, etc that team members of an agile team members are expected to know.

Course Syllabus

In this module, we will learn about agile mindset, the core behind many agile methods. How agile methods are different than traditional methods and when to use agile methods. We will learn about how to apply agile mindset and finally review different frameworks available to implement agile.

Coursera Plus banner featuring three learners and university partner logos

Course Introduction

Agile Software Development Methods This course is the last course in the Agile Software Development Specialization. In this course, you will go deeper into the critical thinking, problemshooting, and design processes of the agile process. You will learn the key components of agile and how they fit into the overall software development process. You will also learn the common barriers to entry for new developers, as well as methods to ease the transition of existing developers. You will also learn the process for systematically gathering requirements, iterating and refining requirements, and testing requirements. You'll use these agile process building blocks to create a complete software development process, from design to production. After taking this course, you will be able to: 1. Design and recap the agile process. 2. Use requirements gathering and requirements refinement as a method of developing software. 3. Document and share requirements. 4. Conduct requirements refinement activities in a systematic fashion. 5. Contribute to the agile process by writing requirements. 6. Use requirements gathering and requirements refinement to create a cohesive whole. 7. Identify common requirements hiding in plain sight, and use information about common requirements to prioritize tasks. 8. Use agile methodologies and techniques to develop software. 9. Overflow and overspecify. 10. Revisit and apply to specific case studies.Module 1: Agile & Software Development Module 2: Define and Track Agile Processes Module 3: Document and Share Requirements

Course Tag

Software Development Kit (SDK) Agile Software Development Scrum (Software Development)

Related Wiki Topic

Article Example
Agile software development Popular agile software development frameworks include (but are not limited to):
Lean software development Since Agile Software Development is an umbrella term for a set of methods and practices based on the values and principles expressed in the Agile Manifesto, Lean Software Development is considered an Agile Software Development Method.
Agile software development Because of the short iteration style of agile software development, it also has strong connections with the lean startup concept.
Agile software development The term "agile" was first coined for this in 2001, in the "Manifesto for Agile Software Development ("Agile Manifesto")," and is usually written as "Agile" (with a capital "A").
Agile software development In 2009, a movement by Robert C Martin wrote an extension of software development principles, the Software Craftsmanship Manifesto, to guide agile software development according to professional conduct and mastery.
Agile software development Agile methods have been extensively used for development of software products and some of them use certain characteristics of software, such as object technologies. However, these techniques can be applied to the development of non-software products, such as computers, motor vehicles, medical devices, food, clothing, and music; see Flexible product development. Agile methods have been used in non-development IT infrastructure deployments and migrations. Some of the wider principles of agile have also found application in general management (e.g., strategy, governance, risk, finance) under the terms business agility or agile business management.
Agile software development A similar survey, the State of Agile, is conducted every year starting in 2006 with thousands of participants from around the software development community. This tracks trends on the benefits of agile, lessons learned, and good practices. Each survey has reported increasing numbers saying that agile development helps them deliver software faster; improves their ability to manage changing customer priorities; and increases their productivity. Surveys have also consistently shown better results with agile product development methods compared to classical project management. In balance, there are reports that some feel that agile development methods are still too young to enable extensive academic research of their success.
Agile software development When agile software development is applied in a distributed setting (with teams dispersed across multiple business locations), it is commonly referred to as distributed agile development. The goal is to leverage the unique benefits offered by each approach. Distributed development allow organizations to build software by strategically setting up teams in different parts of the globe, virtually building software round-the-clock (more commonly referred to as follow-the-sun model). On the other hand, agile development provides increased transparency, continuous feedback and more flexibility when responding to changes.
Agile software development Organizations that adopt agile development see more frequent releases; which led to the concepts of continuous delivery and DevOps. While DevOps and agile software development both embody many Lean philosophies, such as collaboration and communication, they are distinct concepts. While agile principles represent a change in thinking, DevOps seeks to implement actual organizational cultural change.
Agile software development Agile software development describes a set of principles for software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams. It advocates adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change. These principles support the definition and continuing evolution of many software development methods.
Agile software development Some of the authors formed the Agile Alliance, a non-profit organization that promotes software development according to the manifesto's values and principles. Introducing the manifesto on behalf of the Agile Alliance, Jim Highsmith said,
Agile software development Incremental software development methods can be traced back to 1957. Evolutionary project management and adaptive software development emerged in the early 1970s. During the 1990s, a number of "lightweight" software development methods evolved in reaction to the prevailing "heavyweight" methods that critics described as heavily regulated, regimented, and micro-managed. These included: from 1991, rapid application development; from 1994, unified process and dynamic systems development method (DSDM); from 1995, Scrum; from 1996, Crystal Clear and extreme programming (XP); and from 1997, feature-driven development. Although these originated before the publication of the Agile Manifesto in 2001, they are now collectively referred to as agile methods.
Agile software development Agile methods support a broad range of the software development life cycle. Some focus on the practices (e.g., XP, pragmatic programming, agile modeling), while some focus on managing the flow of work (e.g., Scrum, Kanban). Some support activities for requirements specification and development (e.g., FDD), while some seek to cover the full development life cycle (e.g., DSDM, RUP).
Agile software development In 2005, a group headed by Alistair Cockburn and Jim Highsmith wrote an addendum of project management principles, the Declaration of Interdependence, to guide software project management according to agile software development methods.
Wagile software development Wagile software development is a group of software development methodologies that result from slipping from agile back into waterfall, doing a lot of short waterfalls and thinking it is agile, Waterfall model masquerading as Agile software development, etc.
Agile software development Agile software development is often implemented as a grassroots effort in organizations by software development teams trying to optimize their development processes and ensure consistency in the software development life cycle. By not having sponsor support, teams may face difficulties and resistance from business partners, other development teams and management. Additionally, they may suffer without appropriate funding and resources. This increases the likelihood of failure.
Agile software development In February 2001, seventeen software developers met at the Snowbird resort in Utah to discuss lightweight development methods, among others Jeff Sutherland, Ken Schwaber, and Alistair Cockburn. Together the seventeen published the "Manifesto for Agile Software Development", in which they shared that through their combined experience of developing software and helping others to do it they had come to value:
Agile software development Agile methods have much in common with the Rapid Application Development techniques from the 1980/90s as espoused by James Martin and others. In addition to technology-focused methods, customer-and-design-centered methods, such as Visualization-Driven Rapid Prototyping developed by Brian Willison, work to engage customers and end users to facilitate agile software development.
Agile software development In 2008 the Software Engineering Institute (SEI) published the technical report "CMMI or Agile: Why Not Embrace Both" to make clear that the Capability Maturity Model Integration and agile methods can co-exist. Modern CMMI-compatible development processes are also iterative. The CMMI Version 1.3 includes tips for implementing CMMI and agile process improvement together.
Lean software development Lean software development practices, or what the Poppendiecks call "tools" are restated slightly from the original equivalents in Agile software development. Examples of such practices include: