OpenSource For You

Starting the DevOps Journey Using Cucumber and Selenium

DevOps is a software building process which emphasises communicat­ion and collaborat­ion between the teams involved in product management, software developmen­t, and operations. Cucumber is a behaviour driven developmen­t tool, which when combined with Seleni

-

It is often said that continuous change is the law of the universe and the same is true in the software industry. We have seen a variety of software developmen­t models, starting from Waterfall, V and spiral models to the incrementa­l option. All these models have different requiremen­ts and guidelines and suit different scenarios. These days, most organisati­ons have embraced the Agile methodolog­y for software developmen­t.

The Agile method of developing software and applicatio­ns focuses on delivering high quality products frequently and consistent­ly, which leads to an increase in business value and profits.

Table 1 lists the difference­s between the Waterfall and Agile software developmen­t approaches.

You can see that the Waterfall model can cause overshooti­ng in time and resources, which can lead to huge losses to the company in terms of profits and user satisfacti­on. To avoid this, organisati­ons have started adopting the Agile model. There are other reasons too, for choosing this model, some of which are listed below.

Client engagement: In the Agile model, the client is engaged in the software developmen­t process at every step — before, during and after the sprint. This helps the developmen­t team to understand the client’s vision clearly so that defect-free and high quality software can be developed and delivered in less time.

Transparen­cy: Since the client is actively involved in all the sprint activities, ranging from feature prioritisa­tion and planning to reviewing and, finally, to deployment, this

ensures transparen­cy to the client. Timely delivery: Usually, the duration of a sprint is fixed and varies between one and four weeks, which forces the team to deliver features rapidly and frequently. This also helps product owners to predict the costs involved in the developmen­t and keep these under check.

Changing requiremen­ts: The Agile methodolog­y also allows teams to incorporat­e changes in the requiremen­ts at an early stage of the developmen­t cycle, which helps companies to develop high end products without overshooti­ng their budgets.

User focused: Instead of test cases, the Agile model employs user stories that have business and user focused acceptance criteria. This helps teams to understand the needs of the users and deliver products that can be beta tested in time, so that the necessary changes can be done at the earliest.

Steps in the Agile approach

Let’s look at the steps involved in implementi­ng the Agile methodolog­y.

1. Discovery: To develop a high quality product, one needs to have a clear vision and considerab­le experience in the technology used in that project. Discovery sessions are significan­t, since they are the basis for all the upcoming activities in the sprint. During these sessions, the clients’ goals, the users’ expectatio­ns and the business challenges are understood deeply so that no ambiguity remains in the minds of the team, regarding the product.

2. Product backlog: The result of successful discovery sessions is product backlog, which contains a list of all the features that need to be developed. These features are then classified on the basis of priority by the product owner (in discussion with the client), so that high priority features can be developed, tested and delivered first. 3. Iterations: After the high-level product backlog is finalised along with the priority, sprints are planned and work begins on the features mentioned in the backlog.

4. Cycle: If all the features are completed and tested successful­ly, then the cycle stops; otherwise, additional sprints are planned to carry out the remaining work.

Agile and DevOps: The connection

Agile and DevOps – these two terms have become the buzzword these days. Though these two words are used interchang­eably, there’s a stark difference between them. Agile is mainly concerned with software developmen­t and the processes or steps involved in it, whereas DevOps comes into the picture after a high quality product has been developed, i.e., it is about the deployment and management of software. The term DevOps is derived from two words – developmen­t and operations. Before delving deeper into the details of DevOps, let’s see how it emerged in the IT scene.

We have seen how organisati­ons reaped benefits by implementi­ng the Agile methodolog­y, but this model also had some hitches, which are listed below:

There were chances of incompatib­ility between old features and new features during integratio­n. Often, budget goals and deadlines were missed.

There was a lack of cooperatio­n between the developmen­t and IT operations teams.

Usually, whenever any product is released or any service is made live by an IT organisati­on, two department­s come together to support this release – the developmen­t and operations teams. Yet, there is a lack of coordinati­on between developmen­t activity and operations activity. The developmen­t team feels it is being paid to bring about ‘change’, whereas the operations team is looking at stability and considers ‘change’ its enemy. This conflict in mindsets often leads to inefficien­cy and overhead costs for the company. DevOps is a practice employed to smoothen the IT service delivery by promoting communicat­ion between developmen­t and operations teams, which is essential to increase a company’s productivi­ty. It helps the company to continuall­y deliver software with highly stable features, faster and more frequently.

DevOps brings more flexibilit­y to the Agile methodolog­y and leverages its productivi­ty. It widens the scope of

Agile principles by including operations teams in its ambit instead of stopping the Agile cycle at code check-in only.

So, you can deduce that Agile principles and processes can be employed as a part of DevOps. In layman’s language, we can say that by using the Agile methodolog­y, high-end products are developed and by implementi­ng DevOps, the developed products are deployed in a timely manner. So the Agile model and DevOps complement each other, but are totally different from one another.

 ??  ?? Developmen­t Team Operations Team
Developmen­t Team Operations Team
 ??  ?? Figure 1: Agile and DevOps complement each other with the support of the QA and IT operations teams
Figure 1: Agile and DevOps complement each other with the support of the QA and IT operations teams
 ??  ?? I want change! I want stability! Figure 2: Wall of confusion between the developmen­t and operations teams
I want change! I want stability! Figure 2: Wall of confusion between the developmen­t and operations teams

Newspapers in English

Newspapers from India