How do you justify “opportunities” or find opportunities that outweigh cons?
Posted by QuitTypical3210@reddit | ExperiencedDevs | View on Reddit | 6 comments
I can see areas of improvement for the product I work on. But I don’t know how to justify that improving it outweighs the cost.
For example, a product has no dependency management. I can revise the whole application to have centralized dependencies so it’s simplified in the repository and dependencies can be updated easier, with clearer ways to check what dependencies are used.
But then I think, this would take forever. I have to change things that have been in place for years. I have to teach everyone how to use the new way. Am I just trading one nightmare for another? Dependencies aren’t updated at all anyways, so why put in effort on something never or rarely done? And does it really make it “easier” in the end? Or now I’m having to deal with centralized dependency package problems rather than how it’s now?
Or in the case of automation. I spend 20 hours + extra maintenance time to automate something that took 5 minutes. Then I teach everyone how to use it. Benefits are removing potential user error, reduce documented steps and speed up the task. But I just spent all this time automating it. Unless that automation runs 240+ times, did I really provide any value?
It’s like this for all the opportunities I find. Unless some standard was defined at the inception of the project or some high priority vulnerability / feature that cannot be done unless some opportunity becomes required, it always seems like it’s better to do nothing.
Antique-Stand-4920@reddit
I try to apply the "barbell" strategy as described in the book, "Antifragile." I first look for opportunities that help the team avoid disaster and then look for things that help team to thrive. Sometimes a solution can do both.
the300bros@reddit
If you aren’t an architect ask an architect for feedback on your idea. If you are an architect you do prioritization (lots of different names for it). I don’t think there’s a generic answer. It’s a process of discovery. And the more you know about the software the shorter the journey.
notmyxbltag@reddit
So I think your examples here are quite different. In case #1 you're basically talking about "is it worth it for me to do a half-baked migration or a really huge project which may take years to do a complete one". The case #2 is very discreet and likely something you can roughly math out.
In general though I really like the idea of the "iterative adjacent possible" (https://medium.com/@komorama/the-iterative-adjacent-possible-af3e7038357d). Basically the idea is that you anchor on one big idea and you find things that are impactful enough to justify the investment.
I think a major key here is looking at your product roadmap and what your team is complaining about. Is everyone always complaining about dependency management? Then start chipping away at it. Is it something that just irks you once a quarter? Probably let it lie. Have you had a bunch of incidents related to the user error you're automating away? Then go for it. If not, maybe find something more pressing.
When you're just starting out it can be helpful to cast your net really wide and then progressively hone in on where there's appetite to make real improvements. This can take time and it will be very non-linear, but I've found it gets there. eventually.
AccountExciting961@reddit
You're thinking about it the right way - you just need to go deeper and/or wider. Where "deeper" is asking questions like" what is the possible impact of those possible user errors" and "wider"is "do we have manual work that takes much more than 5 minutes"
JaneGoodallVS@reddit
You could add the ability to have managed dependencies without moving over existing dependencies. Maybe one lightly used one as a proof of concept. Then just strangler fig the unmanaged ones out.
Alternative-Wafer123@reddit
Do it if you have promotion opportunity.