> "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."
GUIs are built at least 2.5 times
11–20 of 155 posts
Re: GUIs are built at least 2.5 times
#12I 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.
Re: GUIs are built at least 2.5 times
#13Lean 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
#14Re: GUIs are built at least 2.5 times
#15Agree with the idea but does anyone else find the text really hard to read? Not sure if it's the font or writing style.
Re: GUIs are built at least 2.5 times
#16The 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.
Re: GUIs are built at least 2.5 times
#17 > 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
#18Re: GUIs are built at least 2.5 times
#19I 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…
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
#20I 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…
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)