Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.



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


"What problem are we trying to solve?" is a question I have to ask constantly in corporate development environments, and rarely does anyone presenting the task to be done actually know the answer!

It's very frustrating.


I try to remember to say something like this: "This is an interesting solution, but I'm not confident we have a shared understanding of the problem we're solving. I have a few guesses, but I don't want to bias the discussion, so please restate the problem without suggesting a solution. If it's too difficult to explain, I can suggest what problems I think you might be running into." I wish I always remembered to say that. :-)


Until you run into that most stubborn, "my problem is the absence of this solution" type of stakeholder...


Upper management material right there.


It can be the case that people don't want to accidentally mis-state the problem, or get into a debate about the problem because they know people will chime in about nonessentials. I would recommend "Have we written down the problem we are trying to solve? I'd like to understand more." And get it written down if it isn't already.


Trying to position the conversation as "we're on the same team, trying to figure the problem out together" also helps a lot of the intensity of these conversations melt away.


This is likely the start to a useful approach. I suspect the crux of the challenge is that engineers who need to write code get very pedantic in their questions and picking the answers apart (because we need to be! code leaves no room for ambiguity or intuition). And you can imagine how that feels from the other side. I imagine a lot of people feel like an engineer asking about the actual problem feels like getting goaded into some sort of pedantic debate. A natural response will be to try to dictate what to build (often micromanaging) and avoid the discussion about why at all costs. Writing offers a bit of a neutralizing buffer, at least.


> I imagine a lot of people feel like an engineer asking about the actual problem feels like getting goaded into some sort of pedantic debate.

Wow, that's describing it really well. I work for a guy who basically started a company by trying to vibe code his ideas into existence (late 2023 LLMs) and realized he would need actual developers to get anywhere.

It was excruciating trying to make him answer questions to get proper domain modelling going since LLM use had made him think of software as being wished into existence in a "declarative" way.

Not to mention the heavy contrast my persistent questioning had to a background of sycophantic yes-man claudespeak.


I was really wondering what these replies were talking about until this one - when I remembered a guy I used to work for that was just like this.

I think I have been pretty lucky the last 5-6 years of my career at least, where someone asking those questions is treated as trying to drive the team to a better result, rather than a pedant.


Reverse engineering the problem from someone's solution is the job. If you find it to be frustrating, you might be in the wrong profession.


I don’t know what job you think I have, but my job is to identify and implement solutions to problems, not figure what problems exist from someone else’s contrived answer to the problem.


That’s the job we all want to have, but it doesn’t exist. It’d be nice to say you are the lone outlier here but unless the previous comment was completely made up we know that’s not the case.


Your job doesn't have to be that way.

You can't always change your circumstances, but if you work to make little changes to improve your environment, the people that work with you probably will too.

My current team is like that - we all see the roadblocks that make our job harder, and we know we can't solve them all, but we talk about and work on making our own solutions to get around those things - like making a habit of asking those questions to better understand what's really desired by the stakeholder.


I has only been approximately 11 hours since your job was expressed to be quite different. I am glad that you recognized the source of your frustration and managed to turn your situation around — and so quickly at that! — but be aware that it is still early days. Temporary aberrations are common in the workplace.


I don't know what kind of things you are inferring from my comments, but they are quite clear and do not contradict eachother. I'll ask you to stick to the literal text of my words rather than guessing new meanings for them if you want to discuss them with me further!


No need to guess new meanings. The message was loud and clear:

'"What problem are we trying to solve?" is a question I have to ask constantly in corporate development environments, and rarely does anyone presenting the task to be done actually know the answer! It's very frustrating.'

We talked about that for a bit, and then, only hours later, we got:

"Your job doesn't have to be that way."

So, again, I am glad you realized you have the power to change your world and did so. But, again, know that there were only hours between your job being a complete frustrating mess and it ostensibly becoming a well functioning system so there is not yet any evidence of it being a long-lived change. People can modify their behaviour momentarily but old habits die hard.


I am not sure what is confusing you here, but just to be clear: I have been working as a developer for about 15 years. I have not worked for the same company that entire time.


The confusion is in the story changing each time. At one point you earlier asked us to take the literal text of the words, but in that text there is no literal mention of one company. It also literally asserts that you are currently frustrated ("It [is] very frustrating", not "It was very frustrating").

