Agile Development Interview Questions and Answers

Agile Methodology
Agile Development Interview Questions and Answers

1) What is Agile?
 

AGILE is a methodology that promotes continuous iteration of development and testing throughout the software development life cycle of the project. Both development and testing activities are concurrent unlike the Waterfall model.

2) What is Agile testing?
 

Agile Testing is testing practice that follows the principles of agile software development. Agile testing involves all members of an agile team with special skills and expertise to ensure business value is delivered at frequent intervals.

3) In what way does the Agile Testing /Development Methodology differs from the other testing /development methodologies?
 

Anytime applying agile methodology, the testers /developers ensure that the whole process of testing /development is broke into as small steps as possible and just a small unit of code is tested /developed in each of this steps. The team of testers /developers is communicating consistently the results of their work, and change the short term strategy and even the development plan on the go, based on the results of agile testing. Agile methodology encourages flexible and rapid response to change which should lead to a better end result.

4) How is it different to traditional Waterfall or the V model?
 

The big difference is that in agile environment, testing is not a phase, it is an activity parallel to development.
•    In agile environment, small features of software are delivered frequently, so testing activity should be parallel to development activity. Testing time is short as we are only testing small features.
•    In the waterfall model, there is a testing phase at the end of the development so, testing is a big effort done after the whole application is developed. Testing time is long as we have to test the whole application.

5) What are the different Methodologies in agile testing?
 

There are various methods present in agile testing such as,
•    Scrum
•    Crystal Methodologies
•    DSDM(Dynamic Software Development Method)
•    Feature driven development(FDD)
•    Lean software development
•    Extreme Programming(XP)

6) List out the pros and cons of exploratory testing (used in Agile) and scripted testing? 

   
 Exploratory Testing:   
Pros:
•    It requires less preparation- Easy to modify when requirement changes
•    Works well when documentation is scarce
Cons:
•    Presenting progress and Coverage to project management is difficult
    Scripted Testing:
Pros:
•    In case testing against legal or regulatory requirements it is very useful   

Cons:
•    Test preparation is usually time-consuming- Same steps are tested over and again
•    When requirement changes it is difficult to modify

7) What are the benefits of Agile Software development?


Agile methods grew out of the real-life project experiences of leading software professionals who had experienced the challenges and limitations of traditional waterfall development on project after project.  The approach promoted by agile development is in direct response to the issue associated with traditional software development – both in terms of overall philosophy as well as specific processes.

8) What is the Agile Manifesto?
 

The agile software development emphasizes on four core values:
•    Individual and team interactions over processes and tools
•    Working software over comprehensive documentation
•    Customer collaboration over contract negotiation
•    Responding to change over following a plan

9) What are some of the key features of Agile Development?
 

Some of the key features of agile development are,
•    Collective code ownership and freedom to change.
•    Incremental approach (e.g. user stories are incrementally implemented). Automation (e.g. TDD -- Test Driven Development).
•    Customer focused (for e.g. internal and external users and business analysts are your immediate customers).
•    Design must be simple.
•    Designing is an ongoing activity with constant re-factoring to achieve the rules of code simplicity like no duplication, verified by automated tests, separation of responsibilities, and minimum number of classes, methods, and lines.

10) What is Scrum?
 

Scrum is an innovative approach to getting work done in efficient way. It is iterative & incremental agile software development method. These iterations are time boxed with various iterations & each iteration is called Sprint. According to latest surveys Scrum is the most popular agile project management methodology in software development. The term Scrum is formed from Rugby.
Scrum is ideally used where highly emergent or rapidly changing requirements. Scrum is basically worked on a self-organizing, cross-functional team. In the overall scrum team there is no team leader who assign the task to team rather whole scrum members work as a team & they decides the task on which they will work on. Also the problem will be resolve by team.

11) What are the three main roles in Scrum?
 

The Scrum team consists of three main roles:
•    Product Owner: Manages the product backlog. PO is the voice of the business and create new features to be developed for the application.
•    Scrum Master: Responsible for managing the sprint, remove any impediments and keeps track of the progress of the project.
•    Scrum Team itself: Composed of developers, designers and QA. This forms the team which is responsible for delivering high quality software.

12) What is Sprint?
 

Sprint is a predefined interval or the time frame in which the work has to be completed and make it ready for review or ready for production deployment. This time box usually lies between 2 weeks to 1 month. In our day to day life when we say that we follow 1 month Sprint cycle, it simply means that we work for one month on the tasks and make it ready for review by the end of that month.

13) Explain how you can measure the velocity of the sprint with varying team capacity?
 

When planning a sprint usually, the velocity of the sprint is measured on the basis of professional judgment based on historical data. However, the mathematical formula used to measure the velocity of the sprint are,
•    First – completed story points X team capacity: If you measure capacity as a percentage of a 40 hours weeks
•    Second – completed story points / team capacity: If you measure capacity in man-hours
For our scenario second method is applicable.

14) What is an epic, user stories and task?
 

•    Epic: A customer described software feature that is itemized in the product backlog is known as epic. Epics are sub-divided into stories
 

•    User Stories: From the client perspective user stories are prepared which defines project or business functions, and it is delivered in a particular sprint as expected.
 

