Monday, 12 October 2020

Top Agile Interview Questions & Answers

Top Agile Interview Questions & Answers

1. What is Agile Testing?

The first question of agile interview question tests your knowledge about the basic of agile testing. Agile testing is a practice based on the principles of agile software development. It includes all members of an agile team with specific skills and a certain expertise to ensure the timely delivery of a product with the release of additional features at frequent intervals.

2. How is Agile Methodology different than Traditional Waterfall process?

This is the most commonly asked agile interview question. In agile methodology, features of the software are delivered frequently, so that the testing activity is done simultaneously with the development activity. Testing time is shortened as only small features are need be tasted at once.

agile interview questions

Source

While, in the waterfall model, testing activities take place at the end of the entire development process. Testing time, in this case, is as long as the entire product is to be tested in one go. Waterfall methodology is a closed process where all stakeholders are not involved in the development process whereas agile methodology requires the involvement of various stakeholders including customers. Learn more about agile vs waterfall.

A Beginner’s Guide to MVC Architecture in Java

3. What are the pros and cons of Agile Methodology?

This is one of the most frequently asked agile interview questions.

Pros of the agile methodology:

  • Speedy and continuous delivery of the software ensures customer satisfaction.
  • All the stakeholders (customers, developers, and testers) are involved in the process which leads to technical excellence and good design.
  • It facilitates close interaction between business people and developers.
  • Its flexibility ensures the adaptation to changing circumstances. Changes added at the last moment or at a later stage of development can be incorporated without any problem.

However, it does have some disadvantages too:

  • Sometimes when software deliverables are large ones, it is tough to determine the effort level required at the beginning of the software development lifecycle.
  • In agile methodology, documentation and designing take a back seat.
  • The decision making crucial for the development process comes with seniority and experience. Hence, freshers can hardly manage to find a place in the agile software development process.

4. What kind of projects is suitable for the Agile Methodology?

The traditional methodology is suited for projects with predefined, clearly stated requirements while agile development methodology is suitable for projects with dynamic requirements where frequent changes in the product come up on a regular basis.
15 Must-Know Spring MVC Interview Questions

5. What are the different types of Agile Methodologies?

An agile interview question and answers guide will not complete without this question. There are several types of agile development methodology. Scrum is one of the most popular and widely used agile methods. Other types of agile development methodology are; development like Crystal Methodology, DSDM(Dynamic Software Development Method), Feature-driven development(FDD), Lean software development and Extreme Programming(XP).

6. Difference between extreme programming and scrum?

Scrum teams usually have to work in iterations which are known as sprints which generally last up to two weeks to one month long while XP team works in the iteration that lasts for one or two weeks.
XP teams are more flexible as they can change their iterations while Scrum teams do not allow any change in their iterations.
The product owner prioritizes the product backlog but the team decides the sequence in which they will develop the backlog items in scrum methodology. Whereas XP team works in strict priority order, features developed are prioritized by the customers.
agile interview question and answers

7. Can you explain the lean methodology in detail?

Lean software development method follows the principle of “Just in time production”. It aims at increasing the speed of software development and decreasing cost.
The basic idea of lean is to reduce non-value-added activities (known as “wastes”) in order to increase customer value. The agile process itself is a lean method for software development lifecycle. However, activities like backlog grooming (when team review items on the backlog to ensure the appropriate items are in the backlog, that they are prioritized well, and that the items at the top of the backlog are ready for delivery) code refactoring (process of restructuring existing computer code – changing the factoring — without changing its external behavior) fits agile methodology more in tune with lean principles.

What is Test-driven Development: A Newbie’s Guide

8. What is Kanban?

Kanban is a tool which helps the team to keep a close eye the work i.e., to measure its progress. Apart from the progress, the status of a development story can be seamlessly described with the help of ‘kanban board’.
Kanban board aids in writing the whole scenario of a project at a single place to give a perfect picture of the bottleneck, a task done, workflow progress. It helps in the continuous delivery of the product without overburdening the team.

9. Is there any difference between incremental and iterative development?

Yes, the iterative methodology is a process of software development without any interruption. In this method, software development cycles consisting of sprint and release are repeated until the final product is obtained. Whereas, the incremental model is a process of software development where the product is designed, implemented and tested incrementally until the product is finished. It involves both development and maintenance.

10. What are burndown and burn-up charts in agile methodology?

To track the progress of an ongoing project, these charts are used. Burn-up charts indicate the work that has been completed while Burn-down chart shows the amount of remaining work in a project.
Why Companies are Looking to Hire Full Stack Developers

11. Can you explain pair programming and its benefits?

The combined effort in the team where one programmer writes the code and the other one reviews it is called pair programming. There are several benefits of pair programming, it not only improves the quality of code but also facilitates the knowledge transfer. It reduces the chance of mistakes as two people are simultaneously working on a code.