Now this seems to imply, to the best of my interpretation, that you only experienced that job at a single company some time in the past. Okay. But where did you think that was found in the earlier text? As far as I can see this is new information. And why are you still (at time of writing that comment, at least) frustrated by something that you are now suggesting, as best I can tell, was already no longer a part of your life and, given you finding significance in noting that you've done this for 15 years, likely hasn't been for a long time?


I’m not sure why you’ve taken so much offense and made so many aggressive replies to being told that you misunderstood something, but again - none of my comments are contradictory.

You have repeatedly confused yourself by assigning your own meanings to my words instead of asking for clarity where you didn’t understand.

I think that most people who read my comments understood that I am speaking broadly about my career, and that while I’ve encountered this problem at my current job, my team and I have worked to make it better.

Your primary issue comes from the fact that you asserted that my frustrations with corporate development are in fact the real job, and your seeming offense at being told that no, your negativity and hostility are not a universally shared experience.

I hope things get better for you in your career, but please stop harassing others for not succumbing to cynicism.


> You have repeatedly confused yourself by assigning your own meanings to my words

As instructed, the words were taken literally. Now that you are telling us that we actually needed to read between the lines to understand what you really meant is informative, but curiously late to make that known, especially in light of earlier instructions.

> and your seeming offense at being told that no, your negativity and hostility are not a universally shared experience.

Uh, what? That doesn't make any sense. If I were offended or felt negativity or hostility I would have turned off the computer and went outside. This is a completely voluntary time use. It had better be good. The fact that I am still here proves that there is no negative emotion felt whatsoever because the instant there is anything else I'm gone. Presumably the same holds for you because there is no rational explanation, assuming you are of sound mind, why you wouldn't have equally found something better to do if there was anything unpleasant experienced on your end.

I guess this is supposed to be another case where we cannot take what you have written literally?


I wouldn’t ask that if you want to keep your job.


I wouldn’t ask that if you want to keep your job.

You are correct. You ask that if you want to get promoted to a better job, because you understood the problem and likely saved the company money, time, effort or all three, rather than just pushing the buttons like a good code monkey.


That’s a very silly statement. I’ve been asking that question for over a decade and it’s the question that makes me a better developer.


Really?

I’ve asked that question all the time throughout my career. Lots of promotions. No firings or layoffs.

Why would you lose your job?


i consider a sign of maturity in myself that i always defer to adapting my software to fit how the user is trying to interact with it. the sign of immaturity is that my deference masks internally screaming, "why would you want that!? why would ANYONE want that!?"

my "customers always right" approach has produced much more successful and useful software compared to my perfect little hobby projects which will never be complete and noone would ever use anyway


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.


>> I think that over-reliance on analytics has had a similar effect

I lost track of how many times the directors would tell us, "Since the analytics say A, we should do B." then the research person says, "Sure Jim, great idea, lets get a few rounds of useability research and confirm it first."

Then the always predictable thing happens: Users never align with your analytics. Seeing data and seeing someone struggling to do something basic with your interface is totally different. When directors see these videos, it really makes them see how important research is and not just relying on data to make decisions. Right now, anything the research team wants, they usually get - its had that profound of an impact on our leadership team.


My problem is I can skip all those steps and 8 separate meetings by applying a little common sense to software design.

Unfortunately, orgs often treat devs like this as indulgent or wasting time. They need it to be done the inefficient way because that's the only way they have visibility and control.


Yes. And in most of those meetings where the researcher invalidated the leaders, the leaders have left the meeting saying (and thinking? I’m not sure) they were validated. So because of the leaders we have we should skip the meetings and research in both cases.


> Users never align with your analytics.

Any good theories for how this happens (i.e. why the data fails to capture the struggle)?


Interpreting data is hard.

Eg, if you have a bunch of airplanes returning from a war, you might be tempted to armor the areas where they were hit. But you want to armor planes where the holes arent because those are the critical areas.

If you can read literal bullet holes backwards, hundred dimensional preference vectors say something, but we generally have no clue.


Analytics don’t capture the “why” of what they measure, on the user side. Indicators may move in the seemingly right direction for the wrong reasons. Analytics typically can’t tell you what the user wanted to achieve. Knowing the “why” gives a better basis to decide on what changes to try, or to realize what’s actually wrong with the user-facing side of things. Another reason is that they tend to measure an average where in reality there is no average user.


Not GP, but I can humbly share mine.

