7 ms·
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 t
by stinos 6d ago
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.
- nyeah 6d agoThis approach is really worth pointing out and recommending. Not everyone is allowed / encouraged to realize how powerful it is.
- Sleaker 6d agoThis 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?!
- da_chicken 6d agoIn 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.
- win311fwg 6d ago> 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.
- mitxela 6d agoYou 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.
- deleted 5d ago[deleted]
- addaon 6d ago> 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."
- da_chicken 5d agoYou'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.
- godelski 6d agoI 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
- diydsp 6d agoHeh 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."
- mandevil 6d agoAt 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.
- noir_lord 6d agoDogfooding 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.
- variaga 6d agoIndeed. 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.
- noir_lord 6d agoIndeed, 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).
- jrapdx3 6d agoThat'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.