Product development: Using Agile methodology for software [PDF]

Dec 6, 2009 - The Agile methodology is an iterative approach to product development. This software ... Entrepreneur's To

3 downloads 16 Views 212KB Size

Recommend Stories


AGILE SOFTWARE DEVELOPMENT METHODOLOGY ABSTRACT The agile software
Just as there is no loss of basic energy in the universe, so no thought or action is without its effects,

Agile Software Development Succinctly
Don't count the days, make the days count. Muhammad Ali

Agile Software Development Processes
You're not going to master the rest of your life in one day. Just relax. Master the day. Than just keep

Evaluation Method - Agile Software Development
In every community, there is work to be done. In every nation, there are wounds to heal. In every heart,

Agile Practices for Global Software Development
Live as if you were to die tomorrow. Learn as if you were to live forever. Mahatma Gandhi

The Agile Software Development Lifecycle
And you? When will you begin that long journey into yourself? Rumi

Series in Agile Software Development
What we think, what we become. Buddha

[PDF] Agile Software Requirements
At the end of your life, you will never regret not having passed one more test, not winning one more

PdF Agile Software Requirements
The happiest people don't have the best of everything, they just make the best of everything. Anony

UX, agile software development, database
What you seek is seeking you. Rumi

Idea Transcript


Skip to content

06 Dec 2009