I think it's because a lot of analytics are data points oriented instead of being workflow oriented. So you can see that feature A is not being used a lot, but it's very important in a particular flow. Feature B may be used a lot, but it can be only important for a particular class of users while very detrimental mentally for another class.

People use software for a needs, but rarely I've seen a need being highlighted when interpreting analytics data.


I think the answer to this is roughly ... the content of an applied statistics degree, or a research methodology practicum. There are so, so many ways that quantitative measurement of human phenomena can mislead, from measurement error to conflation between trends/sample sizes/effect sizes, to p-hacking, to good old bias (in interpretation or in deciding what tools to use to smooth or normalize data), and thousands more.


Simple example: feature X is rarely used (thus we should get rid of it)

Hold on, why is it rarely used?

Is it hard to use? Is it hard to find? Was it poorly named? Does it work right? Does it get me 80% of the way there? Does it get me 20% of the way there? Do I rarely need it but when I do need it it's a huge time saver? Am I hesitant to depend on it because I fear it will be taken away in a future update?


> Simple example: feature X is rarely used (thus we should get rid of it)

Oh man, I remember a very specific example of this: many years ago now, Google Chrome pushed an update that got rid of the option on the menu bar for "Close Tabs to the Right". I remember looking into the Google issue tracker where people were complaining, and some PM provided a "data-driven" justification: when people opened the context menu, they only clicked on the "Close Tabs to the Right" option 1-2% of the time.

It's a great example of why data without context can give you the wrong answer. Of course the option is used relatively very rarely; you only need to clear out your tabs every once in a while, compared to creating new ones or managing tab groups! But it's still an essential task. It's like saying filing your taxes isn't important because you only need to do it 0.2% days of the year.


I don't like that they have that data in the first place. But then again I don't use Chrome.


For what it's worth, I definitely don't organize my tabs in a way where "close to the right" would be helpful in cleaning them up.


I do all the time because the feature exists. I would treat it like a sliding line in my tabs bar. When I'm done with a tab for now it goes to the right, and eventually everything to the right gets closed once I haven't used it in a while


I do. I open a search page, middle click a bunch of links, then want to close all of the ones to the right because I found one that told me what I needed and don't need the rest of them.


Probably a perfect example of why it's so useful for developers to talk to users

Not only to understand the usage of features, but also use cases perhaps to design even better features


It's useful when starting a thread of research of research as new tabs will be opened to the right (Ctrl+Clicking a link). So after it's done, close to the right can be quite useful.


Conversely: Feature X is often used... Because to drive adoption someone made it mandatory for a certain workflow and it nags everyone else so they "engage" with it just enough to make it go away. (Looking at you, "AI" buttons...)


And following this, I'm sure we've all seen the pattern of manufacturing the data required to justify the removal of features. Bury feature → usage numbers tank → oh hey look nobody uses this any more, guess we can safely cut it!


> I think that over-reliance on analytics has had a similar effect;

The over reliance on analytics combine with a lack of metrics and proper accounting.

If you are renting all your infrastructure knowing how people use your app, and what the COSTS of that are is kind of a big deal. If your high dollar client is your lowest margin one, thats a problem that is technical and financial as well as a product insight.

And that infrastructure your renting, it stopped making sense for a lot of orgs to do that almost a decade ago, but here we are where everything is in the cloud because capacity planning is a lost art and was a great throttle on the insanity that the post is describing.


> 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.


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.


I find that if people don't dogfood their software the software just ends up being shit.

As engineers we need to be a little grumpy. Frustrating with our software provide directions to improve it. If we're not grumpy, we don't know what to fix.

But some of this also comes from top down. Engineers also need the freedom to fix things. They're the experts. Management Also shouldn't interpret that frustration in quality as the engineer being a thorn in their side. It means the engineer cares and is willing to remove the thorns in their side. But I think there's a strong natural tendency in any organization to surround yourself with yes men. They're sneaky, telling you no when you ask them to. Maybe a reason management loves LLMs so much


At very large $companyIUsedToWorkFor, the accessibility features got a lot better once we hired a blind developer. Once it went from "we have to pass this test" as our only feedback to "Bob did this because it confused his text-to-speech program when he was looking for another bug" we got such a great success flywheel going. Very quick feedback cycles really is required for successful software development.


Heh it can stil suck even when dogfooding.

