Sunday, June 11, 2023

PlatformCon 2023 Talk: Adobe's journey into building an Internal Developer Platform

Adobe began its Cloud-Native journey back in 2015 and has since then expanded to over 200 multi-tenant clusters deployed across multiple regions and geographies. We have an average of >3 million containers with over 200 production deployments each day. All this has been made possible with Adobe's Cloud Platform called Ethos which provides high resiliency, reliability, and robust CI/CD capabilities to Adobe product teams. We are now expanding this platform into an Adobe-wide Internal Developer Platform (IDP) that aims to provide a seamless experience incorporating service creation, deployment, and management to over 5000 developers. The IDP will integrate and provide key capabilities across security, infrastructure provisioning, monitoring, diagnostics and GitOps-based CI/CD tooling using Argo. Adobe is also going through a massive project of modernizing its K8s cluster fleet which will lead to greater resiliency and considerable cost savings each year. 

Watch the video below!



Sunday, January 15, 2023

Key Learnings from a GitOps Based Deployment Product Launch

I recently oversaw the launch of a new GitOps based deployment tool at my company. As a Product Manager working on internal developer tooling, a lot of the products I work on are not commercially available, so some of the learnings may or may not apply to commercial products. Having said that, one theme is constant which is that any Product Manager needs to build products that add value for users (developers in my case) and solve a set of key problems that they face. 

I recently shared about a workshop we conducted around the Adobe IDP, so this product launch provides a solution for two key IDP components which are namely Delivery/Deployment Management and Workflow Orchestration.

Below are some learnings I want to share from this product launch, and I hope some of these points will be applicable to any product launch. 

Focus on Users

  • Users typically have a status quo bias in the set of habits and technologies they use, and our product is no different. It's important to evaluate areas where user behavior may need to change in your current suite of products based on pain points users have shared with you. In our example, we are changing user behavior to move them towards a modern way of doing CI/CD using GitOps as opposed to leveraging a more traditional deployment philosophy.
  • Lighthouse period is golden, use it really well to understand client pain points, their success criteria and to improve your product.

Pre-Mortem Helps

  • Pre-mortems could really help you identify things that could go wrong a few months after launch. I first heard about pre-mortems from Shreyas Doshi where he shared it here. We conducted this session a few months product before launch. I repurposed the original template and created it in Miro, which is a tool we use at Adobe. See this template we used with examples.

Prepare GA Checklist

  • Support/on-call engineers need to be trained on the product well before going GA.
  • Have a GA production launch preparedness/checklist. This checklist should include things which are blockers to GA, which include various aspects around security, scalability and support readiness etc. 
  • Prepare a press release/blog post clearly outlining all product capabilities and communicating benefits it will provide to users and publish it during GA.

Establish Baseline for Success Early

  • Define and emphasize the criticality of KPIs to measure success of the product. If not already done, work with engineering to add tracking on all aspects of the product.
  • Prioritize product bootcamps and trainings. Build a community of power users who will be your advocates and will be willing to contribute features back into the product.
  • Build necessary conversion/migration tooling for users of existing tooling to move them over without causing friction. Remember to proactively communicate any maintenance mode decisions to incumbent users so that they are not left surprised.
  • Scalability and performance of the product are absolutely critical to the success.

Continue to Focus on Simplification

  • Continue to simplify user onboarding and make it a priority whether it's automating repetitive tasks, adding the right level of abstraction or removing friction for users via great documentation. First impression is everything!

Be Prepared to Make Tradeoffs

  • Be willing to pause new feature work temporarily in favor of addressing critical aspects such as scalability, security, support, training etc.
  • Keep a close eye on new feature requests that will enable new client adoption. Prioritize these features and set expectations with those clients accordingly.
  • Avoid building features that add tech debt and be prepared to retire unused features. Always aim to identify alternatives which provide users with the solution to their problem instead of asking engineering to build those features.

Listen to Users and Evaluate Other Offerings

  • Engage with clients continuously to understand their pain points and drive adoption. Listen more and speak less during these conversations.
  • Be willing to evaluate/learn from external offerings (free or paid). There may be a better solutions out there which you could either incorporate or learn from.

Hope these points will be helpful to you. Please share any other points I may have missed.