1) What is DevOps?
DevOps is a transformational development strategy that is adopted to remove the clumsiness between traditional development and operations. Without sacrificing the quality of the product delivered, it seeks for an increased speed of application delivery. DevOps removes development constraints, implements automation and creates a feedback loop from operations to the development team. In simple terms, DevOps is a mindset to deliver applications quickly with no compromise in quality.

3 Pillars to support the principles of DevOps Development:

  • Deliver Business Value predictably and incrementally.
  • Utilize proven technologies and patterns.
  • Apply appropriate rigor.

2) What are the Advantages of using DevOps?
In the DevOps model, development takes place in small and frequent development cycles based on sprint size that are likely to end in two to four weeks; so that any changes in business needs can be easily incorporated into the upcoming sprint.

In the DevOps approach, much of the solution is composed using existing reusable APIs, reliable third party services, etc. This helps in reducing the development time by making the most of the new code, required only in integration and customisation.

Q3. Which are some of the most popular DevOps tools? Do you have experience working with any of these tools?

A3. The more popular DevOps tools include:

  1. Selenium
  2. Puppet
  3. Chef
  4. Git
  5. Jenkins
  6. Ansible
  7. Docker

Q4. What is version control and why should VCS be used?

A4. Define version control and talk about how this system records any changes made to one or more files and saves them in a centralised repository. VCS tools will help you recall previous versions and perform the following:

  • Go through the changes made over a period of time and check what works versus what doesn’t.
  • Revert specific files or specific projects back to an older version.
  • Examine issues or errors that have occurred due to a particular change.

Using VCS gives developers the flexibility to simultaneously work on a particular file and all modifications can be logically combined later.

5) What is Pair Programming?
Pair programming is one of the engineering practices of Extreme Programming rules. In this practice two programmers work on one computer, on the same design/algorithm/code/test.

One programmer acting as a “driver”, and the other acting as an “observer” who continuously watches/monitors to identify problems. Both roles can be exchanged at any point of time without any handoff.
6) What are the advantages of Pair Programming?
Pair Programming helps in raising discussions from two different points of view, which in turn help in increased understanding of code/algorithm/design/test.
7) What is Test Driven Development (TDD)?
Test Driven Development is one of the core agile and DevOps practices, which is more helpful in quick iterations and continuous integrations. In this method, test cases become the key to development process. This method ensures that problems are identified quickly, which helps manage risk elegantly.

TDD is a practice where you write code to address a failing test case. It is not only considered as a testing methodology, but also as a design and development methodology.

8) What are the advantages of Test Driven Development?

As TDD first starts with the test case, the quality of code is increased as there will be one or more test cases for all the functionalities.

  • Refactoring code can be done confidently.
  • Eventually, the complete code in your application is well tested; since, it is constructed to address all the test cases.
  • Code turns more modular and flexible as developer is addressing all the test cases by coding in smaller units.

9) What is a build?
Build is a process in which the source code is put together to verify whether it works as a single unit. In the process of build creation or generation, the source code will undergo compilation, testing, inspection and deployment. Usually, build generation process is completely automated in a way that a single command does everything.
10) What is Continuous Integration?
Continuous delivery is an important aspect to be understood when it comes to DevOps. On the path to Continuous delivery, Continuous Integration is a critical step. Continuous Integration defines when an automated build has to be generated.  CI is one of the software development practices where member of the team frequently integrates their code, which then undergoes build generation process verifying the code written by individuals.