Reading Is Fundamental (To Forming An Educated Opinion)

So while I was on vacation, my trusty teammates plus our cohorts @ MSDN published JOURNAL 3 on Architecture Center. The first article from JOURNAL 3 is called The Case for Software Factories by Jack Greenfield, co-author of the Software Factories book. Jack noticed that the article, an introduction to the concept of Software Factories, was being rated inordinately low. Currently, it’s been rated 4 out of 9. To compare, Pat’s introduction to the concept of Metropolis from JOURNAL 2 rated a 7 out of 9. So a 4 is a pretty low score. Granted, I’m not going to lose any sleep over it, but it was curious. Then Jack discovered this thread on Slashdot, where most of the posts were from people who don’t appear to have read the article at all. Here’s an example comment:

The “software factory” analogy has been around before. It’s nonsense, of course. The software analogy of a “factory” is the plant that presses CD-ROMs. Pressing the 10,000th CD-ROM of a software product is the software equivalent of building the 10,000th Nissan Maxima on a production line. But writing the software which will go on that CD-ROM is the software analogy of designing the 2005 model of the Nissan Maxima. Now, some software development is not very creative. Just as tweaking the design of a car model that’s been around for 10 years, to get something a little bit new for a new model year, is not very creative mech engineering. But it’s still design, not assembly-line production. A competent software engineer will be able to do it better and faster than a bad one. And a factory worker will not be able to do it at all.
[Comment by njdj from Slashdot thread Hackers As Factory Workers?]

What’s hilarious about this post is that point of the article is that the software industrialization will not look like a factory stamping out of exact duplicates that njdj describes! The key to understanding software industrialization is understanding the difference between economies of scale and economies of scope. What njdj describes is economies of scale – where you stamp out a boatload of multiple identical instances. Economies of scope is when you create similar, yet distinct, instances. For example, in my housing development, the houses are all similar, but not exactly the same. There are three or four basic designs used for around a hundred different houses, but the different instances of each design vary slightly. Since you can’t stamp out identical copies of the house, economy of scale doesn’t apply. However, economy of scope does apply – these houses use the same basic building materials, similar patterns of construction, the windows and doors are the same size, the plumbing and electrical wiring are the same, etc. Even though the houses aren’t identical, the construction company can build a bunch of similar, yet distinct, houses much cheaper than if they built each one “from scratch”.

I know njdj (and most of the other posters on the Slashdot thread) didn’t read the article, because the article comes right out and states:

We can now see where apples have been compared with oranges. Production in physical industries has been naively compared with development in software. It makes no sense to look for economies of scale in development of any kind, whether of software or of physical goods. We can, however, expect the industrialization of software development to exploit economies of scope.
[The Case for Software Factories by Jack Greenfield from JOURNAL 3]

I don’t know how much clearer Jack could have made his point, so I’m surprised that so many people missed it (or bothered to post their opinions of an article they clearly didn’t read). However, I’m not going to lose any sleep over it. I blogged a while ago about the the Oakland A’s exploiting the inefficiencies of baseball. Jack’s talking about exploiting the inefficiencies of software development. At some point, someone will be successful adopting a factory approach and everyone else will have to adapt. Software development has to change – you can’t expect to stay in the major leagues with a .160 batting average.

My Ride (Revisited)

I’m not sure how this happened, but I overwrote the following post from July 27th. Found the original in Google’s cache, but not before I deleted the original. So here it is again:

Brad Smith (via Chris) wants to know what kind of cars ‘softies drive. I drive a green 2002 Chevy Blazer. This picture is from Patrick’s trip home from the hospital. In the picture, you can see my old car – a purple ’97 GMC Sonoma pickup truck. That got traded in earlier this year for a Nissan Quest minivan. Those two cars take a fair bit of gas, so we’re thinking of getting a hybrid – Ford has a hybrid Escape SUV coming this year. My mom has a hybrid Honda and loves it. In the meantime, I try to carpool or bus (or hit John up for a ride) to work as often as possible.

