Back To CourseAgile & Scrum Training
9 chapters | 131 lessons
As a member, you'll also get unlimited access to over 75,000 lessons in math, English, science, history, and more. Plus, get practice tests, quizzes, and personalized coaching to help you succeed.Try it risk-free
Linda is an engineer and project manager with a Master's degree in Human Centered Design and Engineering and has taught at the college level for 20 years.
Software development projects involve many phases including understanding and documenting the requirements of the user, designing the software, writing actual code, testing prototypes, revising code, retesting, and eventually deploying. The traditional, or waterfall, approach to software development involves a sequential approach to completing each of these phases of development before moving on to the next.
For example, using the traditional development methodology, all of the user requirements are defined, documented, reviewed, revised, and accepted before any design specifications are created. Likewise, the design is finalized and accepted by all parties before any coding begins. While such a linear, straightforward methodology might seem to be logical, it is actually inefficient. Oftentimes, by the time a project is complete, the user requirements have shifted or the final product, though it meets the original design specifications, isn't quite what the client had in mind. Much time has been wasted.
Instead, more and more development teams are adopting an iterative approach to software development that considers smaller chunks of functionality, simpler code, and frequent testing, with a goal of delivering small working chunks of the overall solution as they become ready. User requirements, design, and coding are all continually revisited throughout the lifecycle of the project.
Collectively known as agile development, several methodologies emphasize generating a working product over documenting the requirements and jumping through the hoops of reviews and acceptance prior to beginning development. Agile development approaches provide the product owner or customer with regular opportunities to provide feedback to the project team and affect the direction of the ultimate product.
Agile development is an umbrella term that can refer to many individual development frameworks. While some agile methodologies focus on the practice of developing the product, others focus more on the management of the project. The most popular agile methodologies share the same general philosophy of transparency, frequent testing, and adapting and revising as necessary as the project proceeds. Let's look at the five most popular agile development methods.
Likely the most recognized agile development method, Scrum is best known for the incremental, iterative development phases known as sprints. The Scrum approach relies heavily on a specific team structure. The Product Owner represents the client or the end user and defines the overall requirements of the product; the self-organized Team develops the product bit by bit in each sprint, usually two to four weeks; and the Scrum Master facilitates the team and ensures a clear exchange of information across all parties.
Multiple teams deliver product increments in each sprint, each time building further functionality into the final product. A Daily Standup is a very short daily meeting of all team members to communicate progress and challenges that may affect completion. The Scrum approach is popular as it is simple, productive, and can be applied to many types of projects in addition to software development.
Like Scrum, Extreme Programming, or XP, involves iterative development and feedback and continuous testing to produce releases that begin with basic functionality and continue to add function and sophistication in each subsequent phase. Frequent releases of the software provide the customer with the opportunity to test, review, and modify the functional requirements continually as the final product is developed. The XP approach emphasizes this high level of customer interaction with the product during development.
Another framework for rapid software delivery is the Dynamic Systems Development Method, which also emphasizes active user involvement and collaboration. Each development iteration considers four levels of requirements:
Empowered development teams produce frequent iterations continually increasing the functionality of the product until it meets the requirements defined by the user.
Kanban is another agile development method that emphasizes continual delivery and limiting the work in progress in each iteration to avoid spreading focus and resources too thin. The development team will move on to the next highest priority requirements only when current tasks are complete.
Like the other agile development methods described here, Crystal focuses on collaborative teamwork and constant communication. A key element of this approach involves establishing a team structure and working environment that minimizes bureaucratic influence on development activities. Crystal promotes frequent delivery of functional packages of the product and high customer involvement.
The traditional, or waterfall, approach to software development that involves a sequential approach to completing each phase of development before moving on to the next is often wasteful. User requirements can easily shift before the final product is complete, rendering much of the early work unnecessary. Instead, agile development emphasizes an iterative approach to software development. It considers smaller chunks of functionality, simpler code, and frequent testing, with a goal of delivering small working chunks of the overall solution as they become ready. User requirements, design, and coding are all continually revisited throughout the lifecycle of the project. Five of the most popular agile methods are Scrum, Extreme Programming, Dynamic Systems Development Method, Kanban, and Crystal.
To unlock this lesson you must be a Study.com Member.
Create your account
Already a member? Log InBack
Did you know… We have over 160 college courses that prepare you to earn credit by exam that is accepted by over 1,500 colleges and universities. You can test out of the first two years of college and save thousands off your degree. Anyone can earn credit-by-exam regardless of age or education level.
To learn more, visit our Earning Credit Page
Not sure what college you want to attend yet? Study.com has thousands of articles about every imaginable degree, area of study and career path that can help you find the school that's right for you.
Back To CourseAgile & Scrum Training
9 chapters | 131 lessons
Next LessonPros & Cons of Agile Development Methods