12. Do you know what is the scrum of scrums?

The term “Scrum of Scrums” is used when there are multiple teams involved in a project. It refers to the scaling of the daily Scrum meeting. In this scenario, each team is responsible for conducting and leading its separate scrum meeting. However, to maintain coordination and communication among all the different teams, a separate meeting must be conducted wherein all the teams participate. This is known as the “Scrum of Scrums.”

In this meeting, one team leader from every team (known as the “ambassador”), will represent their team. The main idea behind this is to encourage Agile teams to collaborate and coordinate their work with each other. 

agile interview questions and answers

13. What is the velocity of a sprint and how it is measured?

Velocity is one of the planning tool used to estimate the speed of the work and time of completion of the project. The calculation of velocity is done by reviewing the work team has successfully completed during earlier sprints; for example, if the team completed 5 stories during a two-week sprint and each story was worth 3 story points, then the team’s velocity is 15 story points per sprint.
How to Become a Full Stack Developer

14. According to you what are some qualities that a good agile tester must have?

A competent agile tester must possess the following qualities:

  • They should be capable of understanding the requirements quickly.
  • An agile tester should be aware of all the agile principles and concepts and values as listed down in an agile manifesto.
  • They should be able to prioritize the work based on the requirements.
  • They should have excellent communication skills as continuous communication between business associates, developers and tester is a backbone of the agile development process.

15. Can you list some responsibilities that a scrum team have to undertake?

This is one of the important agile interview questions. Major responsibilities that a scrum team has to include:

  • Breaking down the requirements, creating tasks, estimating and distributing the created tasks. To put simply they are in charge of creating sprint backlogs.
  • They have to arrange daily sprint meeting.
  • It is a responsibility of the team to ensure that every functional feature is delivered on time. They have to create a sprint burndown diagram to know to get the exact estimate of work done and the work that needs to be done.

16. Mention the principles of Agile testing.

The principles of Agile testing are:

  • Continuous testing – This ensures the continuous progress of the product. An interesting aspect of the Agile testing process is that unlike the traditional methodologies where only the testing team is focused on product testing, it requires the entire team to participate equally in the testing process. 
  • Continuous feedback – With every test, the client feedback is encouraged to ensure that the product meets the business requirements of the client. 
  • Simple and clean code – Whatever errors and defects arise during the testing phase are fixed within the same iteration by the Agile team. This allows for simple, concise, and clean code. 
  • Less documentation – Agile teams use a reusable checklist. Here, they are more focused on the testing process rather than the incidental details.

17. Differentiate between Agile and Scrum.

A critical agile interview question you need to be aware of. Agile and Scrum have their fair share of similarities and differences. Since Scrum is a part of the Agile Methodology, both of them promote the completion of projects incrementally in small fragments. Also, both methodologies are iterative in nature.

However, the main difference between Agile and Scrum is that the former has a broader spectrum. While Agile Methodology is used for project management, Scrum is ideal for projects where the requirements change rapidly. In the Agile Methodology, leadership holds the most pivotal position, whereas Scrum encourages the creation of a self-organizing and cross-functional team.

18. What are the crucial Agile Matrices? 

Some of the essential Agile Matrices are:

  • Velocity – It is essential to keep track of the project’s velocity so that the Agile team can have a clear about your progress, capacity, and other metrics. 
  • Work category allocation – Allocating separate work categories provides a clear idea about where different team members are investing their time and what is the order of priority of the various tasks in a project. 
  • Defect removal awareness – When team members work proactively and correct the errors simultaneously as they develop and test a product, the quality of the end product improves significantly.
  • Cumulative flow diagram – It represents a workflow in which the x-axis represents time, and the y-axis depicts the effort of members. 
  • Sprint burn-down matric – This allows the Agile team to track and monitor the completion of the work along with the sprint.
  • Deliver business value – It is primarily concerned with the overall work efficiency of the Agile team. Only when all the team members are productive that the Agile team can deliver business value to their clients. 
  • Time coverage – The time required to develop and test each iteration is measured using the ratio between the number of lines in a code (test suite) and the number of relative lines of codes.
  • Defect resolution time – As the name suggests, it pertains to the time required to detect and fix bugs and issues. This is an elaborate process that requires the Agile team to collaborate and deliver improved results in the most productive manner possible.

19. Explain “Zero Sprint” in Agile.

In Agile Methodology, Zero Sprint refers to the first step that comes before the first sprint. So, it is more like a pre-step to the first sprint. Thus, Zero Sprint would include a host of activities that are to be completed before starting a project, including setting up the development environment, preparing backlog, and other such tasks that are usually done before beginning the actual development process. 

