Live data from Hacker News

Dad and the ten commandments of egoless programming (2012)

blog.stephenwyattbush.com

51–60 of 110 posts

Re: Dad and the ten commandments of egoless programming (2012)

#51
post #33

Earlier quoted context omitted.

Thanks, I suppose I'll read it myself to get a better idea of the degree of interpretation involved. There's a comment on the Atwood article which makes a point similar to yours above and Atwood's reply is very odd: https://discourse.codinghorror.com/t/the-ten-commandments-of... He seems to think these are, in part at least, quotes. And it's not just the "guy in the room" bit - when the commenter points out the book…

Sorry I was not clear. He is quoting generic noun phrases, these are not quotes from the "Psychology of computer programming."

No no, I understood what you meant! It's just that Atwood seems to think they are quotes, at least in part - the lack of clarity is entirely on his end. In fact, just about everyone on the internet who's ever mentioned these, with or without attribution to Atwood seems to think they are Weinberg quotes or at a minimum that these 'principles' are enumerated in the book. It looks, on the surface at least, a fairly major and uncorrected widespread misunderstanding.

Re: Dad and the ten commandments of egoless programming (2012)

#52
post #2

This is a great list - thank you. I learned a long time ago to not use “you” or similar in code reviews, as it is too easy to associate a critique of code with a critique of the coder. Changing “You should change this” to “This should be changed” or even “We should change this” can make a world of difference.

Agree very much on this. Try to talk about the code, not the person writing the code. Talk about the code has errors, not that the programmer made an error writing the code.

This: Returning a string from this method is an error because ...

vs: You made an error by returning a string from this method because ...

The second one is more likely to make people defensive, IMHO.

Re: Dad and the ten commandments of egoless programming (2012)

#53
post #33

Earlier quoted context omitted.

Thanks, I suppose I'll read it myself to get a better idea of the degree of interpretation involved. There's a comment on the Atwood article which makes a point similar to yours above and Atwood's reply is very odd: https://discourse.codinghorror.com/t/the-ten-commandments-of... He seems to think these are, in part at least, quotes. And it's not just the "guy in the room" bit - when the commenter points out the book…

That's weird isn't it! In a quick search, I couldn't find any occurrence online of the phrase "Don't rewrite code without consultation", one of those commandments, earlier than Atwood's article. This[0] was the earliest other one I could find, from a few months after Atwood's, which says "What Weinberg wrote in that book was a set of guidelines for developers working in a team environment to keep their egos separate…

An earlier article from techrepublic written in 2001: https://www.techrepublic.com/article/egoless-programming-the...

This is the earliest google hit for "Ten Commandments for egoless programming".

Curiously, the author, Lamont Adams, does not explicitly state that the commandments are from the book. Maybe "I present The (Almost) Ten Commandments for egoless programming" means that it's a summary by Adams?

Re: Dad and the ten commandments of egoless programming (2012)

#54

Earlier quoted context omitted.

That's weird isn't it! In a quick search, I couldn't find any occurrence online of the phrase "Don't rewrite code without consultation", one of those commandments, earlier than Atwood's article. This[0] was the earliest other one I could find, from a few months after Atwood's, which says "What Weinberg wrote in that book was a set of guidelines for developers working in a team environment to keep their egos separate…

An earlier article from techrepublic written in 2001: https://www.techrepublic.com/article/egoless-programming-the... This is the earliest google hit for "Ten Commandments for egoless programming". Curiously, the author, Lamont Adams, does not explicitly state that the commandments are from the book. Maybe "I present The (Almost) Ten Commandments for egoless programming" means that it's a summary by Adams?

Oh thanks! Yeah, seems Adams may well be the originator.

p.s. I just wrote to him now asking about this! Maybe the truth will surface...

Re: Dad and the ten commandments of egoless programming (2012)

#55

For a contrast on Egoless Programming: https://dawnproject.com/ "THE DAWN PROJECT: Making Computers Safe for Humanity. We Demand Software that Never Fails and Can’t Be Hacked"

