News for hackers. Stuff that matters.
Re:“It’s done, there is no way back. We tried, we failed” by ChuckMcM on Wednesday August 12, 2015 @11:20AM (#10048182)
I like that term 'meta ignorance'. It is important to realize that ignorance isn't "bad" it can be fixed by learning, but its good to know that you have it so you can start fixing it.

The other aspect of this that I see, even in seasoned engineers, is the 'presumption of simplicity'. Some things look really simple, but inside they are actually quite complicated. A smart phone is just a screen, a computer, a battery and a radio right? Too many times people see something, think "that doesn't look too hard I bet I could do that in a weekend"[1] but don't actually follow through on that thought and spend a weekend building what ever it was that was so easy. Sometimes the more experience you have the more dangerous this is. I can recall times in my own life we're I've grossly underestimated the difficulty of stuff, its lead me to be a lot more conscious about things I know about and things I think I know something about, especially when predicting schedules and work effort.

[1] A very common theme on acquihire stories here.

Re:“It’s done, there is no way back. We tried, we failed” by jeremiep on Wednesday August 12, 2015 @12:32PM (#10048763)
I think you mix the meanings of simple and easy here. Simplicity is an absolute metric and describes the number of dependencies a thing has, while ease is a relative metric describing your understanding of said thing.

For example, a singleton is easy to learn and easy to use, but since every function using it adds a hidden dependency it quickly grows in complexity to the point its impossible to reason about it without forgetting something.

On the other hand, a Promise is simple as it depends on nothing but a producer and a consumer, no matter how much you compose them. Yet I've seen many experienced developers struggle to learn how to use them as they're not easy to understand at first.

This is somewhat related to meta ignorance. From my own experience I've seen a tendency in novice programmers to stick with things which are both easy to learn and use. Their projects go well initially but they grow less and less productive over time as complexity creeps in from the composition of all these easy to use things.

I've always said experience in our industry is knowing what not to use in order to stay productive in the long run.

Here's a link to Rich Hickey explaining it in depth: http://www.infoq.com/presentations/Simple-Made-Easy

Re:“It’s done, there is no way back. We tried, we failed” by vezzy-fnord on Wednesday August 12, 2015 @12:37PM (#10048802)
Speaking of meta, I absolutely loathe how the basic distinction between simplicity and ease of use has since become a meme so persistently associated with Rich Hickey. There is nothing I can really do about it, but it nonetheless annoys me to no end.
Re:“It’s done, there is no way back. We tried, we failed” by jeremiep on Wednesday August 12, 2015 @12:48PM (#10048877)
I myself learned it from Rich in the very talk I linked to a few years ago and I'm the first to admit I didn't make that distinction beforehand. I've met more developers unaware of the distinction than otherwise, which is why I'm curious as to why you think it has become a meme?

Also note that english isn't my first language (I'm french Canadian) and even here in french the distinction is seldom made.

Re:“It’s done, there is no way back. We tried, we failed” by vezzy-fnord on Wednesday August 12, 2015 @01:05PM (#10049013)
In colloquial English, no.

The distinction between two main types of simplicity, those of parsimony and elegance, has been a long-standing philosophical topic [1].

In engineering, the so-called KISS principle (first coined as such in the early 20th century) has always had the implication of minimalism and implementation simplicity, in contrast to mere ease of use.

Fred Brooks wrote a famous paper in 1986 [2] perfectly describing the differences between accidental and essential complexity, and of the semantics of complexity management in software projects.

Hickey has said absolutely nothing spectacular, but his name comes up every time from the typing fingers of the historically illiterate whenever simplicity and ease of use are brought up.

[1] http://plato.stanford.edu/entries/simplicity/

[2] http://www.cs.nott.ac.uk/~cah/G51ISS/Documents/NoSilverBulle...

Re:“It’s done, there is no way back. We tried, we failed” by dasil003 on Wednesday August 12, 2015 @05:50PM (#10050891)
"historically illiterate" are pretty strong words. Actually everyone is historically illiterate by these standards because the ideas that any one person is familiar with is a vanishingly small percentage of all the ideas the human race has ever had. Furthermore, the origins of ideas are impossible to trace with any great precision. Is the most famous person the person with the best ideas? Was the person with access to the printing press the person with the best ideas? Frankly it strikes me as a form of intellectual hipsterism to be bothered so much by this.

Rich Hickey gained fame for this because he stated an idea very clearly and compellingly, this is non-trivial and should not be so flippantly dismissed as just recyling old ideas—all your ideas are recycled too.

https://xkcd.com/1053/

Re:“It’s done, there is no way back. We tried, we failed” by jdc on Wednesday August 12, 2015 @06:19PM (#10051111)
Alan Kay has similarly criticized the computer software industry and its "pop culture."

https://queue.acm.org/detail.cfm?id=1039523

Re:“It’s done, there is no way back. We tried, we failed” by kinleyd on Thursday August 13, 2015 @07:32AM (#10053401)
"Rich Hickey gained fame for this because he stated an idea very clearly and compellingly, this is non-trivial and should not be so flippantly dismissed as just recyling old ideas."

+100 for this.

Re:“It’s done, there is no way back. We tried, we failed” by stdbrouw on Wednesday August 12, 2015 @03:05PM (#10049910)
I dunno, people use the same kind of argument to say that nobody's really done anything new in philosophy since Kant or even Aristotle. The KISS principle is not the same as a distinction between simplicity and ease. Accidental vs. essential complexity is orthogonal to simplicity vs. ease. And parsimony and elegance are both about simplicity rather than ease. Some people can be a little bit too historically literate for their own good.
Re:“It’s done, there is no way back. We tried, we failed” by jeremiep on Wednesday August 12, 2015 @01:29PM (#10049228)
Thanks for the precision, definitely puts it all into perspective!

I knew about KISS, but almost every time I hear someone mention it they think about ease not simplicity. I will also definitely check out Brooks' paper.

While I understand your position, I believe a lot of this has been lost to the new generations of engineers and what Rich did is remind them of it.

Re:“It’s done, there is no way back. We tried, we failed” by forgetsusername on Wednesday August 12, 2015 @11:38AM (#10048298)
>It is important to realize that ignorance isn't "bad" it can be fixed by learning

In the parlance of Mr. Rumsfeld, you can learn from the known unknowns, but often you don't even discover the unknown unknowns (the "meta-ignorance") until it's too late.

Re:“It’s done, there is no way back. We tried, we failed” by ChuckMcM on Wednesday August 12, 2015 @11:53AM (#10048409)
Except that Rumsfeld had a different problem, he had people who didn't want him to know what he didn't know, because it was a tactical advantage for them.

This, like most engineering tasks, is more straight forward. You have to know what its going to take to build each piece and assemble them into the final product. So if you are making a AAA indie game, it helps if you can talk with the project manager at a company that made AAA games and go through their list of deliverables, and then think about how you're going to deliver the same thing. Sometimes you'll be tempted to say "we won't need to do that" but like Chesterton's fence, you need to understand why they did that so that you can really say you won't need to do that thing.

It is always ok to start with "how hard could it be?" but that starting point requires you educate yourself on exactly how hard it could be. For game development I think pretty much all the questions are knowable (except for consumer reception of course)

Re:“It’s done, there is no way back. We tried, we failed” by perotinus on Wednesday August 12, 2015 @09:14PM (#10051791)
In case anyone else was wondering what Chesterton's fence is:

"Chesterton's fence is the principle that reforms should not be made until the reasoning behind the existing state of affairs is understood."

I learned something new (and useful) today. Thanks!

Source: https://en.m.wikipedia.org/wiki/Wikipedia:Chesterton%27s_fen...

Re:“It’s done, there is no way back. We tried, we failed” by rkangel on Wednesday August 12, 2015 @12:08PM (#10048542)
> I like that term 'meta ignorance'.

Yeah, it's descriptive. I think I re-purposed a term from an academic paper that referred to meta-stupidity: stupid people are too stupid to know that they're stupid.

They did an experiment where they got people taking an exam to guess what mark they were going to get. In general, the lower scoring people in the exam over-estimated their mark more than the smart people.

Re:“It’s done, there is no way back. We tried, we failed” by lexicalscope on Wednesday August 12, 2015 @12:20PM (#10048655)
Meta-stupidity actually has another term for it as well - the Dunning-Kruger effect - https://en.wikipedia.org/wiki/Dunning–Kruger_effect - people that are inexperienced in a topic don't know what they don't know (as you put it, meta-stupidity) and so think they're smarter than they actually are - people that are more knowledgable know how vast the topic is, so realize their knowledge is less compared to overall knowledge, even though they're better than average.

Part of why it's good to be cautious around self-proclaimed experts.

Re:“It’s done, there is no way back. We tried, we failed” by DigitalJack on Wednesday August 12, 2015 @01:38PM (#10049289)
The dunning kreuger effect is useless. Dumb people think they are smart, smart people think they are smart. Nothing to be gleaned from that. Only at the very fringe of the intelligent side do the lines of actual intelligence and perceived intelligence cross.
Re:“It’s done, there is no way back. We tried, we failed” by halotrope on Wednesday August 12, 2015 @03:25PM (#10050043)
Actually the tendency is, that the more you know the more aware you get of the things you don't know. So while dumb people may overestimate their aptitude the smarter people tend to underestimate themselves. The most extreme manifestation would probably be the impostor syndrome. https://en.wikipedia.org/wiki/Impostor_syndrome
Re:“It’s done, there is no way back. We tried, we failed” by jeremiep on Wednesday August 12, 2015 @10:41PM (#10051996)
What I take from Dunning-Kruger is that unskilled people have misconceptions about themselves, not being aware of what they don't know. Likewise, skilled people have misconceptions about others, assuming they know as much as they do.

Its very easy to forget all the efforts invested in learning a skill when you've been using that skill for many years. When it becomes second nature, you assume its also that way for others.

Re:“It’s done, there is no way back. We tried, we failed” by DigitalJack on Thursday August 13, 2015 @12:06AM (#10052203)
Maybe before down voting you should go look at the data from the dunning-kruger study.
Re:“It’s done, there is no way back. We tried, we failed” by hellodevnull on Thursday August 13, 2015 @09:32AM (#10053990)
I have and it's very insightful. The people in the studies that were least competent were also, relatively, the most delusional of their inadequacies. This principle explains why you get people with little coding experience applying to developer jobs and failing the simply FizzBuzz exercise.