At my friend's org, they like it to suck bc that reminds them they are doing the very sophisticated work of dogfooding. No one told them they're allowed/supposed to feel good making/using the sw...

"We want to feel the same pain the customer feels" is shortened to "we want to feel pain." Instead of "neither we nor the customer feel pain."


In my experience, this is the only kind of software that ends up not sucking. If development is not driven by users in a very intimate way -- like being one and the same person -- then you routinely end up with necessary features only half working or splitting essential information across multiple screens or dialogs. Eating your own dog food is essential to rising above that, because only that reality will overwhelm the developers sense of the "proper" way to do things.

I believe it's the major reason that industry specific information systems are universally shitty. The user can't articulate what they need to accomplish and the developer doesn't really understand the purpose or importance of the work. Result is bad functioning or bad interface.

It's why only software like text editors and web browsers gets to be really good. Huge user base. Lots of developers involved.

Git kinda proves that it's not infallible, though.


> It's why only software like text editors and web browsers gets to be really good. Huge user base. Lots of developers involved.

There's lots of great software out there that you interact with every day that was written by a small number of developers to clear requirements. Your car ABS brakes. Your coffee maker. Your brushless drill. Your TV remote. Think of the fact that majority of the microprocessors and microcontrollers that you interact with every day have software that you never think about, because it just works and gets out of the way. (And think of the cases -- maybe your dishwasher, your smoke detector, whatever -- where that's not the case! It really drives home how incredibly pleasant just-works-without-thought really is.) It's only these big, large team, overly complex systems where the expectations are so low that even the crap that is a current web browser is considered acceptable, let along "not sucking."


You're mistaking shitty software for software that doesn't work. Shitty software is 100% functional. You just hate it.

By intentionally picking the software that eliminates the UI, when the whole benefit of computers as a tool is that the UI is infinitely flexible, you're picking shitty software that doesn't appear that shitty. But it still is.

I mean, I hate the way my TV remote works and have wanted to change it. But I can't. It has buttons that open NetFlix or Apple TV that I can't change, and I don't have any ability to reprogram them because the companies paid for it to be a permanent advertisement I can't get rid of. That sucks.

But also, I think we only have to look far for what shitty appliance software looks like. VCRs and microwaves are notorious for having shitty software. As soon as we introduce a network, suddenly the software sucking is an immediate problem: witness the nightmare stories of Jeep updates, Tesla lockouts, and paywall feature locks when the hardware is present. Or we can look at the spying done by LG that you can't turn off. Or the forced advertising that Samsung showed they can do to your fridge.

Or how automobiles need an OBD reader even thought they ship with a built-in tablet. Or how the OBD codes are something you have to pay for. Or how you might not be able to disable the stupid "shut the car off" feature when you stop at a red light.

Shitty software on microcontrollers is some of the most tyrannical shitty software there is.


> when the whole benefit of computers as a tool is that the UI is infinitely flexible

I think this statement is insane. The benefit of computers is that they allow complex behaviors to be defined and implemented. The benefit of software is that it’s the lowest-NRE way of defining those complex behaviors. UI doesn’t come into it, except in a few edge cases like desktop computers, phones, appliances, etc. A climate model’s “benefit” comes from its output, not the form in which it generates output or takes input.


Okay, I don't really feel like your going for a good faith interpretation of the points I'm trying to make. You're taking things hyper literally and out of context. I don't feel like you're really trying to understand what I'm saying at all.


> It's why only software like [...] web browsers gets to be really good.

Huh? Web browsers are still laughably bad even after all these years. They are engineering marvels, certainly, but using them leaves a lot to be desired. I cannot imagine anyone would voluntarily use them if the ultimate function was equally available another way.


You mean installing the Reddit, X and Instagram apps on my phone? I use them in the browser because the browser is so terrible they don't spy on me as much.


That's absolutely splendid. In the user role, I get very irritated when programs do stupid things or interface elements don't do what they're supposed to do. Muttering to myself I'm asking a question: have the developers ever actually used this program? I'm convinced had they used it for real, there would be far less idiocy users have to deal with.

Your approach to developing software goes a long way to producing software that users appreciate. OTOH users may have no opinion about software sufficiently intuitive to use that it fails to bring attention to itself. Such transparency is an outcome developers should be proud to achieve.


This approach is really worth pointing out and recommending. Not everyone is allowed / encouraged to realize how powerful it is.