•    Task: Further down user stories are broken down into different task

15) Mention the key difference between sprint backlog and product backlog?
 

•    Product backlog: It contains a list of all desired features and is owned by the product owner
 

•    Sprint backlog: It is a subset of the product backlog owned by development team and commits to deliver it in a sprint. It is created in Sprint Planning Meeting

16) In Agile mention what is the difference between the Incremental and Iterative development?
 

•    Iterative: Iterative method is a continuous process of software development where the software development cycles are repeated (Sprint & Releases) till the final product is achieved.
Release 1: Sprint 1, 2… n
Release n: Sprint 1, 2….n
•    Incremental: Incremental development segregates the system functionality into increments or portions. In each increment, each segment of functionality is delivered through cross-discipline work, from the requirements to the deployment.

17) Explain what is Spike and Zero sprint in Agile? What is the purpose of it?
 

•    Sprint Zero: It is introduced to perform some research before initiating the first sprint. Usually this sprint is used during the start of the project for activities like setting development environment, preparing product backlog and so on.
 

•    Spikes: Spikes are type of stories that are used for activities like research, exploration, design and even prototyping. In between sprints, you can take spikes for the work related to any technical or design issue. Spikes are of two types Technical Spikes and Functional Spikes.

18) What is Extreme Programming (XP)?
 

Extreme Programming technique is very helpful when there is constantly changing demands or requirements from the customers or when they are not sure about the functionality of the system. It advocates frequent "releases" of the product in short development cycles, which inherently improves the productivity of the system and also introduces a checkpoint where any customer requirements can be easily implemented. The XP develops software keeping customer in the target.

19) What is Test Driven Development?
 

Test driven development or TDD is also known as test-driven design. In this method, developer first writes an automated test case which describes new function or improvement and then creates small codes to pass that test, and later re-factors the new code to meet the acceptable standards.

20) What is a Test stub?
 

A test stub is a bit of code that replaces an undeveloped or fully developed component within a system being tested. The test stub is built such that it mimics the actual component by generating specific known outputs. The stub can be used as a substitute for the actual (fully developed) component for testing purposes. The stub can also be used during testing to isolate system components and troubleshoot problems. A test stub is also known as a test double.

21) What is Crystal Methodology?
 

Crystal Methodology is based on three concepts,
•    Chartering: Various activities involved in this phase are creating a development team, performing a preliminary feasibility analysis, developing an initial plan and fine-tuning the development methodology
•    Cyclic delivery: The main development phase consists of two or more delivery cycles, during which the

i.    Team updates and refines the release plan
ii.    Implements a subset of the requirements through one or more program test integrate iterations
iii.    Integrated product is delivered to real users
iv.    Review of the project plan and adopted development methodology
•    Wrap Up: The activities performed in this phase are deployment into the user environment, post- deployment reviews and reflections are performed.

22) Explain in Agile, burn-up and burn-down chart?
 

To track the project progress burn up and burn down charts are used,
•    Burn up Chart: It shows the progress of stories done over time
•    Burn down Chart: It shows how much work was left to do overtime

23) What is Dynamic Software Development Method (DSDM)?
 

DSDM is a Rapid Application Development (RAD) approach to software development and provides an agile project delivery framework. The important aspect of DSDM is that the users are required to be involved actively, and the teams are given the power to make decisions. Frequent delivery of product becomes the active focus with DSDM.

24) Explain what is Scrum ban?
 

Scrum ban is a software development model based on Scrum and Kanban. It is specially designed for project that requires frequent maintenance, having unexpected user stories and programming errors. Using these approach, the team’s workflow is guided in a way that allows minimum completion time for each user story or programming error.

25) What is Feature Driven Development (FDD)?
 

This method is focused around "designing & building" features. Unlike other agile methods, FDD describes very specific and short phases of work that has to be accomplished separately per feature. It includes domain walkthrough, design inspection, promote to build, code inspection and design.

26) What is Lean Software Development?
 

Lean software development method is based on the principle "Just in time production". It aims at increasing speed of software development and decreasing cost.

27) What is Re-factoring?
 

Re-factoring is modifying existing code to improve its performance, readability, extensibility etc. The code’s functionality remains as it is.

28) What are the two key factors when working as a QA in an agile team?
 

QA can add a lot of value to an agile team because of the different mindset. Testers can and should think about the different possible scenarios to test a story. However the most important asset that they can bring is:
•    To prevent defect:QA should advocate best practices along the way to prevent defects from entering the system in the first place.
•    To provide fast feedback: It is important for developers to know if the new functionality works as expected and if regression tests pass, and they need that feedback quite quickly. QA should provide the results of the tests to developers as soon as possible.

29) What are the Disadvantages of Agile model?
 

•    In case of some software deliverables, especially the large ones, it is difficult to assess the effort required at the beginning of the software development life cycle.
•    There is lack of emphasis on necessary designing and documentation.
•    The project can easily get taken off track if the customer representative is not clear what final outcome that they want.
•    Only senior programmers are capable of taking the kind of decisions required during the development process. Hence it has no place for newbie programmers, unless combined with experienced resources.

0 comments:

Post a Comment