Back in All Blacks

So I’m back from vacation and ready to head into work tomorrow. I’m almost over jet lag, but Patrick still thinks his bedtime is his afternoon nap. I slept thru the Tri Nations match yesterday morning, where the New Zealand All Blacks, my new-favorite rugby team, got beat bad by the South Africa Springboks. After losing to the Australia Wallabies while we were in Sydney, the All Blacks are out of the running for the Tri-Nations Cup. Winner of next weeks’ match between South Africa and Australia takes it. (note – apparently, severalreaderspointedout that I got my cups mixed up. Bledisloe Cup is between New Zealand and Australia only, and since NZ and Aus drew in their home and home series, NZ keeps that cup.)

I didn’t blog any of my vacation as it was happening, but I want to revisit two items that I think will be interesting to my blog readers – the Buildings of Sydney and the Sydney Opera House.

I went to Australia (and New Zealand) to present Metropolis. Delivering this talk (as well as the follow-up talk on Buildings and Applications) has changed the way I look at buildings and cities. I’ve lived in three different cities – Washington DC, Los Angeles and Seattle. DC is filled with old buildings, but there are no skyscrapers. No building in DC is allowed to be taller than the Washington Monument. Seattle is relatively young, and there was a big fire in 1889 that destroyed a great deal of the city. Los Angeles is…well…I’ve blogged my opinion of Los Angeles before. LA is like a movie set – it only looks good on TV. Drive around LA and you’ll find miles and miles of mini malls, but no history.

Sydney is very different. Many of the older buildings are under “heritage protection” meaning that their facade’s are protected and can’t be changed. This leads to a fascinating mix of older buildings side by side with modern skyscrapers. Paddy’s Markets, which has been there since at least 1834, is housed in a building originally built in 1909 (according to the building’s facade). However, if you check out the picture, you’ll notice that the building’s second floor is notably more modern than the first floor. That’s Sydney to a “T”, new sitting right next to, or on top of, the old. I imagine that some of the older eastern seaboard cities of America have the same combination of historical and current, but none that I’ve spent a significant amount of time in.

Of course, you can’t go to Sydney and not visit the world famous Sydney Opera House. You can read the history online, so I wont bore you with those details. But here’s something you probably don’t know about the opera house – it’s a pretty dinky opera house as opera houses go. My mother works for the Washington National Opera and I grew up hanging around the Kennedy Center so I’ve been around opera all my life. (Betcha didn’t know that about me, did ya?) The Opera Theatre of the Sydney Opera House only holds 1547 people, only about two-thirds of the Kennedy Center Opera House. It also has limited fly, wing and back stage space – the unique sail roof structure severely limits off stage space. (This isn’t an issue in the Concert Hall, which is housed under the larger sail roof and has less need for off stage space.) I found it very interesting that, as opera houses go, the Sydney Opera House looks great from the outside, but isn’t that well thought out on the inside. This comes back to Metropolis metaphor as well – what’s on the outside (in this case, the roof) severely limits what you can build on the inside (i.e. the theatre). In the case of the Sydney Opera House, it’s no problem as people come from all over the world to see shows there, even if the house creates unique logistical challenges for the company putting on the show. For enterprise apps, you probably won’t be so lucky, so design your roof with great care.

I’m back at work tomorrow, so watch this space.

JOURNAL 3

I know I’m on vacation, but I had to blog this. The third issue of Architects JOURNAL is online. The first article from J3 is about Software Factories. It’s is the first of a four part series. You can check out the second article in the series from our brand new Software Factories page on Architecture Center.

Update: My pal Chris (who is blogless at this point) pointed out an article in eWeek on Software Factories.

Amazing Cheese

I’ve blogged about cheese before, but it was in jest. However, the cheese here in Australia and New Zealand has been awesome. It’s like going to Tahiti and eating pineapple. When you come home to the same old stuff, it’s a real let down. Maybe I need to stop making fun of my coworker Earnie (he’s the one who showed me the American Cheese Society annual conference and awards).