Taro Logo

What are the heuristics to plan the projects for the better engineering work stream?

Profile picture
Anonymous User at Taro Community2 years ago

Based on talking with engineers working on Product teams, I have good list of projects where we could be spending time. The project themes are mix of improving existing architecture, pain points vs adopting new technologies, API in the code base.

How can I prioritize the most important projects while also keeping the developers happy by adopting some new technologies?



(1 comment)
  • 1
    Profile picture
    Robinhood, Meta, Course Hero, PayPal
    2 years ago

    When it comes to building better infrastructure for product teams to ship, there's 2 axes to consider:

    • Broadness - How many teams does this new infra support?
    • Depth of impact - For the team who need this new infra, how much does it help them? There's 2 axes to evaluate that that come to my mind:
      • How much it shortens their development time (i.e. increase their velocity)
      • How much it increases their smoothness/safety when shipping (e.g. instead of releasing with an average of 5 bugs per launch, it goes down to just 2)

    To make things even trickier, teams are often times not all equal. If there's some team in your organization that has a mission-critical project at the company level, it might make sense to prioritize a project for them even if the solution would only help them.

    adopting new technologies...

    I would be wary of this; one of the most common ways I've seen engineer cycles be wasted is with pointless migrations and refactors, which is super common in more mature companies. I think it's really important to understand the exact problem the new technology is solving and push past the "It's more modern" aspect. In particular, I've seen a lot of new technologies show that they're really good at a specific development use-case (which will be touted heavily in their GitHub README or whatever) but struggle at a lot of existing ones.

    Generally you can make an existing framework cleaner by spending more effort introducing smart abstractions and modularizing the code. See if you can solve existing problems with these techniques before you bring in a new technology.

    Zooming out, it's always nice to get outside opinions on these things. I recommend talking to your manager/skip about your proposal and using them as a sounding board.