Dogfooding is useful certainly but it can also be a trap, as someone who is technical and knows how the software works both sides you can fall into the trap of avoiding triggering the exact kind of issues a regular user can walk into.

Your conceptual model of how things work is going to be different to that persons and it is a very hard trap not to fall into.


Indeed. Some of the worst software interfaces I've ever dealt with were fully "dogfooded" and that was the cause; the people writing the software did use it every day but (a) in a very idiosyncratic way and (b) in a specific, very constrained environment.

The devs did use the software, but used it in such a different way from everyone else that when the devs optimized for their own case, it made the software actively worse for everyone else.


Indeed, it's a lesson I learnt the hard way and is much like proofreading something you wrote, you don't see the errors as easily as someone else you asked to proofread it usually does (well until you hit Send then you usually see all of them instantly).


This is something I've asked repeatedly at my job. Current team builds services for other developers to use, okay, do we also use it so we can go th ough all the same pain points as them? Why not?!


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.


> The problem is it's often the devs themselves who request the siloing

I used to be this developer.

The more the development team complains, the more valuable the system is. If there is never any friction between the developers and customers, it's likely that everyone is on the same page and the meeting is largely redundant.


I just call them not great developers. The users pay your fat salary and you yourself are a user for everything else in the world and at all other times. It's not some icky burden to talk to them or let them talk to you, it's the job. If you don't like the job, then you don't like the job, and should not be doing the job.

I don't have a lot of patience or sympathy for this attitude even though it's practically universal. There might be a few legitimate cases where someone basically has a handicap where they are clinically incapable, but then that's a handicap like a broken leg. A defect. Maybe it's ok to make allowances for them in the name of equality but it's absolutely making allowances, and should not be a norm and should not be something just everyone gets to claim for their mere comfort and convenience. IMO anyway if I were king and all that.


Maybe, but check if there's another level to it: is it because their performance review is based on metrics for which meeting with customers is a hindrance?

If I'm graded on getting tickets done or getting some feature out, then meeting with users may be beneficial and the right thing to do but incentives turn it into swimming upstream...


I live in Finland, where in "product companies" developers don't always speak great English. Or they might not speak Finnish if they're immigrants. So the employer wants to pick and choose product managers that they think are "presentable" enough in terms of linguistic or social competence to put directly in front of a customer. They seem to value this high enough that they are willing to take the productivity hit from the indirection.


> The users pay your fat salary

In an idealized world, maybe, but enterprise software isn't paid for by its actual users, but by their company's executives/management.


Product manager skills do not overlap much with dev skills.

If I put some devs in front of a customer I'd be very much afraid of them doing what they ask rather than what they want, for instance, or overindexing on one particular customer's problem.

If the devs understand and can empathise with the users and there aren't a lot of them, sure, maybe but on most projects it's more effective to have the distilled and filtered customer feedback from a PM who is good at being a 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.


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;)


"What if I made X?" is basically Product Development Antipattern #1. Most feedback you get here is incredibly low signal. The stakeholder you're talking to isn't a technical person in all likelihood, so they probably aren't visualizing what you're describing in the same way you are. There is a high probability that they are telling you it sounds great as social lubricant or because they don't really understand what you are talking about and don't want to look dumb. Not to mention that positive response is the path of least resistance for most people -- the hard work of thinking critically about an idea so that you can locate potential flaws requires caring in the first place, and most people assume positive feedback is what you want to hear anyway.


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.


> Firefox

Nobody asked Mozilla for a redesign.


Oh boy, I do mostly agree with you but this applies well if you’re making software for the fellow SWEs. While a lot of them can be an annoying bunch, once you’re making something for general consumption, like let’s say running an e-commerce platform, interacting with your end users could be probably better compared to a front desk/service industry job. It’s very hard to keep that positive attitude then.



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.


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.


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.


The stakeholders should be held accountable to this. C level and PMs. Otherwise they just push what they believe will be better, no matter what developers say.


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.


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.


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.


> 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.


What would Project Managers do? Manage backlog. Set priorities. See that the one customer gripe from someone's eccentric old Uncle George does not re-architect the entire UI, no matter how fervently Uncle George believes in it. Do the same as the previous sentence, when "Uncle George" is in upper management.


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


> it’s best never to talk to users because they have no idea what good quality is

You should use some Microsoft, Google, Adobe and Apple products to have an idea what good quality _isn't_.




Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: