[HN Gopher] Dieter Rams' design principles applied to software e...
___________________________________________________________________
Dieter Rams' design principles applied to software engineering
Author : zedr
Score : 146 points
Date : 2021-09-16 11:04 UTC (11 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| charlax wrote:
| Funny! I wrote the same article 6 years ago:
| https://www.dein.fr/2015-10-01-10-principles-for-good-code.h...
| scns wrote:
| > Companies that stay successful are the ones which don't fear
| to constantly disrupt themselves through technological
| innovation.
|
| Spot on, intel immediately comes to mind. Will playing it safe
| always lead to mediocrity though? Depends i guess, heard that a
| good poker player loses less often.
|
| (edit) Enjoyed reading the rest of the article too. In the
| environmental impact section i missed the idea of using more
| efficient languages though.
|
| Loved your article "Learnings from six months as a first-time
| engineering manager" too. I was instantly reminded of the
| documentary on Michael Schuhmacher on Netflix i watched
| yesterday. I couldn't care less about Formula 1, but still
| think that it is an amazing movie and great role model for good
| leadership. He was asked over radio after he won the
| championship: "How do you feel?" There are several seconds of
| silence. He answers: "Ross you are the best. You guys are all
| great. We did it." I thought: "Wow, he puts the others before
| himself. A great example of a good King after the theory of
| archetypes by C.G. Jung"
| mfer wrote:
| Companies that are successful are the ones that meet the
| needs or desires people have. Some of those change a little
| and some a lot. Some it's tweaks and others it's wholesale
| change. It's not about the technology, it's about the people
| DennisP wrote:
| Good poker players don't exactly play it safe. They play very
| cautiously most of the time, but very aggressively when the
| odds are in their favor. And sometimes they bluff on top of
| that.
| hyperpallium2 wrote:
| funfact: Andy Grove had a blurb on the cover of "The
| Innovator's Dilemma", that coined the term "disruption".
| dhosek wrote:
| There's a difference between disrupting yourself and not
| playing it safe.
| ksm1717 wrote:
| This changes the game for me. Well done.
| lbriner wrote:
| Prepares to be downvoted...
|
| Why are these supposed to be special? Everyone would agree with
| these in theory but the problem is not lack of these principles,
| the problem is how to actually use them in a fast moving business
| with imperfect tools, imperfect knowledge, imperfect employees
| and changing goals.
|
| If you looked at my systems, you might say I am not following the
| principles but I was and am, they just don't always work very
| well in real life.
| mannykannot wrote:
| > Everyone would agree with these in theory...
|
| Not me - when I read "Take a moment to step back and look at
| your code. It should look beautiful to you", my bullshit
| detector goes off full-tilt. The last person I want reviewing
| code is someone who wants to apply this principle (I don't so
| much care if they think this while writing code, if and only if
| it has no tangible downsides in what they produce.)
|
| This is compounded with the following sentences "Beauty often
| embodies many useful properties. Code that pleases the eye is
| often readable, idiomatic, and expressive", as if pursuit of
| this undefined beauty causes these outcomes.
|
| I am not sympathetic to arguments that this is true "in a
| sense", as this just adds subjectivity and circumlocution to an
| issue that should be, like good code itself, as straightforward
| and to-the-point as is possible while getting the job done.
| fouric wrote:
| A _lot_ of people don 't (really) seem to agree with number two
| here:
|
| > 2. Good software is useful
|
| The UNIX philosophy highly prioritizes simplicity (number 10 on
| this list), and there's always been a large group (and still
| is) of programmers that interpret this as "sacrifice
| functionality for the purposes of simplicity".
| [deleted]
| dangus wrote:
| I think what you might be getting at is that Dieter Rams is a
| great designer because he is a great designer.
|
| Almost everyone agrees with all or most his design rules. I can
| agree all day but that doesn't mean I can execute my designs
| anywhere near as well as he did during his career.
| huhtenberg wrote:
| Seems to be mixing up _software_ with _code_. >
| 3. Good software is aesthetic > > Take a
| moment to step back and look at your code. > It
| should look beautiful to you. > ...
|
| It's not that the code quality doesn't matter, but this is just
| apples to oranges.
| twodave wrote:
| I'd go even further and say code is pretty strictly a
| liability. If you don't hate your code enough to throw it away
| and replace it on a whim, then you've made it more important
| than it should be. Why else would we encourage things like
| loose coupling and building upon abstractions? That thing
| you're abstracting away is likely to be thrown away at some
| point and replaced with something different.
|
| I can understand feeling pride in your work and all that, but
| let's not pretend--the code I write today is probably best
| viewed through beer-goggles, not in a wedding dress :D
| atoav wrote:
| While I think the core of your idea is right, some could
| understand it the wrong way:
|
| > If you don't hate your code enough to throw it away and
| replace it on a whim, then you've made it more important than
| it should be.
|
| You shouldn't write code you _hate_ just to avoid attachment.
| What you should do instead is to develop the ability to (as
| product designers tend to say) "kill your darlings". You
| should love the code you create, but you should love the
| freedom even more that comes with being able to wipe it away
| with one stroke. Like sand drawings in a zen garden you
| should accept that nothing is ever final and don't let the
| things you created excert power over you.
|
| You can also be proud of what you created as well, not
| because the thing is the thing it is, but because you made it
| and you were happy with how it turned out under the
| circumstances of the moment, maybe you even learned some
| things. Circumstances and the whole world change (including
| you), so what you created might not be up to the task
| anymore, you might be able to create something even better,
| more reduces, more clear, etc.
|
| And you can feel all that while still happily throwing away
| your code. It is not a contradicition.
| humblepie wrote:
| If I follow this it would take me 9 months to build a signup
| form.
| atoav wrote:
| The real question is how long the next login form after that
| would take you. A day?
|
| Good design is not lost once you are done with it. The lessons
| learned when following through with such things stay and
| ultimately enable you to build more better things faster.
| polyterative wrote:
| This speaks to me, but it's hard in a corporate environment.
| I've been fortunate enough to have some kind of leverage on
| this and the payoff is huge even if not immediate.
| sdevonoes wrote:
| I wouldn't mind...
|
| But if I were the CEO/Manager/etc. I guess I would mind.
| catalyst7 wrote:
| Nicely put
| amelius wrote:
| There's one difference though. Unlike product designers, software
| engineers will never be in the spotlights. Not at Apple, anyway.
|
| E.g. tell me how many times you've read an article about Jony Ive
| versus about an important software engineer at Apple.
| robotresearcher wrote:
| The most recent SWE in the mainstream spotlight I can think of
| was Notch, the author of Minecraft. I don't know if the
| engineering is super-noteworthy, but it was good enough to make
| a very valuable product in a short time with few people.
| aaaaaaaaaaab wrote:
| John Carmack?
| GekkePrutser wrote:
| They did say "at Apple".
|
| But Carmack is from a generation where developers were often
| still working on something on their own.
|
| I do see a shift to a model where developers are viewed more
| as a commodity and less as artists. In a "just throw more
| developers at the problem" kind of way.
| p_l wrote:
| "Shift"?
|
| _It 's been around long enough that seminar works on
| management calling the practice out are disregarded by some
| as outdated just by age_
| amelius wrote:
| Everybody wants to commoditize their complement. This
| includes managers.
| pitched wrote:
| It feels like the trend right now is that developers are
| more expensive than managers. So if they're a commodity,
| it's the most precious kind. If the power dynamic keeps
| shifting that way though, I bet we'll see some more like
| artists and less like cogs in the machine. Maybe not so
| much artists and more like other professionals.
| amelius wrote:
| Unfortunately, having a unique ability is no guarantee
| for not being treated like dirt, history tells us. E.g.
| look at how women have been treated historically up to
| recently.
| scns wrote:
| At Apple? Maybe not. But elsewhere?
|
| Maybe no articles written about them but books or chapters
| ([0], [1]) written by them.
|
| In the spotlight? You betcha, i think watching talks by Brian
| Cantrill is highly entertaining. Rich Rickeys' talks are highly
| regarded on HN (making a mental note to watch them). Carmack
| talking at Quakecon for hours about many different things.
|
| (edit) formatting and links
|
| [0] https://www.amazon.com/Coders-Work-Reflections-Craft-
| Program...
|
| [1] https://www.amazon.com/Masterminds-Programming-
| Conversations...
| Uehreka wrote:
| > At Apple? Maybe not.
|
| Chris Lattner (inventor of LLVM and Swift) was pretty
| prominent when he was at Apple. He got stage time during at
| least one keynote and was well known in the macOS/iOS
| community. Not to mention that their engineering leads in
| general get to present their work every year to the devs who
| will be using it during the WWDC sessions.
| scns wrote:
| Glad to be proven wrong! Learned some iOS development years
| ago but are out of touch what is happening in the
| appleverse at large, no snark intended.
| dang wrote:
| This submission broke the rules for "Show HN" - this is reading
| material, not a project people can try out and play with. We've
| taken "Show HN" out of the title now.
|
| https://news.ycombinator.com/showhn.html
| wanderingmind wrote:
| Maybe I should add a few
|
| 1. _Good software is carefully balanced_
|
| a good software is created when the user requirements are
| carefully balanced against resource and time constraints.
|
| 2. _Good software is joyful to handle_
|
| A truly good software should invoke the child like playful and
| joyful instincts in the users.
| macando wrote:
| Amazing! I've just recommended Dieter Rams: As Little Design As
| Possible book on LinkedIn.
|
| Good design is needed everywhere. It's much more than adding a
| gradient to a Buy button.
| gfiorav wrote:
| Some of these apply better than others, but holy n4. That's the
| most necessary point of this post IMO.
|
| `Code isn't "clever" if no-one understands it.`
|
| It will make some code-bros mad though.
| ramshorst wrote:
| Cool !
|
| I always wonder what modern UI would look like guided by these
| principles... I am a full-stack product designer.
| scns wrote:
| How about accessible, consistent (minimal design changes),
| efficient and fun to use.
|
| The Linux Mint team did a blog post on changes in a new
| version. The tweaks on the design were really subtle,
| increasing contrast here and there to improve access- &
| readability. Back then i tought: "So what?"; now i think this
| is the correct way to do it.
| criddell wrote:
| My guess it would probably have to be native clients. It's hard
| to see how browser based clients can fit many of these
| principles better than a native client.
|
| The best would be a native executable with no required server
| component.
| secondcoming wrote:
| Controls with visible borders, maybe
| ChrisMarshallNY wrote:
| Love that!
|
| _> 8. Good software is thorough down to the last detail_
|
| That's my approach. It tends to earn me a bit of scorn, but I do
| it anyway.
| scns wrote:
| Well, the coin has two sides. People that have the same
| mindset, appreciate when someone strives for perfection and
| creates somethimg really good. But i learning to be fine with
| 97% was very valuable too i think. It can get problematic when
| stuff needs to be delivered fast though. Finding the right
| niche is key i guess.
|
| Most people seem to be content with good enough and that is
| fine too. Diversity makes it fun somehow, there would be way
| less to discover and learn if we were all alike.
|
| Maybe striving for greatness instead of perfection might be a
| way?
|
| P.S.: Bookmarked your stuff last time you commented about
| testing harnesses and stuff. Haven't done iOS work in years and
| may never need it. I treasure a work ethic like yours, keep it
| up.
| ChrisMarshallNY wrote:
| Thanks so much!
|
| It's a labor of love, and I feel that makes all the
| difference. I like to think of what I do as a "craft."
| scns wrote:
| You are more than welcome.
|
| That is a great mindset IMHO, it makes a huge difference
| when you pour love into your work.
| tgv wrote:
| "Perfect is the enemy of good", or something akin to that, is
| also good to keep in mind.
| GekkePrutser wrote:
| True but "good enough" under too tight deadlines is what
| leads to security vulnerabilities.
| ChrisMarshallNY wrote:
| Yup. Also, data-mining by non-tech staff. So many of these
| breaches, are because some marketing person took a dump of
| the data, and stored it on an open AWS instance, while they
| mined it.
| Y-bar wrote:
| Question. Are those people scorning you because you are
| thorough down to details, or because you are thorough down to
| details _at the cost of something else_?
| ChrisMarshallNY wrote:
| Mostly because they _assume_ that it 's at the cost of
| schedule.
|
| In my case, that turns out not to be the case. I work very
| quickly.
|
| I can develop a fairly "full-fat" iOS app, with a lot of
| functionality, in less than a week. I do it all the time,
| with test harnesses.
|
| But getting the app to what I consider "ship" shape, is
| another matter entirely, and can stretch the project to a
| couple of months (which is still not so bad, all things
| considered).
|
| One of the nice things about my approach, is that I can start
| using TestFlight (Apple's beta-test service for iOS) quite
| quickly. This allows non-tech stakeholders to start actually
| using the app, very early in the process.
|
| If I have an open-ended schedule (like I do, with the project
| I'm working on now), it's amazing, because we can refine the
| project, and work through a lot of the MVP stuff, without the
| public shame.
| tchalla wrote:
| > Mostly because they assume that it's at the cost of
| schedule.
|
| How can you change that assumption?
| ChrisMarshallNY wrote:
| The only way is the way that I've been forced to work, my
| entire life.
|
| I'm a high school dropout with a GED, and some rather
| spotty tech training.
|
| That means that I have had to fight, claw, and prove
| myself at every single step. No easy slopes for me.
| Double-black-diamond, the whole way. Very darwinian.
| Exhausting.
|
| Fortunately, I don't have to prove myself to anyone,
| anymore. I am working with a bunch of folks that have
| known me for years, and are quite aware that I'm "for
| real." I don't make a dime, and don't really care. I
| enjoy the work.
|
| Kind of a relief, really.
| tchalla wrote:
| Thanks for that context. I am still curious - How can you
| change what other people assume that you think is not
| correct?
| ChrisMarshallNY wrote:
| I guess I don't understand the question.
|
| I can't prevent other people from assuming anything.
|
| I have a portfolio, with complete, start-to-finish repos
| of many shipped projects. If no one wants to review it,
| then there's nothing I can do.
| neo_cs193p wrote:
| You sound like a good person to learn from. Do you have any
| video tutorials about your process (how you go about
| building complex applications in such a short time, what
| you prioritize, how you plan your work days etc.). I am
| also curious about the resources you used to build up your
| developer & project management skills.
| ChrisMarshallNY wrote:
| I've done training and whatnot for years. Last bit I did,
| semi-professionally, was a Core Bluetooth class for
| try!Swift World[0], [1]. Been quite a while, since I've
| done any classes.
|
| I also have a lot of writings and whatnot, on my personal
| site[2].
|
| Frankly, I spend most of my time writing production code,
| so I don't break off too often, to refresh my blog. I
| should actually do something, soon. It's been a while
| since I came up for air.
|
| [0] https://www.tryswift.co/world/
|
| [1] https://github.com/ChrisMarshallNY/ITCB-master
|
| [2] https://littlegreenviper.com/miscellany/
___________________________________________________________________
(page generated 2021-09-16 23:02 UTC)