Live data from Hacker News

Getting things “done” in large tech companies

seangoedecke.com

131–140 of 228 posts

Re: Getting things “done” in large tech companies

#131
post #120

Earlier quoted context omitted.

Out of curiosity: Why didn't you continue being product manager?

Good question. Mostly politics, I guess? The CTO was about to be fired, so I had nobody to fight for me. The Chief of Product didn't like the optics of a non-PM being more successful than a PM in delivering work. (EDIT: As I said, I delivered from start-to-finish 3 projects that other teams had considered "impossible", mostly because of bad specifications and overengineering, often caused by PM miscommunication. The…

>The Chief of Product didn't like the optics of a non-PM being more successful than a PM in delivering work.

Its crabs all the way down: https://en.wikipedia.org/wiki/Crab_mentality

That is one big reason I want to remain an IC for my career. There's slightly less ego to deal with and usually more passion among people compared to management. That passion is pretty much the main thing keeping me in this career.

Re: Getting things “done” in large tech companies

#132
I hope this was more of a philosophical musing than career advice. I've not worked at every big company, but I have worked at a few. I agree that in the context of a big companies, "done" is a metric; and career success at that big company depends on moving the metrics those leaders track. But in my experience modern big companies also look at peer review and if you're always committing junk, those reviews are not going to be kind. So like everything, it's a balance. Please your boss by closing tickets. Please your peers by writing good code.

Re: Getting things “done” in large tech companies

#133
post #58

Earlier quoted context omitted.

How will you define a good PM? I have been looking for this definition for a while. In my startup experience, it seems to me the best PMs are the CTO and the early engineers who has near infinite business and user context.

Was a PM before I went off and started my own non-tech company. My definition of a good PM is someone who can champion both customers/users and developers concurrently, while sticking to the company's value prop and competitive edge. In some cases, it's boiling down the needs of the customer into something achievable before sales gets in the way with over-promising and under-delivering. In other cases, it's telling t…

Trying to make it more like a checklist:

* Do the developers know what the customers want?

* Do the customers have realistic expectations?

If yes to both, then the PM in between is doing a good job. Bonus points if higher management is aware of that.

Re: Getting things “done” in large tech companies

#134
post #58

Earlier quoted context omitted.

Good PMs are worth their weight in gold and actually make engineers' jobs easier. Bad PMs create a useless "translation" layer that doesn't help anyone (except, perhaps, themselves.)

How will you define a good PM? I have been looking for this definition for a while. In my startup experience, it seems to me the best PMs are the CTO and the early engineers who has near infinite business and user context.

> it seems to me the best PMs are the CTO and the early engineers who has near infinite business and user context.

That's basically the role of the PM: to have all the business and user context and to use that to harmonise vision between the various "stakeholders" (parts of the business, users/clients, etc). But one doesn't have to be the CTO or an early engineer to have this context/skillset.

Re: Getting things “done” in large tech companies

#135
post #118

Earlier quoted context omitted.

But that's kinda the beauty of it. If you get laid off from one of these places the next place doesn't know that you took 300k home to do jack, all they know is you worked for a super prestigious company for 10 years and you can plausibly make up the rest about what you actually did there.

This becomes quickly apparent in a smaller company or if you have a manager that knows what they are doing. You'll get hired, if you pass the technical interviews, but if you cannot contribute at the level they hired you, you'll be exited and that will be suspicious for your next application.

> This becomes quickly apparent in a smaller company or if you have a manager that knows what they are doing

Sounds like an unlikely problem and by then you can pull a reverse end run around your manager to their manager who doesn't know what they are doing and will believe anything the guy who worked at google says.

Most people here actually work for that guy.

Re: Getting things “done” in large tech companies

#136

Earlier quoted context omitted.

But that's kinda the beauty of it. If you get laid off from one of these places the next place doesn't know that you took 300k home to do jack, all they know is you worked for a super prestigious company for 10 years and you can plausibly make up the rest about what you actually did there.

> you can plausibly make up the rest about what you actually did there. I would never do this, and if you would do this I wouldn't want to work with you. Maybe I'm a sucker, but I sleep alright.

There is a very high probability that someone you work for did just this.

Re: Getting things “done” in large tech companies

#137
> … it means delivering the kind of things that are legible to the decision-makers at the company: i.e. visible to your manager, plus 1-3 skip levels, depending on your title. The easiest way to do this is to deliver things that they already know about, such as projects that they’ve asked you to do, or incidents that are serious enough that they’re involved in them. It’s possible to make other work legible to them as well. If your work produces or saves money, that will make it immediately legible, for instance (or you could just be really convincing). By default, work you do isn’t legible: to the decision-makers, it’s generic technical nonsense. They don’t know whether it’s crucial high-impact work or pointless code reshuffling, and will tend to assume the latter.