20. What is the ideal duration of a Scrum Sprint?

The duration of a Scrum Sprint or the Scrum Cycle primarily depends on the project size and the team working on it. A Scrum team may consist of 3-9 members, and it takes about 3-4 weeks to draft and complete a Scrum script. Going by this calculation, the average duration of a Scrum Sprint is four weeks.

21. Explain the role of the Scrum Master.

One of the popular agile interview questions. The Scrum Master is the leader and supervisor of the Scrum team. The main job of the Scrum Master is to ensure that the team abides by the Agile values and principles and follows the agreed-upon processes and practices. Some of the most crucial responsibilities of the Scrum Master are:

  • To eliminate all the obstacles that could hamper the productivity of the Scrum team.
  • To establish a productive and collaborative work environment for the Scrum team.
  • To protect the team from the interruptions and distractions of the outside world.
  • To maintain a good relationship between the team, clients, and all the other stakeholders involved in a project. 
  • To supervise the operations of the Scrum team and motivating them as and when needed. 

22. Differentiate between “Sprint Planning Meeting” and “Sprint Retrospective Meeting.”

Although the two terms may sound similar, Sprint Planning Meeting and Sprint Retrospective Meeting are quite different from one another. A Sprint Planning Meeting involves all the Scrum roles – product owner, scrum team, and scrum master – coming together to discuss the project priorities and backlog items. Usually, the Sprint Planning Meeting is a weekly event that lasts for about an hour. A Sprint Retrospective Meeting, on the other hand, is one where all the Scrum roles (product owner, scrum team, and scrum master) come together to discuss the good and bad elements of the sprint and the sprint improvements. This meeting is generally an extension of the Sprint Planning Meeting and can last up to two to three hours.

Apart from these agile methodology interview questions, questions based on your previous experience in case you are already acquainted with agile methodology can be asked by the interviewer. You might want to revisit your on-the-job learnings and prepare answers to questions like:

    1. How long were your sprints for the projects you have worked on?
    2. What is the maximum number of scrum you have handled at a time?
    3. What kind of project management tools were used for your project?
    4. Have you used automated test tools earlier? How was your experience?
    5. Did your iterations overlap?
How to Become a Full Stack Developer

Conclusion

With that, we come to the end of our list of agile interview questions and answers guide. Although these agile interview questions are selected from a vast pool of probable questions, these are the ones you are most likely to face.

These were the must-know questions and answers revolving around the agile methodology. Most companies practise agile development in one form or another, thanks to the features it has to offer. If you wish to make a flourishing software development career, what are waiting for? Master agile methodology. Explore more about the Agile software development, check out upGrad’s PG Diploma in Full Stack Software Development Course.

Become a Full Stack Developer

UpGrad and IIIT-Bangalore's PG Diploma in Software Development
Learn More

Saturday, 10 October 2020

C# Interview Questions

 

Q. What is the difference between Static class and Singleton instance?

–> In c# a static class cannot implement an interface. When a single instance class needs to implement an interface for some business reason or IoC purposes, you can use the Singleton pattern without a static class.
–> You can clone the object of Singleton but, you can not clone the static class object
–> Singleton object stores in Heap but, static object stores in stack
–> A singleton can be initialized lazily or asynchronously while a static class is generally initialized when it is first loaded.

Q. What are extension methods and where can we use them?

Extension methods enables you to add new capabilities to an existing type. You don’t need to make any modifications to the existing type, just bring the extension method into scope and you can call it like a regular instance method.
Extension methods need to be declared in a non-generic, non-nested, static class.

Notes:

  • The difference between a regular static method and an extension method is the special this keyword for the first argument.
  • Extension method cannot be declared on a class or struct.
  • It can also be declared on an interface (such as IEnumerable). Normally, an interface wouldn’t have any implementation. With extension methods, however, you can add methods that will be available on every concrete implementation of the interface
  • Language Integrated Query (LINQ) is one of the best examples of how you can use this technique to enhance existing code.

You can read the implementation of Extension Methods in C# here.

Q. What are the differences between Dispose and Finalize ?

DisposeFinalize
It is used to free unmanaged resources at any time.It can be used to free unmanaged resources held by an object before that object is destroyed.
It is called by user code and the class which is implementing dispose method, must has to implement IDisposable interface.It is called by Garbage Collector and cannot be called by user code.
It is implemented by implementing IDisposable interface Dispose() method.It is implemented with the help of Destructors
There is no performance costs associated with Dispose method.There is performance costs associated with Finalize method since it doesn’t clean the memory immediately and called by GC automatically.

 Q) What is the difference between ref and out keywords?


Top Agile Interview Questions & Answers

Top Agile Interview Questions & Answers 1. What is Agile Testing? The first question of agile interview question tests your k...