logoalt Hacker News

bob1029today at 4:47 PM18 repliesview on HN

Software development untethered from the practical realities of the customer / user is what drives people insane.

When developers are required to interact with the customer on a regular basis, the freewheeling effects described in this article are damped massively.

The potential for insanity goes off the charts when the development team is siloed away in solitary confinement and the only interactions with the client occur via some prison guard known as "project manager" sliding notes under the door.

Working with the customer sometimes sucks. Just like exercise and eating vegetables sometimes suck. It's a temporary unhappiness that keeps us grounded in reality.


Replies

bombelatoday at 5:02 PM

Talking to the users, allowing them to show you what they are trying to do with your software, almost feels like cheating, because of how easy things suddenly appear to be when uncertainty fades away.

Obviously, the number of uniquely different users has an influence, and users most often do not truly know what they need, but that's our job to tease appart.

Turns out the users most often benefits from small changes that reduces friction toward achieving their goal. Any time saving will be appreciated, but only if it can be trusted to work. Nothing worse than the dread of knowing an action might or might not work randomly.

I use most software today with a constant sense of fear that the next action will break something and waste my time. Undo probably doesn't work properly anyways

show 2 replies
stinostoday at 6:59 PM

For 2 larger projects I'm on, I'm both the developer and a user: on a regular basis I use the software myself. And not just for one-off tests. I really use it the way other users use it.

This has provided rather deep and interesting insights in software development for these particular products and in general. Or in OP's lingo: not a lot of potential for insanity at all. Because any new idea immediately gets regarded on 2 fronts: what does it take to implement and what does it really do for the user.

show 6 replies
cosmic_cheesetoday at 4:56 PM

Absolutely. I think that over-reliance on analytics has had a similar effect; compared to relying primarily on proper usability research and in-person user studies, doing that creates a detachment and distance that further removes the project from reality.

How great the impact is depends on how management uses the data. If they use it add resolution to broad strokes from studies and the like, there may be no negative impact at all, but in my experience it's much, much more common for management to read analytics like tea leaves and interpret it in whatever way best fits the individual's/team's biases/agendas.

show 3 replies
sodapopcantoday at 5:20 PM

> Working with the customer sometimes sucks.

Sometimes it sucks, but often it's awesome. I love seeing people use what I built for them. It was also very enlightening doing prototyping and watching the customers use it. Often they would ask for something that they didn't realize they didn't actually want until they used it. Working directly with them saved potentially months of building out features that would never be used.

jghntoday at 5:15 PM

The problem is it's often the devs themselves who request the siloing. I used to assume otherwise, as I think the way you do. And then I had a lot of my devs rebelling because I was keeping them from their "real work" by having them deal with users.

show 3 replies
mediamantoday at 4:50 PM

Agreed. I find it really fun to work with customers. It keeps you focused on real problems. And there are so many problems in 'boring' industries that need solving. Just a ridiculous number. There's so much bad software out there, or things being done manually, still now so many decades into the industry.

But you have to be willing to break out of the bubble, including getting on a plane, and I see very few people being willing to do that.

strangattractortoday at 6:02 PM

Sometimes I would ask stakeholders about some idea or nifty feature we were considering implementing. The answer was usually positive and enthusiastic. I'd then ask if they would use it and how it would help them. Silence....

Being untethered from reality is the natural state of humans;)

show 1 reply
PaulHouletoday at 6:44 PM

A similar disease comes out of an industry being overly concentrated in a single geography. For instance Firefox could keep failing and losing market share for decades because Google knows politicians will be stupid enough to believe that Firefox with a 0.01% market share will mean Chrome is not a monopoly. The one thing that could possible reverse that market share decline would be having some empathy for people outside the Bay Area but that won't happen... but it doesn't matter.

beyonddreamtoday at 8:32 PM

When the user is understood as yet another human who doesn’t know what they want, the insanity returns! Because an average customer usually doesn’t have practically grounded wants.

seki285today at 7:26 PM

Not sure on this, a lot of time I know better but the customer insists we do it their way and it's usually because they are lazy to improve on their end.

martijnvdstoday at 5:04 PM

I think this goes both ways.

More actual interaction between end-users and programmers makes the end-users better at reporting bugs and describing what they want (and at having an idea how complex a certain request actually is).

Because the multiple translations from customer wish to project manager language to backlog items are all lossy.

Twirrimtoday at 9:12 PM

I've had more than one half-serious conversation with SVPs here that every staff/architect level engineer should have to spend at least 6 months working on the engineering team that directly interacts with the largest customers.

I flat out guarantee they'll come away with a wildly different perspective of the things that need done, and the ways their service operates.

Ideally I'd want them to do a rotation in customer support so they get the small customer perspective too, and at least learn what kind of paper cuts they're inflicting on customers.

jrm4today at 6:43 PM

Sure. Now, how to deal with the entirely plausible situation where there needs not be any separation between the developer and the customer at all, thanks to AI.

j45today at 5:16 PM

Beautifully articulated.

Software that is not about the user and more about the developers or the providers struggles with alignment and optimizing for the outcomes of the user instead of their own.

mschuster91today at 4:51 PM

> The potential for insanity goes off the charts when the development team is siloed away in solitary confinement and the only interactions with the client occur via some prison guard known as "project manager" sliding notes under the door.

But... but what would Project Managers do, then?

Anyway the key thing for any software developer AND Project Managers to do is regularly work first level helpdesk.

show 1 reply
lezojedatoday at 5:48 PM

[dead]

surcap526today at 9:05 PM

[dead]

icantevenholdtoday at 5:21 PM

I disagree - it’s best never to talk to users because they have no idea what good quality is and will constantly push you to implement stupid features that only they uniquely need because of their fucked up business practices.

Or weaken your security so it works with their fucked up legacy firewall that cant ever be changed and so on.

Talking to users -> not even once.

Might be only this bad in B2B software