(EDIT: Oh, I whooshed myself pretty hard on this. "contrast on egoless", yes, absolutely >_> Dan leads The Dawn Project. He knows more about developing software that never fails and can’t be hacked than anyone else. He has designed, managed, or directly implemented all The Dawn Project technology and he makes all the decisions regarding technology development. The managers below Dan have been steeped in this technology for over 20 years. They know far more about software development than the people below them in the organization chart. And so on down to the lowest level. But even at that level, we have nothing but Special Forces class programmers.

I... I can't find anything that's not simply boosting Mr. O'Dowd. This is clearly a B2B marketing website, not a technical resource. More power to them, but there's nothing here for outsiders.

It's also kind of concerning that software like CompCert and seL4 isn't mentioned anywhere. Academic work in software verification is making steady progress; it feels really dirty to pose as the lone group that cares about this stuff.

I don't really disagree with the ethical or factual material; there's just nothing actionable.

Re: Dad and the ten commandments of egoless programming (2012)

#56
post #5

I agree with all of it. I find commandment 2 to be the most enlightening one. > You are not your code. Remember that the entire point of a review is to find problems, and problems will be found. Don’t take it personally when one is uncovered. In my career, I have had to deal with other senior developers who would throw tantrums whenever I pointed out something problematic about their code. Over the years, there's som…

I LOVE this frame of mind and I love this statement but it is usually only used in the negative alignment of expectations: don't take critique personally. No disagreement. But let's get pedantic: The umbrella "you are not your code" would dismiss improvement as well. And praise. Ok, so I am not my code. But if I don't learn from my mistakes my code will not improve. I... I... I... Anyway, I much prefer to reframe it…

> The umbrella "you are not your code" would dismiss improvement as well. And praise.

I don't see why you think this is the same thing.

Improvement in someone's coding skill is good from a business/colleague/project perspective. And from a "practice paid off" perspective. And positive feedback is always good to give, you certainly shouldn't only give negative feedback.

But you shouldn't get too attached to your code in either case. Today's good code is likely to be tomorrow's bad legacy code anyway. It shouldn't be an "intimate experience," programming for a company is an exercise in utility.

Re: Dad and the ten commandments of egoless programming (2012)

#57
post #5

I agree with all of it. I find commandment 2 to be the most enlightening one. > You are not your code. Remember that the entire point of a review is to find problems, and problems will be found. Don’t take it personally when one is uncovered. In my career, I have had to deal with other senior developers who would throw tantrums whenever I pointed out something problematic about their code. Over the years, there's som…

I LOVE this frame of mind and I love this statement but it is usually only used in the negative alignment of expectations: don't take critique personally. No disagreement. But let's get pedantic: The umbrella "you are not your code" would dismiss improvement as well. And praise. Ok, so I am not my code. But if I don't learn from my mistakes my code will not improve. I... I... I... Anyway, I much prefer to reframe it…

> Programming is a very intimate experience.

>The same as creating art. It is the manifestation of your thoughts and opinions, small and large, put out in to the world.

I respectfully disagree. This thought process is why other people are left holding the bag at 11pm on a Friday fixing the 'art' of someone else. Computer Science is a derivative of mathematics. Math is not art. Math IS beautiful, explicitly because it is NOT ambiguous or subject to interpretation. Math is right or wrong. It works or it is flawed.

Programming isn't art.

edit: forgot a >

Re: Dad and the ten commandments of egoless programming (2012)

#58
post #51

Earlier quoted context omitted.

Sorry I was not clear. He is quoting generic noun phrases, these are not quotes from the "Psychology of computer programming."

No no, I understood what you meant! It's just that Atwood seems to think they are quotes, at least in part - the lack of clarity is entirely on his end. In fact, just about everyone on the internet who's ever mentioned these, with or without attribution to Atwood seems to think they are Weinberg quotes or at a minimum that these 'principles' are enumerated in the book. It looks, on the surface at least, a fairly majo…

Atwood's OODA Loop article at https://blog.codinghorror.com/boyds-law-of-iteration/ is another example of a widely shared misunderstanding of an important insight. Here he copies an article by Roger Sessions that distorts several of Boyd's key insights. See also

https://smoothspan.com/2010/09/15/jeff-atwood-is-not-quite-g...

https://www.skmurphy.com/blog/2015/07/26/planning-and-reflec...

Your hypothesis that he copied the points from somewhere else is certainly plausible, much of the phrasing in his "10 commandments" does not match Weinberg's diction although Weinberg did use the phrase "egoless programming."

Re: Dad and the ten commandments of egoless programming (2012)

#59

Earlier quoted context omitted.

That's weird isn't it! In a quick search, I couldn't find any occurrence online of the phrase "Don't rewrite code without consultation", one of those commandments, earlier than Atwood's article. This[0] was the earliest other one I could find, from a few months after Atwood's, which says "What Weinberg wrote in that book was a set of guidelines for developers working in a team environment to keep their egos separate…

An earlier article from techrepublic written in 2001: https://www.techrepublic.com/article/egoless-programming-the... This is the earliest google hit for "Ten Commandments for egoless programming". Curiously, the author, Lamont Adams, does not explicitly state that the commandments are from the book. Maybe "I present The (Almost) Ten Commandments for egoless programming" means that it's a summary by Adams?

Oh nice, thanks for digging that up! For some reason I missed that one in trying to find earlier examples.

Re: Dad and the ten commandments of egoless programming (2012)

#60

Earlier quoted context omitted.

An earlier article from techrepublic written in 2001: https://www.techrepublic.com/article/egoless-programming-the... This is the earliest google hit for "Ten Commandments for egoless programming". Curiously, the author, Lamont Adams, does not explicitly state that the commandments are from the book. Maybe "I present The (Almost) Ten Commandments for egoless programming" means that it's a summary by Adams?

Oh thanks! Yeah, seems Adams may well be the originator. p.s. I just wrote to him now asking about this! Maybe the truth will surface...

Another person to ask, I suppose, is Atwood.
Post reply on HN