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 differs from the other Testing 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) 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)———————————————————5) 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.———————————————————6) 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———————————————————7) 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.———————————————————8) What is Scrum? Scrum is an innovative approach to getting work done in efficient way. It is iterative & incremental agile software development method. 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.———————————————————9) 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.———————————————————10) 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. ———————————————————11) 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.———————————————————12) 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.———————————————————13) 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 walk-through, design inspection, promote to build, code inspection and design.———————————————————14) 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.———————————————————15) 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.