By Ankur Pal, Senior Director of Engineering, Earnin
The technology industry has rapidly evolved and innovated post-COVID in a number of ways – all to focus on making our (remote) lives relatively easy. Engineering teams have adopted solutions to not only optimize products and services, but also enhance internal operations, like the adoption of offline collaboration tools to streamline communication and remote device farms to test products.
In this article, I will take a closer look at new workflows and processes organizations can implement moving forward, to optimize the efficiency within their engineering teams.
Test & Learn
Over the past few years as social and economic environments have shifted, the majority of companies took a closer look internally to revamp their business plans and analyze their go-to-market strategies. Some companies found themselves updating solutions based on shifting customer preferences that emerged as a result of the pandemic. These types of updates not only pose challenges from an engineering perspective, they also can hinder the company’s bottom-line if not performed efficiently. Innovating solutions with this type of customer-centric lens requires a test and learn approach to experiment with new product features and apply variations based on initial customer reactions.
Startups in particular benefit from this test and learn culture. This cycle of testing, measuring, and learning creates a solid foundation for the engineering team to remove their personal biases from product development and focus more on customer feedback. When adopting this practice, companies ensure that any major investments in their platform center largely on the customer perspective, meaning they’ll likely be well-received upon hitting the market. This data-driven approach allows for more efficient utilization of resources overall.
Put the Cloud First
An important trend being adopted by companies this year is pivoting to become cloud-first organizations with no dependency on data centers. Gartner’s report on top strategic technology trends for 2022 highlights the top innovation multipliers and how they’ll take a bigger role in the years to come. This includes cloud-native platforms which can support the development and deployment of resilient, elastic and agile systems within organizations.
The benefits of cloud adoption not only enable cost savings, but provide organizations with the ability to speed up the pace of innovation, scale rapidly with ease, quickly access their data, and experience overall improved collaboration and efficiency. Investing in cloud-native platforms in addition to state-of-the-art tools for app development, provisioning, runtime and orchestration can help organizations, startups in particular, improve the resiliency of their systems and achieve greater business agility.
Native > Cross-Platform
While the technology industry is witnessing an uptick in cross-platform application development, native app development is still a best practice for mobile-first organizations.
Known as the gold standard of mobile development, native apps are more secure and interactive to elevate user satisfaction. While there is quite a bit of overhead, both organizational and operational, to maintain two native platforms, there is no substitute to native applications when looking for ways to create a streamlined and engaging user experience, especially on large scale, complex and immersive applications.
Cross-platform development may seem attractive from a cost-savings perspective, but the drawbacks to this approach can outweigh the benefit of selecting a cheaper solution. For example, consider the case study of Airbnb opting to invest in the React Native cross-platform solution to expand its access to mobile engineers and ship code faster.
For companies concerned about the cost of native development on both iOS and Android (which requires twice the investment), there are ways to gain efficiencies. These include techniques for testing experiments on only one platform, and organizations where native devs work on both iOS and Android.
Software Development Model
To keep up the momentum, consider moving to a microservice architecture to develop applications. It comes with a variety of advantages such as increased scalability, more security and improved agility, as you’re dealing with smaller pieces of deployable code and functionality. It also unlocks Conway’s Law in a different way, allowing your team structure to be decentralized with more ownership of the individual services end-to-end.
However, moving to a microservice architecture – especially for companies that have a monolith – is a huge task that needs to be undertaken carefully.
In the journey towards microservices, you typically want to start with a feature that requires numerous iterations, allowing you to prove the value. One strategy could be to first target some stateless services that carve out a piece of functionality from the monolith and then pick functionality that you would want to iterate on frequently and scale independently – that gives you more ‘bang for the buck’ as teams justify the investment before proceeding on this long journey.
Organizations must also make the shift to agile development to boost the software development process or lifecycle. It’s important to note that smaller release cycles for product rollouts can allow your organization to be a lot more nimble and flexible in terms of reacting to specifics and “course correcting” as needed.
Invest in Common Libraries and Frameworks
Organizations looking to optimize engineering efficiency can also invest in software platforms for common libraries and frameworks. The terms “library” and “framework” are often used interchangeably, but they are distinct tools with different features and properties, and it’s important to understand the difference. Generally speaking, a library is a collection of components developers can use to perform a specific function, while a framework acts as a more complete “blueprint,” made up of a collection of components already configured to work together.
From a technical standpoint, the distinction between a programming library and framework is defined as “inversion of control.” A developer using a library determines the flow of their application, as well as when and how to incorporate elements from the library in the project. In contrast, a framework provides an established programming environment that dictates the flow of the application. In other words, the framework inverts control of the program by telling the developer where to plug in their code, and a library does not. Libraries and frameworks also offer different benefits to developers, although they both contribute to greater programming efficiency.
A library can speed up the process of creating an application by providing developers with pre-written lines of code. For example, the Java Date and Time API comprises a group of classes and interfaces that define properties and methods for formatting dates, performing time zone conversions and providing global calendar support. Developers incorporate elements of this library when and where it makes sense for their project’s needs.
A framework can simplify the process of creating even complex, high-traffic or highly customized applications by laying out the design language and reducing time spent on tasks like writing boilerplate code. This enables devs to focus on more pressing challenges and come up with more creative solutions. Many frameworks also feature built-in unit testing, allowing developers to test performance of the application during the development phase.
In addition to boosting efficiency, frameworks offer opinions on how some common and challenging problems should be addressed and how to most effectively achieve the desired goal of the framework. This is another distinction between a framework and a library, and adds value by strengthening the quality of the project throughout the development process. That being said, developers should recognize that while frameworks are highly customizable, their designs do impose certain limitations and conventions on a project. In addition, because they are built to satisfy a wide variety of use cases, most frameworks will come with some features, functionality and code that are not applicable to every individual project for which they can be used.
In terms of costs, some software libraries and frameworks are open-source developer platforms, and therefore are available for free, even for commercial use. But most charge licensing fees and require some level of financial investment. Keep in mind that over time, these investments will not only enhance efficiency, but also improve the overall quality and consistency of product development.
Putting the Pieces Together to Optimize Your Journey
With the talent scarcity making it harder and harder to recruit the ideal tech talent, it becomes all the more important to establish the right workflows to enhance operations and empower your engineers to create leading-edge solutions that enhance your devops investments.
Ankur Pal serves as Director of Engineering at Earnin, a fintech platform that builds products for a more equitable financial system, freeing people from the traditional payment cycle by helping them take control of their money as they earn it. He leads platform modernization and innovation, leveraging expertise garnered during his past engineering roles at Expedia Group and Blackboard. Ankur obtained his bachelor’s degree in computer science from Mumbai University and his master’s in computer science from Clemson University.
As the groundbreaking leader in earned wage access, Earnin’s mission is to build products for a more equitable financial system and a better life. Built for the unique needs of those living paycheck to paycheck, Earnin is designed to free people from the traditional payment cycle and help them take control of their money, starting from when they earn it. Earnin’s comprehensive suite of tools include: Cash Out, which provides access to income as it’s earned, Balance Shield, a low balance alert to help maintain a positive bank balance, and Financial Calendar that helps people budget and schedule payments. Earnin is community-supported, with no mandatory fees or hidden costs. People have the option to tip what they choose to support the service. As of September 2021, Earnin has performed more than 125 million transactions and provided access to $10 billion in earnings for its members.