This person understands the “business” side of the tech business. I couldn’t agree more. Where many struggle is that they can’t communicate legibly about the indirect benefits their work has for the business. The classic “refactoring” (which he mentions) is a great example.

Refactoring code has a context dependent benefit to a business. When you’re searching for product/market fit is has essentially no benefit, and then you’re Microsoft and the code is deep within Windows and affects the performance of every Win32 app it can have extreme benefits. In the end it’s all about how you relate your work to either making or saving the organization money, and doing so indirectly can be legible if you take the time to figure out how to best communicate it to the target audience (and how it can be conveyed to customers).

Re: Getting things “done” in large tech companies

#138
post #91

Yesterday I pointed out to the founder of the company that I work for, in the context of tech debt: "Well, since we moved the goalposts on that project, now we're out of 'credit card' tech debt and now in 'Adjustable Rate Mortgage' tech debt. Our goal should be to get to 'Fixed Rate Mortgage' debt." The problem is that too much tech debt can hold back feature development, or even materially impact hosting costs. In o…

Yeah. I would phrase it like this: There is two things to avoid: "overengineering" and "underengineering". The first case has happened when it later turns out that the developer did put in too much work into a feature than was necessary in retrospect, in the second case that they did put in too little work. At the time of engineering it is usually not clear how much work would constitute over- or underengineering, as…

> But usually it makes sense to "err on the side of overengineering". Because (limited) overengineering merely means some development effort was wasted, while underengineering can easily mean years of painful tech debt that is an order of magnitude or two more expensive than the wasted effort from overengineering.

In our case there was a lot of overengineering by novices, so a lot of the tech debt involves unwinding overengineering to make a simple change. Some of the "credit card" debt was simply using too many 3rd party libraries.

> (It's similar to building a house. You usually want to make doubly sure you really do everything right or more than right, because if there are any flaws that turn up later, this often gets very expensive to rectify, sometimes so expensive that it isn't even worth fixing at all.)

My fish tank guy told me how he once went to install in a new home, and the general contractor put a structural beam every 3-4 inches under the fish tank. It make it impossible to put in the filters. (In contrast, I only have one structural beam in the middle of my 180 gallon, through-the-wall, tank.)

Re: Getting things “done” in large tech companies

#139
That’s all great but, how?

First, recognize that if you’re in the situation at the beginning of the article. A dev, banging out tasks that don’t quite move the needle or seem important towards actually achieving any milestones. It’s possible thats by design, your the random job site broom sweeper cleaning up at the end of the day (construction metaphor). It’s also likely your management/leadership is failing you. They’re failing by not prioritizing your work. You need to know what larger goals exist and are politically important to the organization and then what tasks you can do to accelerate that goal achievement. This is what your manager should be doing. If they’re not, and you just work on a random list or todos, start pushing them for prioritization in every 1 on 1 and every checkin or whatever touchpoint you have. Make sure you understand what other higher level goals the prioritized work supports so you know where to fill in gaps and can be proactive and mention when you think something is off track (eg “hey boss, I’m working on X but it seems somewhat redundant to Y, can we merge these as a cohesive solution?”)

Once you get this part down, you start learning the decision makers in the company (or the highest ones you have some access to) and you start getting their opinions on what projects are higher priority or more crucial to the business. If you can build rapport with a few of these people and make sure you’re contributions are known and appreciated towards things they find valuable and important, your career will start to progress fast(er) in almost every aspect.

When these people eventually leave for a new gig, you want to be the ones they try to poach. If they stay and get promoted, you want to be the ones they think of for their new initiatives.

Re: Getting things “done” in large tech companies

#140
post #137

> … it means delivering the kind of things that are legible to the decision-makers at the company: i.e. visible to your manager, plus 1-3 skip levels, depending on your title. The easiest way to do this is to deliver things that they already know about, such as projects that they’ve asked you to do, or incidents that are serious enough that they’re involved in them. It’s possible to make other work legible to them as…

I couldn't agree more. It really is important for developers careers to learn at least a bit of business speak, and try to learn how to frame problems in ways that business people understand and care about

At the end of the day, most decisions at a business come down to a cost versus benefit, assuming that the business is behaving more or less rationally

Most business people in my experience also view the software itself as an expense, not an asset. I find that software devs do not understand that. "What do you mean the software is a cost center. This whole business sells software, how can we make money without software?"

This isn't how many business types view it. The software doesn't matter to them at all. They would love if they could just sell nothing, so their costs would be zero and their profit margin would be infinite. That is the actual dream

It's not rational but you gotta understand that sales doesn't sell on rational, they sell on vibes, good relationships, bribes, whatever they can get away with.

Trying to be rational when selling puts you on too level of a playing field with other sellers, so they pursue other angles

Post reply on HN