Remix.run Logo
jeffheard 3 hours ago

And most people problems are communication problems. Engineers aren't engaged with the product vision or the customer base, and are allowed to silo themselves. Product doesn't see the point of engineers being engaged and feed the engineering team like an in-house outsourcing shop. Sales and CS fail to understand the cost of their promises to individual customers to the timelines of features they're hungry for from the product plan. Goals and metrics for success fail to align. And thus everyone rows in their own direction.

The solution usually isn't "better people." It's engaging people on the same goals and making sure each of them knows how their part fits with the others. It's also recognizing when hard stuff is worth doing. Yeah you've got a module with 15 years of tech debt that you didn't create, and no-one on the team is confident in touching anymore. Unlike acne, it won't get better if you don't pick at it. Build out what that tech debt is costing the company and the risk it creates. Balance that against other goals, and find a plan that pays it down at the right time and the right speed.

codyb an hour ago | parent | next [-]

This is why I built out a Shadow Sessions program for our internal tooling teams at my BigCo.

The users are right there, go make friends. Learn what they're doing day to day. And how it fits into the larger picture.

These sessions are lightweight, and auto schedule every three weeks with no required action items and people come out of it amazed every time, lots of little bugs have been fixed, and connections are being made.

The culture of not engaging with the end users when they're so readily available is an odd one to me. And you can really get to say 80% of macro picture understanding and user experience design fundamentals with a fairly low lift.

To do this I created a sign up form and an auto scheduler that interacts with the Slack API. The scheduling and getting folk on board is the hardest part. Also finding time if you do things outside the product road map.

w10-1 17 minutes ago | parent | prev | next [-]

You might be ducking the hypothetical. It's not just communication.

> Unlike acne, it won't get better if you don't pick at it.

Actually, that's exactly what technical debt is: stuff that's better left alone for the moment. The problem is that those decisions pile up and bury you.

> Engineers aren't engaged with the product vision or the customer base,

> It's engaging people on the same goals and making sure each of them knows how their part fits with the others

You don't get 15 years of technical debt in organizations where it's possible for everyone to know everything. Your solution increases coordination costs, but that's exactly what blocks decisions on the merits, when people who know little or have little stake have the same say.

The solution is accountability, but I've never seen that introduced successfully on a large scale to a corrupted organization. Typically instead it starts in a small team, and that team grows to manage the entire stack; sometimes they start internally, but more commonly they come via merger or spin-out.

More generally, technical debt is a self-replicating attractive nuisance. Anyone can see and complain about it and use it as an excuse. Very few can fashion a solution, and those who do it without throwing out the system are rarer still. So the culture evolves to sustain it, selecting for people who know just enough to avoid it but not enough to fix it.

vjvjvjvjghv 37 minutes ago | parent | prev | next [-]

I think it’s because companies don’t incentivize people listening to each other. Management doesn’t listen to the underlings and the underlings have to compete to get noticed.

I have only a few people with whom I can discuss something in depth without anybody pushing an agenda. With most people it’s just about pushing through what you want to do.

I am just going through a bunch of sessions where a director has engaged consultants to change our stuff to use a new platform. Nobody who works on the system thinks it makes sense but it can’t be stopped because of the director and a few yes men. Nobody listens.

arcbyte an hour ago | parent | prev | next [-]

"Better people" solves a lot! But definitely not everything. But a lot!

_def 3 hours ago | parent | prev | next [-]

> Build out what that tech debt is costing the company and the risk it creates

How to do that? Genuine question.

SatvikBeri 3 hours ago | parent | next [-]

If it's been around for a while, look at the last year's worth of projects and estimate the total delay caused by the specific piece of tech debt. Go through old Jira tickets etc. and figure out which ones were affected.

You don't need to be anywhere close to exact, it's just helpful to know whether it costs more like 5 hours a year or 5 weeks a year. Then you can prioritize tech debt along with other projects.

theptip 3 hours ago | parent [-]

It takes guts to say “this 1 month feature would be done in a couple days by a competent competitor using modern technology and techniques”, and the legendary “I reimplemented it in <framework> over the weekend” is often not well received.

But - sometimes drastic measures and hurt feeling are needed to break out of a bad attractor. Just be sure you’re OK with leaving the company/org if your play does not succeed.

And know that as the OP describes, it’s a lot about politics. If you convince management that there is a problem, you have severely undermined your technical leadership. Game out how that could unfold! In a small company maybe you can be the new TL, but probably don’t try to unseat the founder/CTO. In a big company you are unlikely to overturn many layers above you of technical leadership.

nine_k 2 hours ago | parent [-]

> hurt feeling

This is why I incessantly preach to my coworkers: "you are not your job". Do not attach to it emotionally, it's not your child, it's a contraption to solve a puzzle. It should be easy and relieving to scrap it in favor of a better contraption, or of not having to solve the problem at all.

disgruntledphd2 an hour ago | parent | next [-]

More importantly, you are not your code.

This is actually harder for more senior/managerial folks, as often they'll build/buy/create something that's big for their level and now they're committed to this particular approach, which can end up being a real problem, particularly in smaller orgs.

Once upon a time, I worked for a lead who got really frustrated with our codebase and decided to re-write it (over the weekends). This person shipped a POC pretty quickly, and got management buy-in but then it turned out that it would take a lot more work to make it work with everything else.

We persevered, and moved over the code (while still hitting the product requirements) over a two year period. As we were finishing the last part, it became apparent that the problem that we now needed to solve was a different one, and all that work turned out to be pointless.

hobs 2 hours ago | parent | prev [-]

There's very few people whose brains work like this, it requires constant maintenance and people are ready to fall into the trap easily because they are held accountable for the outcomes, and its easy to pretend your ideas would have saved you from the certain disaster your fellows brought you to.

Just like every league of legends game, it's not possibly your fault!

orangebread 3 hours ago | parent | prev | next [-]

In my experience development has become too compartmentalized. This is why this game of telephone is so inefficient and frustrating just to implement basic features.

The rise of AI actually is also raising (from my observations) the engineer's role to be more of a product owner. I would highly suggest engineers learn basic UI/UX design principles and understand gherkin behavior scenarios as a way to outline or ideate features. It's not too hard to pick up if you've been a developer for awhile, but this is where we are headed.

hnthrow0287345 2 hours ago | parent | prev [-]

If there's a legit, measurable performance or data integrity problem, start with that. If most of your production bugs come from a specific module or service, document it.

If it is only technical debt that is hard to understand or maintain, but otherwise works, you're going to have a tougher time of building a case unless you build a second, better version and show the differences. But you could collect other opinions and present that.

Ultimately you have to convince them to spend the time (aka money) on it and do it without making things worse and that is easiest to do with metrics instead of opinions

atoav 2 hours ago | parent | prev [-]

And all communication problems involve one or more senders and one or more receiver. The issue is you only got to be in control of one side. And even flawless massaging won't save you from incapable or unwilling receivers.

As someone who has worked in IT support I have seen users habitually click away clearly formulated error dialogs that told them exactly what the cause of their problem was and how to address it. Only problem? They did not read it, as became clear when I asked them what it said.

I have had people who I repeatedly had to explain the the same thing, made sure they got it by having them do it twice and a week later they would come again with the same question like sheep, not even aware they asked that one before.

Some problems are communication problems. Others are actual people problems that could indeed be solved by getting better people. Anybody who says otherwise is invited to do first level support for a year.