As a part of the new Explorer series on Emerging Development Trends, Gapstars held their first event on Wednesday, 29th of May 2019 at Hatch Colombo. If you didn’t already know, Gapstars is a B2B service provider to Dutch software companies. Founded in 2015, Gapstars has developed a method to help fast-growing tech companies with high performing agile offshore development teams. So what exactly did we learn at the first ever Gapstars explorer series?
Scaling up QA Practices for DevOps
The first session at the Gapstars Explorer series on Emerging Development trends had Harshana Premarathna speaking to us about QA or Quality Assurance. Harshana, the Lead QA Engineer at Gapstars started off by explaining that the role of a QA engineer is tricky. They have to do the maximum amount of work, in the minimum amount of time. The adoption of DevOps and Agile development has allowed products to go to market faster to meet business and customer demands.
When developing a product, a QA engineer must ensure that whatever has been developed is production ready and bug free. If the product is launched and there are bugs identified by the customer, the developers of the product are in hot water.
One roadmap to rule them all
By means of a roadmap, Harshana explained the various steps on how to scale up QA practices. For For example, he shared the definition of production-ready products and why continuous delivery is important to a product. Essentially, it’s important to keep monitoring a product for bugs and defects and also to see how well the product is performing.
Harshana then walked the audience through a number of steps such as a Shift left in QA testing, being and Ephemeral, In Shift Left, for example, the QA team and the developers can actually work together giving feedback to each other. This in turn drastically cuts down on the time and effort when testing a product as each team can give their feedback before committing a major feature change or update.
Pipeline friendly layered testing technology was another step that Harshana covered. A key point of running a pipeline is to get feedback. The feedback would provide the development team with confidence in the product. Harshana ended his session at the Gapstars Explorer series with a live demo of how to carry out QA on a product.
Moving from Monolith to Microservices
The second session at the Gapstars Explorer series was about shifting from a Monolith design to microservices. It was carried out by Rajitha Gunawardhane – Senior Software Engineer at Gapstars.
So what exactly is a monolith design?
Think of a monolith design as an all-in-one domain. The monolith architecture contains all the various services and functions needed to operate. While a monolith design allows your deployment once and for all, it also means that if a failure occurs, the entire domain is at risk. In addition, build and deployment times are also high. If a new member joins a development team, his/her learning curve is also high as they need to learn everything about the domain.
What is a microservice?
Rajitha explained a microservice as a collection of loosely coupled services. The services are isolated and autonomous. For example, if you take a video streaming service such as Netflix, its microservices can range from handling user accounts, to processing payments, to updating video content etc. Each of these functions would be assigned as a microservice.
So if a failure occurs, it would only affect that particular microservice. In addition, rolling back one microservice is a lot easier than rolling back an entire monolith designs. Rajitha went on to explain that microservices are also focused on specific domains.
From there, Rajitha spoke about the various tools used for testing microservices. Depending on the microservice, the build time for a microservice can vary. This, in turn, would directly affect the testing period of the microservice as well. This is because there are a lot of things to test.
Making the jump to microservices
Rajitha went on to share the finer details about shifting from a monolith architecture to a microservices architecture. When choosing modules for microservices, Rajitha explained that you need to consider future changes to the domain, team structure and technology. Each of these plays a vital part in how the domain will operate. Since shifting to a monolith architecture is a somewhat giant leap for the company,
He also gave a few tips on how microservices can be optimized. For example, in the event of processing data such as country codes, the data can be duplicated for each service because it will not change. In on the other hand, you can have the data in code as static data, or as a new service entirely.
Making things interactive with Gapstars
Following the Rajitha’s session, an interactive discussion took place. The participants were Jayawi Perera – Tech Lead at Gapstars and Niroshan Madampitige – Agile Coach and Head of Delivery at Gapstars. Jayawi shared that Sri Lankan software engineers are not challenged enough about what they do. He went on further to explain that just like a chemical engineer or civil engineer, software engineers also have a discipline to follow.
The audience too had questions for Jayawi. One such question was the calling oneself a software architect rather than a software engineer. To this, Jayawi replied sharing that you cannot detach yourself from software development and call yourself an architect. Rather, you need to stay upto date.
With a few more questions and the vote of thanks being delivered, the Gapstars Explorer series on Emerging Development trends came to an end. If you would like to learn more about Gapstars, you can check out their Facebook page and website as well.