Question by mithu: Software Testing- What is meant by ‘agile environment’?
I was reading about software testing, and came across words such as Agility and all…. I want to know as much possible about testing, as I have an interview in the eve.
Best answer:
Answer by Fudge
Agile is a software development method, that has principles to adhere to .Agile people focus on change, adaptation of software, and less on documentation. In software engineering, agile software development or agile methods are low-overhead methodologies that accept that software is difficult to control. They attempt to minimize risk by ensuring that software engineers focus on smaller deliverable units, which focus on one week cycles of work, for two- to three-person teams. When larger teams are involved, the cycles can be longer, to account for the difficulties in communication.
One way in which agile software development is generally distinguished from "heavier", more process-centric methodologies, for example the waterfall model, is by its emphasis on values and principles, rather than on processes.
Typical cycles are one week or one month, and at the end of each cycle the engineers reevaluate the project priorities. Such reevaluation is a feature agile development shares with iterative development methodologies, and most modern theories of project management.
Risks and benefits of different methodology:
The benefits of agile software development for small teams working with rapidly changing requirements have been noted. Among agile software development proponents (and critics), the applicability of agile methods to larger projects is debated. Large-scale projects, with high assurance requirements, have traditionally been seen as the home-ground for plan-driven software development methodology.
The picture often painted is that agile software developments and plan-driven methodologies are polar opposites. The author of [1] suggests that these methodologies should be seen as part of a continuum of options. At one extreme are hackers who work without any methodology. At the other end are "inch-pebble" projects where the smallest detail is planned in advance.
The author of [1], suggests that the spectrum is a measure of the emphasis on plans. Further, the author suggests that what methodologies are chosen should be based upon an analysis of risk exposure.
P(L) is the probability of loss. S(L) is the size of loss. Risk exposure is RE = P(L) X S(L)
By graphing RE against time and effort invested in plans, we can find the right mix of methods to use for a given project (graph from [1]):
File:RE Plan Risk.JPG
Each methodology has different risks. Combining an analysis of the risk allows us to determine where on the spectrum our project should lie.
An example of this: Our project could contain some core database technology that needs extensive planning to mitigate risk. It could also contain a rapidly evolving user interface where not getting a demo on the market could be costly in terms of market share.
Deciding when to use agile software development is also dependant on the values and principles that a developer wishes to be reflected in their work. Extreme Programming (XP), one of the more popular of the agile software development methodologies, is explicit in its demand for developers to follow a "code of software conduct" that transmits these values and principles to the project at-hand. In keeping with the philosophy of agile software development, there is no rigid structure defining when to use any particular feature of these approaches.
For more details please visit:
http://en.wikipedia.org/wiki/Agile_software_development
Add your own answer in the comments!

| Next > |
|---|