Two Significant Trends That Engineering Leaders Cannot Ignore
In the fast-paced technology world, Time to Market and Having the right people makes all the difference.
To bring a new product to the market, making the right choices around architecture/design is paramount, rigid application and infrastructure architectures don't give developers the flexibility and are challenging to maintain in the long run.
Leaders are concerned about the rise in infrastructure costs and the number of developer resources required to manage and support applications; these two problems are tackled with an app development approach - Serverless.
Serverless also known as Function as a Service is a new paradigm that allows developers to write functions that execute application logic but do not store data. It takes an event-driven/on-demand utility approach instead of reserving server capacity in advance.
Significant benefits cover agility (no infra administration), scalability( no DevOps dependency) and cost-effective ( pay per usage model). Some of the popular use-cases are real-time data processing ( file, stream, ETL processing), application backends (web, mobile) and intelligent applications ( video, image, and messaging analysis), DevOps automation, policy enforcement, etc.
AWS Lambda, Google Cloud Functions, Azure Functions are some of the managed services offered by the cloud providers. The most natural path for technical leads, developers to get started is to use one of the popular open-source frameworks such as Fission, Apache OpenWhisk or OpenFaas etc. While most developers describe event data in their way, CNCF sponsored projects like CloudEvents are working to ease event declaration across services, platforms.
Companies such as Netflix, Airbnb, Adobe, Expedia, Motorola, Capital One, Nike, JP Morgan, Coca-cola are some of the early adopters.
Some of the toolings around deployment, security, monitoring and debugging are evolving fast, and more than 67% of enterprise developers said that serverless was either ''critical'' or ''important'' for the work they did at their jobs. As per the same 2018 report from RightScale, Serverless is the highest growing public cloud service registering a 75% annual growth.
While Serverless, Microservices has made designing, developing application faster, many companies adhere to the notion of managing people in one physical location which constrains them to hire the best people, support growth and support customers round the clock, these challenges have given rise to a new workplace trend - Borderless.
Technology, in general, has enabled modern companies to disrupt their verticals. This has created a demand for engineering talent across the various technology hubs, with its peak intensity at Silicon Valley. Hiring and retaining engineering talent is a very desirable unfair advantage for any technology company, especially for high growth companies. Given the pressing need for talent, coupled with immigration, cost and few other companies are left with no option to build remote or distributed development teams spread across the globe.
Remote first Companies such as Buffer, GitLab, InvisionApp etc., have taken advantage of access to talent by changing their playbook that leverages talent anywhere. Other companies have made a note of this approach and have started to set up dedicated remote teams or hire team members distributed across the globe.
While It's easier to buy into arguments that remote/distributed teams are accelerating time to market, cost-effective, provide wider talent pool etc., Key aspects around hiring, onboarding, communication and culture aspects of managing remote teams make it no fun. They can minimize some of the obstacles adapting below best practices
- Hiring - Starts with hiring a leader. When a remote office location is opened, the company has more or less figured out its value proposition, validated the product-market fit and is raring to grow. The focus is on building a sustainable business, and a leader with excellent operational and tactical skills is the right person to lead the second office location. Once the leader is aligned with the business objectives and builds confidence with the headquartered leadership team, she comes up with a blueprint of what various groups need to be setup.
- Onboarding - often overlooked, effective onboarding plays a very crucial in productivity and retention of the team, enough lead time needs to be given across relevant aspects that span PeopleOps, Culture Orientation, Engineering Tools & Processes, Collaboration etc.
- Communication - Communication is imperative as the most important thing to get right when working with remote teams. The remote leader would need to plan for all forms of required communication that span Video, Written, Physical, Collaborative Chat, Feedback oriented need to be enabled and agreed by everyone for effective communication. Usually, a culture of over communication helps the team members be explicit and start on the right note.
- Engineering Culture Aspects - Every engineering culture is different. It is shaped by the engineering leadership, the nature of problems the team is looking to solve and by the sub-team structures. This culture affects how software is developed, how teams are expected to work with each other, how code is expected to be written, how code reviews are performed etc. The remote engineering team will have to replicate the same culture to the extent possible to have a standard way of solving problems. Engineering leadership needs to codify their learning in a format that can be easily understood by newer members, and this goes a long way, especially for people who are remote or distributed.
- Product Culture Aspects - Similar thinking needs to be applied to capture the Product development culture. How products are developed and released has a direct impact on functions such as Engineering, Product Marketing and Sales. Helping everyone understand the Product Development culture aligns the various tasks on the everyday workings of the organization and gives them enough context to excel at their specific Function.
- Measuring Productivity ( Process, Engg Flows, etc.) - Measuring what matters is key to the success of the remote teams and their general adoption. Having a firm opinion on the various processes that need to be adopted in the remote unit and having metrics to capture the effectiveness of those processes provides freedom and accountability at the same time for the remote teams. Smart remote teams are aware of their processes and performance metrics and review them to continuously up their game and deliver smart. The organization's management needs to articulate the ideal operational style based on processes that are already in place or could adopt frameworks such as the Remote Eng Framework to address specific team setups.
Borderless is not a new trend. Large technology companies such as Google, Microsoft, Amazon, etc., felt the need to expand much early on and have set up engineering offices in Europe, Asia Pacific etc. But the vast majority of the companies start a physical office, hire a set of people and start looking for a second location when hiring/retention or growth challenges force them to expand.
Serverless might not be the right choice for every technical problem, and the analogy applies to remote/distributed teams to solve hiring/retention challenges. But with applications becoming more and more modular, best developers who are spread across the globe and the rapid rise of collaboration tools such as Slack, Zoom, Asana, Trello etc., these two trends are here to stay.
Serverless and Borderless are at a critical inflection point that will define how applications and teams are built/scaled over the next decade and should be part of the Engineering Leaders arsenal.
Ravi Bhim is an Engineering Leader and Founder of BeautifulCode