(https://www.facebook.com (https://plus.google.c (https://twitter.c (http://www

FILED UNDER u=https%3A%2F%2Fwww. url=https%3A%2F%2F text=Product+de mini=true&

Read time: 6 mins

Product development library%2Fproductlibrary%2Fproductlibrary%2Fprodu library%2F (https://www.marsdd.com/tag/produ ct-development/)

Most software development can be classified as either Agile or Waterfall (https://www.marsdd.com/marslibrary/product-development-the-waterfall-methodology-model-in-software-development/) types of methodologies. A development methodology is the process by which an engineering team will build a given product.

developmentdevelopmentdevelopmentdevelopme Product management (https://www.marsdd.com/tag/produ using-using-using-usingct-management/) agile-agile-agile-agile-

methodologymethodologymethodologymethodolo

The Agile methodology is an iterative approach to product development that is performed in a collaborative environment by self-organizing teams. The methodology produces high-quality software in a cost-effective and timely manner to meet stakeholders’ changing needs.

softwaresoftwaresoftwaresoftware-

The backlog: A list of prioritized requirements

development%2F) development%2F) development%2 developme

Every product release begins with a list called a“backlog,” which consists of a list of prioritized requirements (https://www.marsdd.com/mars-library/prioritizing-product-requirements/). This is not a backlog in the traditional negative sense of the word; rather, it is a list of work to be done. As discussed in the article, Determining the product release (https://www.marsdd.com/mars-library/determining-the-product-release/), when using the project triangle, you must choose between schedule, scope and cost. Using the Agile methodology, the team will always adjust the scope of work to ensure that the most important items are completed first. Software developers work from this list in order of importance. The backlog is a dynamic set of requirements that can change weekly (depending on the length of your iterations). If you choose to release a product on a particular date with your current team, then the scope of what requirements will be completed will continually adjust. Should you decide that all of the requirements must be completed, then your process will require additional iterations (see below).

Iterations (or sprints) in software development Instead of delivering the entire backlog at the end of a release, you can divide the work into“iterations.” Iterations (also known as sprints) are smaller amounts of delivered requirements, which are taken from the backlog in their order of importance. Review the example near the end of this article to understand how requirements are broken into iterations. Iterations have short timeframes that last from one to four weeks, depending on the team’s experience. If you are working with a team that has not worked in an Agile environment, it is advisable to use one- to two-week iterations, as they enable you to quickly change priorities at the end of the iteration. A key element of an iteration is that the priorities regarding which requirements should be built do not change within the iteration (for example, during the two-week period); this list should only change from one iteration to another. During an iteration, the team works through a full development cycle (from analysis to testing [for more details, read Product development: Waterfall methodology (https://www.marsdd.com/mars-library/product-developmentthe-waterfall-methodology-model-in-software-development/)]). At the end, they demonstrate a working product to stakeholders. Note that one iteration might not produce a marketable release; multiple iterations may be required for a release and to complete all backlog items. However, the team should be able to demonstrate all agreed-upon functions at the end of the iteration.

Risk management The Agile methodology accepts that project change is inevitable. The use of small iterations allows changes to be absorbed quickly without inflicting significant project risk. The backlog order can adjust as business priorities evolve; with the next iteration, the team can adapt to those priorities.

In the context of a product release, the items that are the most technically difficult (that is, that hold the larger risk) tend to be done in early iterations to ensure that the risk can be minimized. This approach to mitigating risk is a key differentiator from the Waterfall methodology . Instead of adjusting during the development process, the Waterfall methodology involves planning and researching each task in advance. However, should items need to change after the investment of this upfront work, revision tends to be resisted by the team and can also be expensive.

Cross-functional teams An Agile team (consisting of five to nine people) includes the functions of a larger development organization, such as developers, testers, documenters and product managers. Team members are self-organizing; they decide how and who delivers the requirements within an iteration. When there are questions during the process, having access to a product manager allows for quick resolution to any issues.

Product manager’s role The role of the product manager is integrated into the Agile methodology. He or she creates and maintains the backlog and provides the requirements for the release. The product manager participates throughout the process by answering questions as they arise. The Agile methodology emphasizes face-to-face conversations and test cases to promote collaboration and to keep teams aligned in their focus. This method also emphasizes demonstrable features as the primary measure of tracking progress. Given these factors, the Agile methodology produces less written documentation than other product development methods.

Daily stand-ups Every day during an iteration, the team will hold a stand-up meeting (also called a scrum). During this meeting, each developer will outline their progress from the day before, as well as any obstacles encountered. The goal is to resolve problems and improve developers’ productivity. The scrum master (that is, the head of the process) removes obstacles—for example, they will ensure that the right people are brought together to discuss a business issue, or that a computer problem is fixed. Product managers should attend these meetings to address business questions or related difficulties.

Customer input As the product team delivers demonstrable functions at the end of every iteration, the process of securing customer feedback is simplified as features can be shown to customers then, instead of having to wait until the final released product.

Testing during development The testing team plays an integral role in the Agile methodology. These team members test new functions as they are delivered. Although regression testing (https://www.marsdd.com/mars-library/product-testing-methods/) might occur at the end of the process, test cases (https://www.marsdd.com/mars-library/product-testingmethods/) are executed with every iteration as problems can be found at any time during the project, not just during completion of the development phase.

Example: Product development—Agile methodology If a team were to develop a customer address book using the Agile methodology, the order of work would be as follows (timeframes are for demonstration purposes only): 1. Requirements: Product manager creates requirements documents that include the following requirements (in order of priority): User should be able to create new contacts. User should be able to view their contacts. User should be able to import contacts from other programs. User should be able to email their contacts from the address book. User should be able to add pictures to represent their contacts. These requirements documents will be simple, and will include user scenarios. As each item is worked on, questions will arise, and there will be opportunities to discuss them as they occur. From this list, the requirements for the first iteration are chosen (starting with the highest priority items). Timeframe: 1 week 2. Iteration #1: The team works on the functionality to create new contacts and to view contacts. This includes the design, development and tes ting for these items. At the end of the iteration, the team demonstrates the functionality to the product manager, where he or she can provide feedback. Timeframe: 2 weeks 3. Iteration #2: Team works on the functionality to import contacts, to email and to add pictures to the contacts. This includes the design, development and testing for these items. At the end of the iteration, the team demonstrates the functionality to the product manager, where he or she can provide feedback. Timeframe: 2 weeks 4. Iteration #3: Team conducts a regression test (https://www.marsdd.com/mars-library/product-testingmethods/) and prepares to release the product. Timeframe: 1 week 5. Release: The product functionality is released. Total elapsed time: 6 weeks Note that if any changes to the requirements occur during this project, each iteration would adjust accordingly.

Agile vs. Waterfall methodologies There is much debate about the merits of the two different product development methodologies, Waterfall and Agile. In the end, it is up to your organization to choose the most appropriate method. Review the article Product development: Waterfall methodology (https://www.marsdd.com/marslibrary/product-development-the-waterfall-methodology-model-in-software-development/) to form your own opinion of how you would like to manage your development process.

Kolawa, A. (n.d.). “Regression testing.” Wrox Programmer to Programmer. Retrieved October 4, 2010, from http://www.wrox.com/WileyCDA/Section/id-291252.html (http://www.wrox.com/WileyCDA/Section/id291252.html) Schwaber, K. & Beedle, M. (2001, October 21). “Agile Software Development with Scrum.” Prentice Hall, 1st edition.



© 2018 Copyright MaRS Discovery District. All Rights Reserved.

for- for- for- for-

Smile Life

When life gives you a hundred reasons to cry, show life that you have a thousand reasons to smile

Get in touch

© Copyright 2015 - 2024 PDFFOX.COM - All rights reserved.