The Adyen way of engineering: expose work early
Tags: payments, adyen, engineering
Published: 2020-09-16 17:19:26

_By Sarpkan Selcuk, C Developer, Adyen_

2020 has brought us a new world, a completely different path than many would have foreseen. Individual lives were changed big and small, and businesses began to accommodate the impact of COVID-19 to their environment. 

But while a lot has changed, some things have stayed the same. We at Adyen kept on working full-throttle, adding new features and following our game plan for releases without slowing down the hiring process.

In the light of the new world, and as part of providing the most suitable in-store payment acceptance for our merchants and their shoppers, we have explored various solutions where the shopper does not have to touch the POS terminal during the entire transaction process. We found the solution together with another product we have developed for ecommerce, [Pay By Link](https://docs.adyen.com/checkout/pay-by-link), where the shopper gets a link from the merchant which redirects to a page hosted by Adyen to complete the payment.

##Contactless payments using Pay By Link

The solution can be summarized as follows: Using their mobile devices, the shopper can obtain the URL through scanning the QR code. From that point on, the shopper can proceed by using their favorite payment method. The Adyen backend will handle the rest, while informing the Adyen terminal about the status. Once the terminal gets the notification that a payment is successful, it can continue with the rest of the operation such as printing receipts and communicating with the cash register. This allows the merchant to keep the typical payment experience business-as-usual.

![adyen-way-of-engineering-inline](https://dev-to-uploads.s3.amazonaws.com/i/6sk7m957gpfzxt23zd5i.png)

In a nutshell, this solution provides a check for all our goals for contactless payments:

* Shopper does not need to touch the terminal to pay.
* The merchant can offer this feature without changing their integration to our platform.
* The process is still intuitive to shoppers.
* Terminal offers both typical Adyen POS payment methods (EMV cards and NFC payments such as [ApplePay](https://docs.adyen.com/payment-methods/apple-pay)), as well as various ecommerce payment methods.
* The method of implementation prevents double booking (shopper being charged twice) even if both POS and ecommerce payment methods are attempted by the shopper at the same time.

##Exposing your work early

###Scoping the problem

So how did we manage to develop and deploy such a large feature that requires involvement from a lot of different teams within a very short period of time? 

The answer lies in the Adyen formula and the Adyen way of developing.

During the design phase of the feature, we have selected a few key merchants that fit the right profile for us to gather the requirements as well as interest. Thanks to their insight we were able to prioritize certain parts of the solution.

Once we have figured out how the feature is defined, we have started exploring the terminal architecture as well as the existing Pay By Link solution to see how we can create the optimum synergy. We have involved many who have worked with either or both of the solutions, to sharpen our ideas and to think about edge cases.

###Executing the solution

One of the key points of Adyen development is to expose the work early. Previously named “Push early, pull often”, the rewording actually gives us a wider meaning, encouraging our team to expose the code as early as possible to other developers, test environments, beta merchants. In turn, any bugs or alignment issues between different parties can be detected early on, leading to a faster stability cycle.

For the development of the Pay By Link in-store solution, we had to create a super team containing members from multiple streams as well as experts on multiple domains. This was necessary since there were a lot of moving parts which have to be aligned at every step. To be able to work efficiently, we started with:

* Identifying key points across the terminal and backend.
* Determining interfaces for seamless integration.
* Organizing weekly follow-up meetings with following the [Adyen formula](https://careers.adyen.com/) to never hide behind email.

Each week we not only tracked development progress through the meetings, but we also tried to come up with a newer prototype as soon as possible, where the new code was exposed and tested together with the rest. We were able to quickly identify the potential misalignments and successfully managed to follow up the challenging timelines set.

What we have achieved through this approach is a high-quality solution, already proven under many sunny and edge cases, tested through the scope of our “early adopter” merchants.

Contactless payments through Pay By Link in-store is now available for our merchants.

> ##_Technical careers at Adyen_
_We are on the lookout for talented engineers and technical people to help us build the infrastructure of global commerce!_
_[Check out developer vacancies](https://www.adyen.com/careers/vacancies/development)_

> ##_Developer newsletter_
_Get updated on new blog posts and other developer news._
_[Subscribe](https://www.adyen.com/newsletter/developers)_