There's some, er, discussion as to the best way to follow XP here at work. While everyone acknowledges that we don't follow XP terribly well, there's considerable disagreement as to what XP actually is. Further, much of the disagreement seems to stem from people repeating anecdotes about XP rather than learning for themselves. Today's anecdote was "XP says you're not supposed to think about the future."
I replied "no, XP doesn't say that. It says that you should not add unrequested features in anticipation of future changes."
What's your take on this and what other XP myths do you have to deal with?
Re:The future
chromatic on 2003-10-29T00:01:39
There's also an open source myth in there somewhere. (I should be writing that article, not eating a candy bar and reading use Perl;.)
There was a discussion on Perl Monks today about access checking. The poster just needed to check if a given user name is in the list of admins. That's pretty simple: just a hash look up.
While I normally use exists to avoid autovivification issues, one poster claimed that that was bad design. "What if you add administrative levels in the future and one of those levels is zero? You'll have to change all of that code. You should just check the truth of the operation." (In my less charitable moods, I practice witty rejoinders such as "What if Martians invade and their character set doesn't even fit within UTF-32?" I'm not sure what UTF-32 is, but it sounds particularly nasty, even for Unicode.)
I instead favor encapsulating that check in one place, behind a sensible function name, where it can be changed if it ever needs to be changed. Give me good encapsulation, suitable abstraction, and well-factored code in favor of a "framework" any day!
Re:The future
jordan on 2003-10-29T00:55:52
- There's also an open source myth in there somewhere. (I should be writing that article, not eating a candy bar and reading use Perl;.)
I wish you would just write the article, rather than continuing to cast aspersions in the direction of open source. It's hard to address a lot of vague notions.
Whatever you write, I doubt that there's any problem in open source that I can't find in closed source, as well. Prima Donna developers? I've seen many working on Closed Source projects. Bad code? Believe me, some of the worst imaginable is in Closed Source projects. Lack of documentation? I've seen huge complex systems with literally NO documentation whatsoever.
The difference, of course, is all of open source's flaws, the bad code and the development models, including the stupid design deliberations and all the BAD decisions are out the to be criticized. Not so with closed source.
Please, try to avoid the strawmen though. Almost nobody believes that open source always immediately results in less bugs, faster development, more flexible systems, blah blah blah. But, there are a lot of developments in Open Source of which people can rightfully be proud.
Go ahead though, criticize away, if you get your kicks that way. As Edward DeBono says in De Bono's Thinking Course , page 5:
...The critical use of intelligence is always more immediately satisfying than the constructive use. To prove someone else wrong gives you instant achievement and superiority. To agree makes you seem superfluous and sycophant.
Avoiding strawmen
Allison on 2003-10-29T02:13:21
You're barking up the wrong tree. He's not putting down open source developement, but (like many of us in the open source community) he is interested in how we can improve.Re:Avoiding strawmen
jordan on 2003-10-29T02:39:40
I know who Chromatic is and I recognize his Open Source credentials.
I guess I overreacted to the teaser, where he said:
I've decided to write a new article entitled Lies Open Source Developers Tell Ourselves. Here's a brief list of untruthy topics: feature freezes, competing projects, popularity, packaging, documentation, frameworks, rewrites, and code quality.
Which seems to paint Open Source Developers, as a group, as being delusional with regard to a number of important issues.
While there may be some point to be made here, I don't really know since I've not seen the article, it's been my experience that Closed Source Developers are also less than truthful with themselves about many of these same topics. In certain of these areas, Open Source Developers have nothing to be ashamed of when compared to Closed Source Developers, as a community.
As I said, perhaps I'm being too sensitive and overreacting. I should wait for the article.
It does seem that Chromatic is the one with a chip on his shoulder about Open Source Developers, inserting a jab at "open source myths" in a place that seems inappropriate to me. I don't see how this discussion has anything to do with "open source myths".
Re:Avoiding strawmen
chromatic on 2003-10-29T03:56:50
Andy's comments about frameworks precipitated my comment.
I now believe very strongly that trying to build a framework is almost always a mistake. Compare successful frameworks and toolkits (GTK, APR) to unsuccessful ones (Mozilla's GRE, Worldforge, lots of things coming out of the JCP or even the W3C these days). The successful ones all grew out of existing successful projects and were generalized to work with other projects. The unsuccessful ones were designed as frameworks and haven't really met the need for anything. (While I'm a big fan of the Mozilla browser, ask the mozdev folks about their experiences trying to build anything on XPCOM or XUL and keeping it up to date. Similarly, XML Schema tries to solve every problem you might ever have, except for the fact that strong static typing in hierarchical text s at least as bad as the alternative.)
Yes, the article is intended to be a polemic. I'm not doing this just to stir up controversy, though. I really believe what I write. I'm doing it because I think we should start doing smarter things, or, at least, stop doing some dumb things. That includes myself.
You don't have to wait for the article to criticize my postings, but I'm very much not interested in arguing against open development. Nor will I discuss closed development — I find it awfully handwavey to make vague pronouncements about proprietary software when I can't watch most of it being developed.
I can, however, watch lots of open source projects (including those in which I participate) for good things and bad things. That's what I will discuss.
I have no intent of insulting the intelligence of anyone who holds these ideas. I could very well be wrong and may change my views tomorrow. Time will tell how well that works.
Re:Avoiding strawmen
Adrian on 2003-10-29T14:52:18
I agree so much with the framework comments. Successful ones evolve.
Getting out of the framework-writing mindset and letting structure fall out from refactoring duplicate code has made my life so much easier (and improved the code a fair bit too:-) Re:Avoiding strawmen
jordan on 2003-10-29T15:23:18
- Andy's comments about frameworks precipitated my comment.
I now believe very strongly that trying to build a framework is almost always a mistake.
I guess I will have to wait for the article as I'm confused now. Andy (an Open Source Developer(TM)) explicitly
eschewed building frameworks when he said:
but nor do you need a plug-in framework based on future conjecture.
So, will your polemic include exploding the myth that Open Soure Developers tend to become involved too heavily in building frameworks? Otherwise, I don't see how you could respond to Andy's post with " There's also an open source myth in there somewhere."
- You don't have to wait for the article to criticize my postings, but I'm very much not interested in arguing against open development. Nor will I discuss closed development — I find it awfully handwavey to make vague pronouncements about proprietary software when I can't watch most of it being developed.
I think you should be careful with making statements only about Open Source Developers that may equally apply to Closed Source Developers. Just as George Orwell pointed out that there is a danger with open societies unwittingly supporting despots when he said:
"Since pacifists have more freedom of action in countries where traces of democracy survive, pacifism can act more effectively against democracy than for it. Objectively, the pacifist is pro-Nazi."
We should be careful not to give evidence that only supports those who wish to slam Open Source development.
Since we have no window into closed source methods or product, except for the apparent lack of security and quality in a lot of it, broad criticisms of Open Source Developers, as a group, could be inherently unbalanced and give ammunition to the enemies of Open Source.
SCO has been recently guilty of taking out of context things that are being said by people in the Open Source Community, for example.
Oh oh! I Godwin's Law has been invoked above. Did I just lose?
Re:Avoiding strawmen
chromatic on 2003-10-29T18:02:44
While I can't prevent a few people from misunderstanding my arguments entirely nor others from taking my words out of context to support arguments I'd never make, you do raise valid points I hadn't considered. I'll keep them in mind. Thank you.
Re:Avoiding strawmen
jdavidb on 2003-10-29T20:34:36
So, will your polemic include exploding the myth that Open Soure Developers tend to become involved too heavily in building frameworks? Otherwise, I don't see how you could respond to Andy's post with " There's also an open source myth in there somewhere."
The original journal entry was about XP myths. The poster didn't mean there was anything wrong with XP; he just meant that there are some often misunderstood things about it. In the same way, the assertion that there are open source myths doesn't mean that's something wrong with open source; just a set of misunderstandings that need to be corrected.
Re:Avoiding strawmen
jordan on 2003-10-29T21:18:32
- The original journal entry was about XP myths. The poster didn't mean there was anything wrong with XP; he just meant that there are some often misunderstood things about it. In the same way, the assertion that there are open source myths doesn't mean that's something wrong with open source; just a set of misunderstandings that need to be corrected.
I'm sorry, but an article that accuses Open Source Deveopers, as a class, as lying to themselves and listing a number of topics that they are less than truthful about is not positive toward Open Source Developers. Maybe you can separate Open Source from the Developers who do it, but I find that difficult to do.
As I've said elsewhere, I agree that Developers are less than honest about a lot of topics, including the ones chromatic has mentioned, but I don't think Open Source Developers need to be singled out for this.
Also as I've said elsewhere, I should wait for the article before really passing judgement.
But, look at the context of this discussion. First, chromatic proposes an article titled "Lies Open Source Developers Tell Ourselves" which promises to address a lot of untruthy topics, including frameworks.
Then, chromatic responds to Andy's posting where he mentions frameworks saying "there's an Open Source myth in there somewhere".
Since frameworks is one of the "untruthy" topics, and Andy is one of those Open Source Developers That Lies To Themselves, it sure looks like chromatic is pointing at a myth that Andy is promulgating.
This is mind boggling, to me, seeing as chromatic goes on to post his take on frameworks that seems to be completely in line with what Andy just stated.
I dunno. As I said, maybe the myth that's being addressed is that Open Source Developers involve themselves in frameworks overmuch and that they like to themselves about doing it. That would seem to be the consistent reading of what chromatic has said, but from context, I don't think it is.
Re:Avoiding strawmen
chromatic on 2003-10-29T22:10:43
As I said, maybe the myth that's being addressed is that Open Source Developers involve themselves in frameworks overmuch and that they like to themselves about doing it.Yes, that's exactly it. We like to build frameworks for the sake of building frameworks. I think that doesn't work as often as we seem to believe it does, given how often we do it. Andy and I (and probably Ovid) have seen the same thing trip up XP shops, too. It's not limited to the open source community.
Oh, and I think the most important word of the title (as for the implications it has on the tone) is "ourselves".
Re:Avoiding strawmen
jdavidb on 2003-10-30T19:46:35
Apparently you see something radically different in that title from what I see. When I see "open source developers," I don't see someone singling out open source developers; I see someone ignoring proprietary development because he and his audience could care less if they do well or not. The article title, to me, is obviously about improving the quality of open source development, not denigrating it.
Re:Avoiding strawmen
jordan on 2003-12-12T22:09:18
- Also as I've said elsewhere, I should wait for the article before really passing judgement.
Like Alannis Morisette's song Irony says "It's the good advice that you just didn't take".
As I kept telling myself... I should have waited to pass judgement. The article is out and it's GREAT!
I'm sorry that I passed judgement based on my preconceptions.
It's full of really good observations, mostly stuff that really relates primarily to Open Source development, so my fear of Open Source developers being singled out for things that Closed Source developers are also guilty of was unfounded.
I still think it's a little odd that chromatic brought up the issue of Frameworks, apparently with reference to the issue that Building Frameworks being better than Writing Programs as being a lie that Open Source developers tell themselves, when Andy was pretty much in agreement with chromatic's stand on Frameworks. Seems like Andy pretty much disproved a Universal Generalization about Open Source developers that chromatic was apparently trying to posit. I guess Andy is the exception that proves the rule?
Anyway, I think the article is great. I hope that this discussion actually helped, maybe it didn't. I'd like to think that the discussion helped move the topic from "Lies Open Source..." to "Myths Open Source...", which is an improvement, I think, but I'm probably giving myself too much credit.
I wonder if anyone will even notice this buried away in this old discussion. Ha! Just as well. I'm not the humble sort who enjoys apologizing in public. This allows me to do the apologizing, but not get caught!
If Jordan apologizes in a old thread that nobody reads, did he apologize at all?
Re:Avoiding strawmen
Ovid on 2003-12-12T22:28:29
Like Alannis Morisette's song Irony says "It's the good advice that you just didn't take".What's ironic about that song is that Ms. Morisette clearly didn't understand irony. Virtually none of the situations she discusses are ironic.
And yes, you apologized and I was hear to witness it. Kudos
:) Re:Avoiding strawmen
jordan on 2003-12-13T16:32:47
Actually, I don't really agree that the song doesn't express irony. It expresses what's known as dramatic irony.
Also, the "good advice that you just didn't take" is ironic in the rhetorical sense. It's an ironic twist on the meaning of "good advice".
Lastly, even if you don't think there's any "real" irony in the song, there's the ultimate irony, that you pointed out, that it's about irony but it's not.
Re:Avoiding strawmen
jdavidb on 2003-10-29T20:31:49
Which seems to paint Open Source Developers, as a group, as being delusional with regard to a number of important issues.
You misunderstood. The point of the article is to encourage improvements in these areas, not to disparage open source development or compare it unfavorably to closed source development.
Programmers tell a lot of lies. Fred Brooks told us before I was born (and maybe you, too) that that's because we're eternal optimists.
:) Re:Avoiding strawmen
jordan on 2003-10-29T21:03:43
- The point of the article is to encourage improvements in these areas, not to disparage open source development or compare it unfavorably to closed source development.
I agree that developers tell a lot of lies, to themselves and others, but an article titled "Lies Open Source Developers Tell Themselves" certainly seems to imply that this is a problem among Open Source Developers as distinct from any other type.
Certainly an article titled "Lies Americans Tell Themselves" would be taken to apply to lies Americans tell themselves that others do not.
As I said, maybe I'm being too touchy.
Re:Avoiding strawmen
Ovid on 2003-10-29T21:09:53
Certainly an article titled "Lies Americans Tell Themselves" would be taken to apply to lies Americans tell themselves that others do not.Ooh, ooh, ooh! I wanna write that article. Can I, can I, huh? Puleeeeze?
:) Re:Avoiding strawmen
jordan on 2003-10-29T21:46:29
As an American you're disqualified from writing such an article.
If you can't be truthful with yourself, how can we expect you to be truthful about the Lies Americans Tell Themsleves?
Hmmm, maybe you are actually ideally qualified. Perhaps it's the case that Americans not only tell themselves lies, but like to read lies about the lies they tell themselves.
Didn't Al Franken just write that in book form, though?
Re:Avoiding strawmen
jdavidb on 2003-10-30T19:44:25
Perhaps it's the case that Americans not only tell themselves lies, but like to read lies about the lies they tell themselves.
That's just the thing. As an open source developer, I tell myself lies, and I like to read about them so I can start telling myself the truth.
Re:The future
pdcawley on 2003-10-31T08:32:12
The problem with Perl for this sort of thing is you run smack bang into the issue of the amount of cruft you need to write to get your encapsulated method up and running.
sub is_an_admin {
my($self, $user) = @_;
exists $self->{admins}{$user}; # Or whatever
}
When you're encapsulating a one line test that's an awful lot of stuff, but if you want maintainability you just have to bite the bullet (and the performance hit). Roll on Perl 6.
method is_an_admin { exists %.admins{$^user} }
However, I would like to add a loud "Hear! Hear!" to your main point.
Hmm... I've come across too many to mention. Particularly common ones include:
It seems odd to me that people can go and read the white book and just forget half of what was written there. Most odd.
Re:More myths
chromatic on 2003-10-29T18:05:49
I like the "XP doesn't work because I don't think I'd like pair programming". Someone on the XP mailing list gave a nice analogy:
This cake recipe makes awful cake! I ate the cup of flour it calls for and didn't care for it at all.