Showing posts with label Agile software development. Show all posts
Showing posts with label Agile software development. Show all posts

Wednesday, July 15, 2009

Agile Interview Question and Answers

What is Agile?
Agile methodology is an approach to project management, typically used in software development.
It helps teams respond to the unpredictability of building software through incremental, iterative work cadences,
known as sprints. This methodology that inspired it: waterfall, or traditional sequential development.

Why Agile?
Agile development methodology attempts to provide many opportunities to assess the direction of a project throughout the development lifecycle. Agile methodology could be described as “iterative” and “incremental.” In waterfall, development teams only have one chance to get each aspect of a project right. In an agile paradigm, every aspect of development — requirements, design, etc. — is continually revisited throughout the lifecycle. When a team stops and re-evaluates the direction of a project every two weeks, there’s always time to steer it in another direction.

What is Agile software development ?
Adaptable software creation, also known as agile software development. Agile development is a style of software development that emphasizes customer satisfaction through continuous delivery of functional software. Based on a variety of iterative development disciplines including extreme programming (XP), agile methods put developers to work in small teams to tight budgets and short timescales. In contrast to traditional software development methods, agile developers liaise continuously with business clients, aiming to deliver working software as frequently as every two weeks during a project, and welcome changes to the requirement in response to evolving business needs

What are the Advantages of Agile Methodology?
–> Customer satisfaction by rapid, continuous delivery of useful software
–> Working software is delivered frequently (weeks rather than months)
–> Face-to-face conversation is the best form of communication
–> Close, daily cooperation between business people and developers
–> Working software is the principal measure of progress
–> Continuous attention to technical excellence and good design
–> Simplicity
–> Regular adaptation to changing circumstances
–> Self-organizing teams
–> Projects are built around motivated individuals, who should be trusted
–> Even late changes in requirements are welcomed (this does not mean code & run.
Instead removing an existing feature or moving a deadline forward to accommodate late/unplanned feature requests

What are Agile Methods?
–> Agile Modeling
–> Scrum
–> Agile Unified Process (AUP)
–> Agile Data Method
–> Essential Unified Process (EssUP)
–> Extreme programming (XP)
–> Feature Driven Development (FDD)
–> Getting Real
–> Open Unified Process (OpenUP)
–> Lean software development

What are Agile practices?
–> Test Driven Development (TDD)
–> Behavior Driven Development (BDD)
–> Continuous Integration
–> Pair Programming
–> Planning poker

What is Agile Testing?
Testing practice for projects using agile methodologies, treating development as the customer of testing and emphasizing a test-first design paradigm.

What is Application Binary Interface (ABI)?
A specification defining requirements for portability of applications in binary forms across defferent system platforms and environments.

What are the different approaches to testing on agile development projects?
1. You want to test as early as you possibly can because the potential impact of a defect rises exponentially over time In fact, many agile developers prefer a test-first approach.
2. You want to test as often as possible, and more importantly, as effectively as possible, to increase the chance that you will find defects. Although this increases your costs in the short term, studies have shown that greater investment in testing reduces the total cost of ownership of a system due to improved quality.
3. You want to do just enough testing for your situation: Commercial banking software requires a greater investment in testing than membership administration software .
4. Pair testing, just like pair programming and modeling with others, is an exceptionally good idea.