November 2005 - Posts

http://wesnerm.blogs.com/net_undocumented/2005/11/joel_test.html

Everytime I read articles like the one above, I'm put in mind of the phrases "baby" and "bathwater", and "throwing out the, with..." Just because you can cite one or even some successful software projects that fail the "Joel Test" doesn't mean it's not valid. Just because Linux succeeded in-spite of Linus' attitudes towards specs and source control doesn't mean that they are not good practices.

As far as XP Programming, I don't think it succeeds in spite of the "Joel Test", I think that some of it's tenants just hit "edge cases".  For example, "Programmers work and communicate in pairs, so working conditions aren’t supposed to be quiet." Now, I don't work with XP, so I can't say for sure, but from everything I've seen, the pair is still going to need to work in relative quiet. You now have two programmers concentrating on the same problem or set of problems. Between the two of them, they can bounce ideas off each other and still maintain their concentration, because "that's how they are supposed to work". But add in a third vector, like a phone, and it'll all come crashing down.

(I tend explain programming like juggling, probably because of Joel's original article.You have all your balls up in the air, and can handle them, can handle new balls or bowling pins, or chainsaws, and can change object, picking new ones up, and put some down, but ... somebody tosses a new object into the mix, and you're probably going to drop them all. Extend that to pair programming, just put two people doing the juggling. You can have more balls in the air, and more complex patterns, but an influence outside of the jugglers is still going to mess things up.)

Besides which, arguments like Wesner's really only take into account the letter of the law, not the spirit of the law. A "quiet working environment" doesn't mean one programmer per office, it means a working environment conducive to your methodology. "Best tools money can buy" doesn't mean upgrade the minute faster hardware comes out, it means make sure that your start with a good solid baseline that allows developers to be productive, and go from there.(I have 3 monitors. I like having 3 monitors. I'd get a fourth if I could hang one from the ceiling, I think, but.. does everyone need three or four. No, but two is a phenomenal increase in productivity. And far more cost effective than a 1 larger monitor. Same thing with VS 2005. It's a great tool. Shops using VS 2003 should move towards it. Don't have to do it this year, but it should be a goal. When it's appropriate.)

I'm sure that some successful projects would score low on it. And I'm sure they can continue to be successful.But I bet they'd be every more successful if they applied more of these practices.

Well, I'm sure I won't be the first or the last, but the WinFX November CTP has been released.Finally, everything is back in sync, and I can start playing around with it.

As Per Tom Archer

Best Buy announced an XBox 360 pre-order starting today at 10:00 CT (11 EST) After about 1/2 hour of mashing the submit key, it finally took my order, and I've got a 360 on the way next week. Yay!

At $500 for the bundle (XBox 360, a second wireless controller, and Madden 2006) it's the most expensive system I've gotten so far, and that's the cheapest I've seen it. Why is it so hard to pre-order the main system without a game I don't want...? Even without any 360 games, it's still a pretty loaded package, and should be quite usable on launch day with XBox games, media, DVD Player and a media center extender...

Hopefully, I'll be able to swap out Madden for something else, but at any rate, it's on it's way...

(The pre-order lasted less than 2 hours from what I can tell...)

Note: The pre-order was for "Reward Zone memebers" only. Not sure what that means as far as who got the email, but I got it, and ordered it. <grin>

A few days ago, I posted about the changes to web projects, and how they resolved several issues, but introduced a slow down. With some debugging help from the folks at Microsoft, it turns out that the problem was "dueling" dependencies, where one external references was looking at one version of a dll, and another was looking at the newest version, which was causing it to re-build the dependency graph everytime. So the only real issue in the IDE was the fact that there was no output from the dll refresh, letting me know what was going on.

Now, the entire project builds in under 3 seconds as long as those dependencies don't change. Way to go, Microsoft!!!

So if your web project build seems slow, and hangs up, check your external references to make sure there are no dueling dependencies in there.

Ok, so they fixed most, if not all, of the issues I brought up in a much older post, like giving the ability to exclude projects, and not checking in references. These things are wonderful, and go a long way towards re-establishing that web sites aren't quite second class citizens.

But, there is one new issue that was "introduced", I guess you could say. If you put the references in the web project, it will auto-update them. But apparently, it auto-updates them everytime. Before every build, in a project with about external auto-updating reference, it would take about 2 minutes just to start the build, not to mention actually building and validating all of the pages. This happens even on "Build Page"

Not acceptable.

Fortunately, there is a work-around. (It was actually the same one suggested for auto-updating references under the old methodology) Put your references in another project, and reference that project. That's auto-updating and almost instant, which makes "Build Page" useful again.

But, there's one catch here... If you then use MSBuild to build the project, it will only copy the dll of the project, and not the rest of the reference. (Not sure why there's an MSBuild inconsistency, hopefully they can fix it.) In order to work around that, a post build copy step is necessary. (But again, an inconsistency... VS 2005 doesn't have a problem copying into the web bin directory, but MSBuild doesn't like to allow you to copy the reference dll a second time., so you have to ignore any copy errors. Ugh!)

Oh, well, just something to keep an eye out for, and a little helpful info to work around it.

Everybody's passing around the breaking changes document for VS 2005, but I've found one that doesn't seem to be in the list.

It seems the default naming scheme changed for master pages and other controls that nest controls (like a datagrid) It was ctl## (always two digits), but now it's _ctl# (only one digit where applicable.) If you write scripts against this, not only do you have to change the scripts, but you have to get it through the documents.all("fieldname") interface because vbscript doesn't like underscores as the start of a name.

There may be a way around this, but I haven't found it yet.

More Posts