OPP: Other People's Problems
elidedbranches.com
elidedbranches.com
I'm dealing with several issues right now in trying to "take ownership" of things that aren't mine.
With our EDI system, I only get called in when the "real" owners are too busy, but when I do, I find their entire architecture is a foot gun that makes development way harder and more error prone than it should be.
With our (customer facing) admin system, the entire thing has a UX that I think easily triples the work/time/number of clicks to do anything, and just begs for many routine things that bog users down to be automated.
The problem I do own, the mobile apps, is greatly hampered by the back-end that drives all of the other problems that I don't own, so all problems including mine could benefit greatly from working on that problem as well.
But when I talk to other engineers, they (a) don't see the problems being as impactful as I do, (b) don't believe that I can solve the problems in the first place, and (c) ultimately don't want to put any time or effort into learning about the problems or my proposed solutions, even though putting in a little effort now could save us from regularly having to stay late and fix fire drills like we do now.
I've even gone to the length of building prototypes to demonstrate both (a) and (b), and in some cases they relent somewhat on (a), but continue to talk as though solutions aren't possible... even as they're looking at a live, running prototype.
I'm at a point where I either need to let it all go and just "do my job" (even though I feel the quality of work I can do on my own stuff is being limited by OPP), OR mobilize the internal end users by showing them my prototypes and getting them on my side (to pressure the engineers) which somehow feels a bit sleazy, OR quit and find another job.
I'd go for it if I were in your shoes and had the energy.
* Who is my customer in this situation? It could be your boss, your boss's boss, an important stakeholder, end users, etc. Make sure you have clarity on your customer so you can focus on their problems first. If you have find you have multiple "important" customers, then prioritize the most important first. This is likely the person who has the most influence on your immediate success.
* Are any of the problems you identified "your" customer's problem? If so great, time to get to work. If not, consider reprioritizing. You should reach out to your customer and get their feedback on priority. Be careful not to lose sight of the big picture.
* How do I know the other engineers aren't right? If you work with smart people who know how to get things done, then you should take their feedback seriously. Maybe they're right and you're wrong. Always validate your assumptions.
* What would happen if I just solved the problem myself? If you can then do, seriously. Submit a PR with your solution or build a proof of concept. Default to taking action. Don't wait for someone else's approval to get shit done.
* How can I measure and bring transparency to these problems? You'd be surprised how powerful emails with data are. If you can measure the problem (e.g., MTTR, rate of failure, response time) and more importantly the impact on customers, then you may be able to indirectly "motivate" others to solve their own problems. Send regular updates to managers, Directors, VPs, Execs, anyone important who will listen.
* At what point should I just let this go? Time box your efforts and once that time period has been reached, just let it go. This very well could be a situation where the "problem" is not the top priority. You may have to let this one burn so you can focus on other things.
> Don't wait for someone else's approval to get shit done
This may be a great idea, but mishandled it can truly piss people off. See my other reply to this. Turn the diplomacy up to 11 if you plan to try it.
In a way, the working prototypes I've built (many of which could be production ready with little extra work) have been my "just get shit done" approach, both to prove my solutions to myself, AND to help make the argument to the rest of the team.
What's tough is that I'm not getting any hard no's on anything... after I build and show working prototypes of my ideas (many of which could be deployed to production with little extra work) I usually get a pat on the back followed by a "we'll discuss getting this out there when we have more time to learn it", and then it goes nowhere.
Next step would be deploying the stuff to production, but I have a good hunch I'd be the only one using the stuff, which wouldn't actually fix the problem from the customers' perspective if only half the system works as they'd expect (especially if new features continue to be written by the other engineers using old systems).
Ego might be part of this, though, so I think being extra diplomatic and trying to frame these ideas as "other people's ideas" might get me further.
Barring that, I might go straight to the customers (starting with our internal users and maybe broadening from there) to make sure my ideas are actually worthwhile to them.
If I can get a hard no from either my co-workers or the customers, I'd be more willing to either back off or find another place where I fit better. But as of right now, I see our customers asking for things we can't deliver, and I have a drive to fix it, but I don't think there's a way forward without my co-workers' and superiors' buy in.
Thanks for all the ideas!
> ...of things that aren't mine
Ive been in that situation some years ago and I learnt 2 thing,
1. I mishandled that situation due to arrogance (it finally sunk in that being right isn't enough!)
2. more importantly, against real entrenched positions, I can't fight a fight for which I have no formal authority, and against people who will actively sabotage me even at the cost of themselves (and they really did damage themselves to block me).
It sounds like you're doing a far better job than me in presenting your case, so well done there, but if people are just going to be dicks and you can't get their buy-in, AFAICS and IME you're going to lose. If you can make a case and the other engineers won't take it seriously, raise it up to their manager (and carefully, not in a way that I did which was to annoy my co-workers) whose job it actually is. If boss won't listen, you're stuffed. Swallow it or resign.
I'd suggest trying to find why your co-engineers don't see it as you do - you've given (a), (b) and (c), but it would be interesting to for you to get their side - if they're "regularly having to stay late and fix fire drills", well, the very first thing an engineer does it make life easy for themselves, so why is that not happening here?
The CTO is in a unique position where they have the power and I think responsibility to be looking at the "meta-problems". Have I done enough to enable others to fix these problems? As soon as you, as CTO, start getting into the muck to actually try to fix the problem you've gone too far or you haven't surrounded yourself with the right people.
Why throwaway for this comment?
In many environments, the tough part about resolving to pick your battles and leave problems to other people is maintaining the image of a responsible go-getter in order to protect your career. "Tending your own garden" translated to the language of your manager may be "limited vision", "not a team player", "does not display leadership qualities" and "not engaged". Regardless of whether or not you or anyone on your team actually has broad influence on anything, you have to act like you think you do to appear engaged.
These approaches both have strengths and vulnerabilities. The strength of the "tell it like it is" approach is that big problems can't fly under the radar, and ideas and criticisms are shared across organizational and disciplinary boundaries. Its vulnerability is that clever people can curry favor by harping on known problems outside their responsibility to fix. Sometimes if a problem is hard enough, the people fixing it don't look like they're doing anything, and it may appear that they don't even appreciate the problem, because they're likely to respond defensively to having the problem announced over and over again. A hard problem is a goose that lays golden eggs for a loud critic, who looks more and more "right" the more they harp on it, and the people who are actually working on a solution lose credibility, without which they can't devote resources to the solution. So a boss who favors the "tell it like it is" approach must be careful not to create an atmosphere where words count more than action.
The strength of the "if you're part of the solution" approach is that it encourages an enterprising spirit and rewards go-getters instead of talkers. Its vulnerability is that big problems may not get talked about at all. Someone might be the only person who sees a problem but assume everyone knows about it but aren't talking because they don't have a solution. Or someone might see a problem and not want to mention it because they don't want to invite pressure on themselves to solve it.
In other words, these approaches are both pathological if they become consistent enough to define the atmosphere in a company. Good leaders have to constantly rebalance them to fit the occasion.
OPP is also a forcing function for leadership. It forces true leaders to step up and make the hard choices.
If you're faced with OPP, here are a few things I found useful in my career.
## Do Important Work for Important People
The best way to be successful in any organization is to do important work for important people. Important work for unimportant people will get you no where. Same is true for unimportant work for important people.
Take a look at your OPP and ask yourself:
* Is this work for someone important?
* Is this work important to that person?
Both answers should be yes, otherwise it's just OPP.
## Let Fires Burn
Once you decide the work is OPP, then you need the courage to say no. You must let that fire continue to burn without it distracting you. Masters of Scale has a good episode on this topic [2]. Easier said than done of course. I found Stoic practices to be very helpful here [3].
## Customer Obsession & Ownership
OPP should always be evaluated through the lens of the customer. Bottom line, the customer is always the most important person and they trump all. True leaders are obsessed about providing a better customer experience and they're willing to pay the price in order to do so.
If you have OPP that's important work for someone important, but it's not important to the customer, then you may just have to let that one burn too. And once you make that call, you have to own it. Always take responsibility for the decision and defend it on the customer's behalf.
I've found Amazon's leadership principles to be invaluable when making these type of tough decisions [4]. It's no coincidence that Customer Obsession and Ownership are #1 and #2.
[1] http://amzn.to/2niWhO9 (Camille's link not mine)
[2] https://mastersofscale.com/selina-tobaccowala-let-fires-burn...
[3] https://www.amazon.com/Obstacle-Way-Timeless-Turning-Triumph...
> It forces true leaders to step up and make the hard choices.
reminded me of a discussion on the radio about the mess of a situation detroit car manufacturing had got into. Someone summarised, saying that the bosses spent decades making easy choices instead of the right choices.
The related song is by group 'Naughty by Nature'.