Live data from Hacker News

GUIs are built at least 2.5 times

patricia.no

11–20 of 155 posts

Re: GUIs are built at least 2.5 times

#11
Also related [1]:

> "This second is the most dangerous system a man ever designs. When he does his third and later ones, his prior experiences will confirm each other as to the general characteristics of such systems, and their differences will identify those parts of his experience that are particular and not generalizable."

[1] https://wiki.c2.com/?SecondSystemEffect

Re: GUIs are built at least 2.5 times

#12
post #10
post #2

I have only skimmed the text but regarding GUIs specifically the list in the end is spot on. With that being said, I firmly believe that all software (given that one is not already deeply familiar with the domain) is/can/should be written three times to end up with a good product: 1. Minimal prototype. You throw something together fast to see it can be done, taking shortcuts and leaving out features which you know yo…

Hard agree. (2) is all about building out the test suite; once you have this (3) becomes a cake walk. I've worked in a lot of places where end to end testing is performed manually by a SIT team who absolutely do not like to re-run a test once it's been passed. These people hate the idea of (3) and will overestimate the costs to the PM in order to avoid having to do it.

Time for a new team. Also sounds like your customers are the testers. In other words: fire the “team” (SIP)

Re: GUIs are built at least 2.5 times

#13
I agree the better analogy is that software itself is the factory. We should aim to create lean software (well factored into simple, reliable, modular components dealing with manageable chunks of data at a time).

Lean manufacturing doesn't really imply much about the day-to-day work of the factory designers and their interactions with their stakeholders, except to say that when bugs (or inefficiencies) happen a developer should fix them to get the "factory" moving again.

Which is a different story to "how do you design a greenfield factory?" and "how do you design the widgets produced by the factory that will entice consumers to buy them?" and many other important aspects. If we compare to Toyota, your software team is responsible for designing the cars, building a factory from scratch for said cars, running the factory and getting cars out the door, improving the cars based on consumer feedback, improving the factory based on bugs/inefficiencies/internal feedback, while making all of the above profitable. It's a whole range of responsibilities and tasks that need to be managed differently.

Re: GUIs are built at least 2.5 times

#16
post #9

The only metaphor I’ve come across that is relatable to non-software people is building a house(in particular Australia because we do it so badly). As mentioned humans are terrible at imagining things that don’t exist yet.

Any engineering surely works as an analogy - be it mechanical, electrical, chemical or anything else.

Re: GUIs are built at least 2.5 times

#17
This part is genius:

    > I have made GUIs many, many times and my best case scenario goes something like:

    > 1. A design has been made, everyone loves it. Detailed drawings have been made.
    > 2. The devs are told to Make It
    > 3. The devs Make It, exactly to spec
    > 4. Everyone looks at it and everyone hates it
    > 5. So many meetings. So much stress. This Is Terrible! What To Do?
    > 6. A new design is made. So much better! Detailed drawings are made.
    > 7. The devs are told to Make It
    > 8. The devs Make It, exactly to spec
    > 9. Everyone looks at it and They Do Not Love It
    > 10. So many meetings. So much stress. This Is Terrible! What To Do?
    > 11. Someone suggests in one of the many, many meetings what amount to basically minor changes, moving something, changing some colors, changing some text, something like that.
    > 12. The devs Make It, exactly to spec
    > 13. Nobody’s happy. But nobody hates it.
    > 14. The devs are pissed.
I have similar experience. I think the real issue with GUIs: You have technical people building something (mostly) for non-technical people. Imagine developing a GUI for an internal app that the purchasing or accounting department uses. Most of your internal customers are non-technical. They don't think like devs. Plus, many devs have awful communication skills, especially with non-technical users, so large gaps in expectations can emerge.

The best experience I have ever seen: Have the internal customer team hire a semi-technical fresh grad. They are the primary dog-fooder of the new app. Force them to do their job only using the new app (as much as possible). They give lots and lots and lots of immediate, direct feedback to the devs. You can slowly iterate to something reasonable. The secret that makes mid-level managers upset: Don't plan; allow it be built organically, especially if your audience is internal.

Another thing that I have noticed: Some people are just way, way, way better at designing and implementing GUIs. I have no idea how to filter for these people, but "you know it when you see it".

Re: GUIs are built at least 2.5 times

#18
This was very hard to read and I wasn't even sure what is the conclusion. One thing I didn't understand, how does one disagree with agile dev processes, which are mostly built on top of the fact that many things, especially UX, you can't know in advance, so you have to build something small, get feedback, then either scrap it or improve it. The process described here sounds exactly like someone spending weeks if not months designing the GUI, then devs spend weeks or months implementing it, without any cross-communication, so it's kind of obvious it needs to be fully re-done so many times. People started switching to agile dev specifically to shorten the feedback loop and scrap bad ideas faster.

Re: GUIs are built at least 2.5 times

#19
post #2

I have only skimmed the text but regarding GUIs specifically the list in the end is spot on. With that being said, I firmly believe that all software (given that one is not already deeply familiar with the domain) is/can/should be written three times to end up with a good product: 1. Minimal prototype. You throw something together fast to see it can be done, taking shortcuts and leaving out features which you know yo…

Personally, I’ve never found this lean methodology to work for me. I have a bit of a mantra that I’ve found works really well for me: “Put everything on the screen”.

Every feature every variant ever possible configuration and all future potential states. Don’t care about how it looks or how it feels just put it all there. Build out as much of it as possible, as fast as possible, knowing it will be thrown away.

Then, whittle away. Combine, drop, group, reorganize, hide, delete, add. About halfway through this step it becomes clear what I really should have been striving for the whole time—and invariably, it’s a mile away from what I started out to build.

One I have that, then I think step three stays about the same.

This isn’t really a critique of lean development, but after a decade of trying to do things leanly, I’ve just accepted that it’s not how my brain works

Re: GUIs are built at least 2.5 times

#20
post #2

I have only skimmed the text but regarding GUIs specifically the list in the end is spot on. With that being said, I firmly believe that all software (given that one is not already deeply familiar with the domain) is/can/should be written three times to end up with a good product: 1. Minimal prototype. You throw something together fast to see it can be done, taking shortcuts and leaving out features which you know yo…

from the PM perspective, it makes little sense to transform from 2 to 3.

Those devs had spent weeks/months for this app, now they want to throw it all away ?, that means throwing money through windows. Also, the risk that the new app may not work like before, or missing deadline, etc. A safe bet would be reiterating (2)

Post reply on HN