[ Content | Sidebar ]

okami

October 29th, 2006

Okami is an amazing game. In some sense, it’s quite derivative: it’s working well within the Zelda genre (complete with sonic homages to its predecessor), so it’s not as novel as some recent games, but there’s more than enough new presentation in the game to keep me happy, combined with a thorough rethinking and improvement upon the genre’s conventions.

You play a wolf. You’re also a god, with powers derived from brush strokes. In Zelda terms, the brush strokes replace stuff like bombs or the hookshot; you can use them in the world to solve puzzles as well as in battle. They’ve also worked this into the art style, making the whole game look like it it was done as brush paintings. Which is really pretty, and the most interesting presentation twist that I’ve seen since Jet Grind Radio. Not that I want other games to start directly imitating it, but I do want other games to think more about how they could adopt a distinctive presentation style that works well in the context of the game.

Acquiring brush strokes is one way to level up; another is to increase your health, magic (number of times you can paint in a row without resting), etc. In Zelda, you improved those by acquiring specific objects. In Okami, however, you do that by making things happy. For example, one of your early brush strokes lets you bloom things; after that, when you see a withered plant, you can bloom it, and you’ll get some points. Or you’ll run into animals; you can feed them, and get points from that, too. And you can do errands for people to get points. Basically, you go around making the world a nicer place, in a much broader sense than traditional errand-based methods. (And, as you run through the world, grass and flowers temporarily appear in your footsteps!) Honestly, one of my favorite parts of the game is when, soon after entering a new area, I’ve removed the initial blight from the area (typically by finding my way to a big tree and blooming it); then I get to wander around blooming flowers, feeding animals, meeting people, and just getting to see what’s new. A very humane way to design a game.

(Maybe it’s too nice, actually: entering a new area is always lots of fun in any game like this, because of the inherent novelty. So maybe adding extra enjoyment on top of that is the wrong thing to do, in terms of making the game more enjoyable overall? I’ll have to think about that for a while; not clear to me how they could have spread out the pleasures more in this game. And new areas do take some time to unfold, so it’s not like you have one big high followed by a long letdown.)

And there are still more ways to level up – you can get new weapons (three different variants, each with different levels), learn new moves (my favorite one is when you learn to pee on your enemies; maybe if I’d earned enough money to learn Brown Rage, that would have been my new favorite). Nothing stunning, but I do like the range of leveling up mechanisms, along with the different rhythms at which they take place.

So that’s leveling up. Another genre convention: the town / overworld / dungeon split has been around at least since (early in) the Apple ][ days. (It was certaintly present in the original Ultima; any good examples from before 1981?) Which has its virtues – cities give you concentrated plot, dungeons give a rhythm of accomplishments to the game (typically coupled somehow with progessive unlocking), and the overworld ties it all together.

You can still see that in Okami, but the boundaries are very blurred indeed. You start off in a town. (Well, you start off in a miniscule mini-dungeon without any monsters, if you want to get picky, and then move to a town.) After a bit, you move to an overworld. (Except there’s another, slightly larger but still quite small, dungeon right near the start.) But, as overworlds go, it’s full of people – there’s a bomb guy, a potter, a dojo, a priest, a merchant. There are some monsters, but you can avoid them if you’re in the mood; it’s all relatively compact, so you’re not going through league after league of boring areas.) After doing some stuff, you go back to the village, take part in a festival, go to another part of the overworld. And there are several people there, too, along with a relatively classic dungeon. (But even the most classic dungeons are more about progressing through a relatively short sequence of areas and less about going through a long gauntlet of monsters.)

And then you get to another overworld area. It’s similar to the others; there’s also one classic town off of it, plus another smaller town. I could go on, but you probably have the idea by now: towns and overworld interpenetrate, overworlds are destinations rather than simply areas to traverse on your way from town to town or dungeon, and the extremes of dungeons are muted. (Side note: Jim and I were just having a conversation about how, in Japan, you don’t have the same sort of wilderness as in the US, and there’s been much longer continuous habitation in forest/mountain areas; I wonder if this game is perceived in Japan as trying to explicitly build a really Japanese game?) Some dungeons are very un-dungeon-like indeed: the most important dungeon in the first part of the game, in fact, is a monster’s castle that you sneak into with an amusingly bad disguise, and then have to do tasks for the head monster’s chef. So very little fighting, lots of problem solving, and in many ways it feels more like a town than a dungeon. (Just a town that happens to belong to the bad guys!)

So, just as the leveling up system proceeds according to a more complex, subtler rhythm than is the norm, your journey through the various areas also proceeds according to a more complex, subtler rhythm. Rest assured, however, the game has a strong plot. Not Square RPG all-dominating melodrama or anything, but it’s there. (Arguably, the variations in external rhythms actually increases the plot’s strength: the game can’t get away with leaning on typical game conventions to mask the paucity of the plot.) You care about the world, it gets threatened periodically, it is punctuated at pleasant intervals by higher-drama tasks.

Which brings me to another one of my traditional pet peeves – boss battles. (And game difficulty in general.) They are the traditional way to cap off a high-drama task; this game is no exception. (Though the traditional boss battle / dungeon link is weakened – not all dungeonish areas have boss battles, not all boss battles are in dungeons.) The boss monsters are pleasantly varied, and not particularly hard – you have to do a bit of thinking to figure out their weakness (which is almost always linked to your newest brush stroke), but you can almost always make it through boss battles without dying. And, if you do die, the next time you’ll have that boss’s info in your monster book, so you’ll have hints about its weaknesses. Over the years, I’ve gotten to like hard games less and less – difficulty is no substitute for solid game design – and I’m quite comfortable with this game’s difficulty level. (I wouldn’t have minded if I’d died a few more times, actually.)

Even games that get most bosses right can fall sorely flat on the final boss: I am thoroughly sick of final bosses that are much harder than any of their predecessors and that, the first two times you kill them, resurrect themselves in new, tougher forms. (With no save spots, of course; in the worst case, you can spend most of an hour just hacking back through to the place where you were killed last time.)

The final boss in Okami isn’t entirely divorced from that tradition. The final dungeon actually consists solely of boss fights: it starts by forcing you to fight five of the previous bosses. Which turns out to be surprisingly pleasant: the fights are well-enough designed, you’re powerful and knowledgeable enough to make them pretty fast and easy, and you can save between bosses (which also replenishes your health), should you so desire.

And then there’s the final boss. Who is intelligently multi-staged: you start off by losing all of your brush strokes, and over the course of fighting him, you regain your brush strokes; every four or so brush strokes, he (or she – the main character is female, and for all I know the final boss is as well) changes in order to be more suitable to fight with your current bag of techniques. One of my favorite fights of the game.

And then, after killing him, he resurrects in another form. Sigh – they were doing so well, and then blew it! Actually, it wasn’t so bad – the new form only had a single stage, and while I was glad I had a couple dozen medium bones around for healing purposes, I didn’t come close to dying. (Especially once I started paying attention to when he was most vulnerable.) So, as gratuitous extra bosses go, not so bad. And, actually, there was a quite nice plot reason for the extra boss: it gave them an excuse to have your companion marshal up support for you throughout the land, with lots of pictures of people cheering you on and praying to you. Really rather charming, and it would have been harder to work that in without the boss resurrection.

(Side note: the idea of mass support while fighting the final boss was, of course, used to fabulous effect in Space Channel 5; that final boss had one overly difficult moment, but if you made it past that, you had a cast of thousands dancing with you, chanting out “left right left right chu chu chu” or whatever it was. Honestly, one of the most powerful experiences I’ve had in a video game. I suppose it’s been a few months since I’ve done my Dreamcast lament, so I will briefly revisit it here: the Dreamcast was Teh Best Console Evar, why can’t Sega make good games these days?, and I really really really wish they would make Shenmue III.)

So: if you own a PS2, go out and get a copy of Okami. If you don’t, well, buy one and reduce your situation to a previously solved problem. (Not the best console ever, but this isn’t the only great game the console has seen.) It’s not perfect, but the first half is pretty close – honestly, once I’d gotten that far, I was beginning to despair over the likelihood that the new Zelda, which will come out in a mere three weeks, will pale painfully in comparison. The second half doesn’t contain the same revelations as the first half does, but it’s still thoroughly enjoyable and solidly constructed.

What a year and a half Capcom has had. I can’t believe that they’ve always been this solidly good, but clearly I’d vastly underestimated them; I should delve further into their library.

pick my next distro

October 25th, 2006

I’m currently running Fedora Core 5 on my home machine. FC6 is out; following a sage reader suggestion, I’m going to reinstall the OS (in a larger drive) rather than do a simple upgrade.

Which means that I could almost as easily switch distros. So: stick to FC6, or switch to Ubuntu? I’m actually quite happy with Fedora Core, and I know where everything is. (Whereas I always have to poke around when I use a debian-based system.) But lots of people are really happy with Ubuntu, and it seems to have legs. (I’m willing to consider other distros, but I’d be shocked if I went with anything else.)

Background: the architecture is x86_64; it’s not a laptop, so I don’t care about wireless or sleep. (Well, I don’t care too much – I do occasionally run Linux on laptops, so I wouldn’t complain if that stuff worked.) My base criteria:

  • I don’t want to switch distros for the next several years.
  • I want regular new OS releases, no less frequent than, say, once a year.
  • I want a constant stream of automatic updates. (Actually, if this could remove the need for new releases, so much the better, but I don’t think anybody’s there yet.)
  • I want it to be painless to install new software by using yum or apt-get or their moral equivalent.

I’m not sure exactly what I want on top of the base criteria; it should look nice, it should be easy to use, there should be a sensible choice of default software available.

Recommendations?

remote state

October 21st, 2006

Yesterday, I moved more items off of my list of web pages to regularly click on and onto Google reader. Which emphasizes: Google Reader has too much of my state these days. I don’t care so much about the list of what I’ve read and what I haven’t read, but I should at least make a habit of periodically backing up my subscription list. Not that I’m afraid that it’s going to suddenly disappear or anything, but entrusting information that I care about to other people makes me nervous…

serre

October 21st, 2006

A few days ago, I went to Amazon’s books page, and was greeted with Serre’s A Course in Arithmetic. Which kind of surprised me – I’m pretty sure that, in the past, I’d rated math books, but it had been a while since I’d seen any show up in their book recommendation list. (Do they weight your ratings lower over time?)

So I dutifully rated it, at which point no end of familiar math books appeared in my recommendations. Local Fields; sigh. Lots of new textbooks that have popped up in fields that I used to follow over the last few years; I’m sure some of them are good, but there seems to be a bit of a glut. (How many GTMs on a given subject does the world need? I guess Springer would know…)

I wonder: if I had more spare time, would I use some of it to read math books? I tentatively think that the answer is yes, but I’m not completely sure. (Another possibility would be to, say, wait a few more decades and then catch up with the state of the art somewhat.) If I were to read math books (or papers or …), what would I read? Textbooks don’t really strike my fancy, unless they’re really good. I don’t think I’d want to read cutting-edge papers, either. Probably the best (see the Serre examples above) would be well-written expository monographs by good mathematicians; unfortunately, there aren’t a ton of examples of that around. Or I could just read through Serre’s complete works, or volumes of SGA.

Other random notes on the topic:

  • I was amused to see, in my recommendations list, Amazon list Problems in Algebraic Number Theory as being “by Jody Esmonde, et al.”
  • Nice reviews.

lean thinking, shared purpose

October 16th, 2006

I just finished Lean Thinking; it’s my current favorite lean book. One thing that made me jealous: they give several (to me) convincing examples of companies wanting to try out lean, and that brought in some people who really knew how lean worked. After doing what those people said, they immediately got some fairly impressive improvement. But they then managed to improve on this continually over the next few years.

Which, among other things, serves as a counterpoint to some thoughts I’ve been having, and that seem in the air in general. (See, for example, Martin Fowler on agile imposition.) It’s been clear to me for a while that my team’s agile adoption would have been vastly improved by bringing in an outside expert some time ago. (It would probably still be vastly improved by that.) But, among other things, doing so would be tantamount to my saying “we’re going to do XP, plain and simple”. People may hear me as saying that already, but I don’t intend to be saying that. What I would like to be saying is “here are some things that are really important to me” (high quality standards, sharing knowledge, responding quickly) and “I haven’t heard of anything that sounds as effective as XP to reach that goal”.

So one aspect is that I’m jealous of people who have built up the support where bringing in an outsider to show them what to do is effective. But another aspect is that I’m also jealous of people who have concrete touchstones that they can use to continually approve. This is something that, perhaps, XP isn’t so helpful at. The concreteness of the practices can be very useful if you need something specific to try. But they have a finality about them that (to me) makes it hard to use them as guideposts for continuous improvement. For example, we don’t pair program all the time. I’m willing to believe that we’d be more effective if we did, but I don’t have any great way to convince people (even to convince myself) that doing so would be a good idea, and taking it on faith will only go so far. In a current thread on the XP mailing list, Ron Jeffries proposed telling people to find a way to “deliver working software monthly”; a lot of people are willing to believe that that’s a noble goal, but getting from there to XP is a pretty big step.

So what are intermediate goals that can help you see ways to continually improve? (Through which you might end up at XP or might end up somewhere else; if we can continually improve, I really don’t care about anything else.) Here, I think lean manufacturing has a leg up on agile software development: they have goals at a similar level to agile goals (single piece flow or just in time / pull are probably at a similar level to incremental development and no bugs), but I get the feeling that they have more ways to see flaws and to translate those flaws into concrete improvements. (Categories of waste, or stop the line when you see a bug, combined with root cause analysis, for example.)

Or maybe agile is just as good at that; it could (in all honesty, I’m not being facetious) just be my lack of knowledge combined with my lack of skills in the appropriate areas.

Something to work on.

scrum and bottlenecks

October 14th, 2006

In response to a not-very-coherent question of mine on the lean development list, Tom Poppendieck posted an interesting response. From it:

Over a decade ago, when Jeff Sutherland invented Scrum, he was faced with a situation in which his product development process bottleneck was the capacity of skilled developers. He designed Scrum specifically to exploit the capacity of the bottleneck, to subordinate everything else to ensure maximum throughput through the software development process, and to elevate the capacity of the bottleneck by removing impediments.

I’d never really thought of Scrum in that sort of Theory of Constraints terms; hmm.

alcs

October 14th, 2006

Results here not so good, alas.

the shame of the nation

October 14th, 2006

In Jonathan Kozol’s earlier books, I’d already been appalled by the horrible physical condition of schools serving nonwhite populations. And, in The Shame of the Nation, we see that too:

In the years before I met Elizabeth, I had visited many elementary schools in the South Bronx and in one northern district of the Bronx as well. I had also made a number of visits to a high school where a stream of water flowed down one of the main stairwells on a rainy afternoon and where green fungus molds were growing in the office where the students went for counseling. A large blue barrel was positioned to collect rain-water coming through the ceiling. In one make-shift elementary school housed in a former skating rink next to a funeral parlor in another nearly all-black-and-Hispanic section of the Bronx, class size rose to 34 and more; four kindergarten classes and a sixth grade class were packed into a single room that had no windows. Airlessness was stifling in many rooms; and recess was impossible because there was no outdoor playground and no indoor gym, so the children had no place to play.

In another elementary school, which had been built to hold 1,000 children but was packed to bursting with some 1,500 boys and girls, the principal poured out his feelings to me in a room in which a plastic garbage bag had been attached somehow to cover part of the collapsing ceiling. “This,” he told me, pointing to the garbage bag, then gesturing around him at the other indications of decay and disrepair one sees in ghetto schools much like it elsewhere, “would not happen to white children.” (pp. 40–41)

During the 1990s, physical conditions in some buildings had become so dangerous that a principal at one Bronx school, which had been condemned in 1989 but nonetheless continued to be used, was forced to order that the building’s windows not be cleaned because the frames were rotted and glass panes were falling in the street, while at another school the principal had to have the windows bolted shut for the same reason. These were not years of economic crisis in New York. This was a period in which financial markets soared and a new generation of free-spending millionaires and billionaires was widely celebrated by the press and on TV; but none of the proceeds of this period of economic growth had found their way into the schools that served the truly poor. (pp. 43–44)

I don’t mean to be picking on New York here: he gives examples from elsewhere, here and in other books.

But the differences in teaching style are a good deal more chilling:

“Taking their inspiration from the ideas of B. F. Skinner…,” […] proponents of scripted rote-and-drill curricula articulate their aim as the establishment of “faultless communication” between “the teacher, who is the stimulus,” and “the students, who respond.”

The introduction of Skinnerian approaches, which are commonly employed in penal institutions and drug rehabilitation programs, as a way of altering the attitudes and learning styles of black and Hispanic children is provocative, and it has stirred some outcries from respected scholars. To actually go into a school in which you know some of the children very, very well and see the way that these approaches can affect their daily lives and thinking processes is even more provocative.

On a chilly November day four ears ago in the South Bronx, I entered P.S. 65 […]

Silent lunches had been instituted in the cafeteria and, on days when children misbehaved, silent recess had been introduced as well. On those days, the students were obliged to stay indoors and sit in rows and maintain silence on the floor of a small room that had been designated “the gymnasium.” The school still had a high turnover of its teachers […], but the corridors were quiet and I saw no children outside of their classrooms.

The words “Success For All,” which was the brand name of a scripted program used within the school, were prominently posted at the top of the main stairway and, as I would later find, in almost every room. Also displayed throughout the building were a number of administrative memos that were worded with unusual directive absoluteness. “Authentic Writing,” said a document called “Principles of Learning” that was posted in the corridor close to the office of the principal, “is driven by curriculum and instruction.” I didn’t know what this expression meant and later came back to examine it again before I left the school.

I entered the fourth grade of Mr. Endicott, a man in his mid-thirties who had arrived here without training as a teacher, one of about 15 teachers in the building who were sent into this school after a single summer of short-order preparation. […]

On the wall behind the teacher, written in large letters: “Portfolio Protocols: […]” To the left side of the room: “Performance Standards Mathematics Curriculum: M-5 Problem Solving and Reasoning. M-6 Mathematical Skills and Tools…”

My attention was distracted by some whispering among the children sitting to the right of me. The teacher’s response to this distraction was immediate: His arm shot out and up in a diagonal in front of him, his hand straight up, his fingers flat. The young co-teacher did this too. When they saw their teachers do this, all the children in the classroom did it too.

“Zero noise,” the teacher said, but this instruction proved to be unneeded. The strange salute the class and teachers gave each other, which turned out to be one of a number of such silent signals teachers in the school were trained to use, and children to obey, had done the job of silencing the class.

“Active listening!” said Mr. Endicott. “Heads up! Tractor beams!”—the latter meaning, “Every eye on me.”

On the front wall of the classroom in handwritten words that must have taken Mr. Endicott long hours to transcribe: a list of terms that could be used to praise or criticize a student’s work in mathematics. At Level Four, the highest of our levels of success, a child’s “problem-solving strategies” could be described, according to this list, as “systematic, complete, efficient, and possibly elegant,” while the student’s capability to draw conclusions from the work she had completed could be termed “insightful…, comprehensive.” At Level Two, the child’s capability to draw conclusions was to be described as “logically unsound”—at Level One, “not present.” Approximately 50 separate categories of proficiency, or lack of such, were detailed in this wall-sized tabulation.

An assistant to the principal remained with me throughout the class and then accompanied me wherever else I went within the school. Having an official shadow me so closely is a bit unusual in visits that I make to public schools. Principals who feel relaxed and confident about their teachers typically invite me to sit in on classes without constant supervision and to visit classes that have not been pre-selected. Also unusual, I realized later, was that Mr. Endicott, whom I had met before, did not say hello to me until nearly the final moments of the class and didn’t actually acknowledge I was there except by stoping by my desk and handing me the worksheet on perimeters.

[…] It is one of the few classrooms I had visited up to that time in which almost nothing even hinting at spontaneous emotion in the children or the teacher surfaced in the time that I was there.

I had visited classes that resembled this in Cuba more than 20 years before; but in the Cuban schools the students were allowed to question me, and did so with much charm and curiosity, and teachers broke the pace of lesson plans from time to time to comment on a child’s question or to interject a casual remark that might have been provoked by something funny that erupted from a boy or girl who was reacting to my presence in the class. What I saw in Cuban schools was certainly indoctrinational in its intent but could not rival Mr. Endicott’s approach in its totalitarian effectiveness.

The teacher gave the “zero noise” salute again when someone wihspered to another child at his table. “In two minutes you will have a chance to talk and share this with your partner.” Commuication between children in the class was not prohibited but was afforded time-slots and was formalized in an expression that I found included in a memo that was posted near the door: “An opportunity … to engage in Accountable Talk.”

Even the teacher’s words of praise were framed in terms consistent with the lists that had been posted on the wall. “That’s a Level Four suggestion” said the teacher when a child made an observation other teachers might have praised as simply “pretty good” or “interesting” or “mature.”

There was, it seemed, a formal name for every cognitive event within this school: “Authentic Writing,” “Active Listening,” “Accountable Talk.” […]

These naming exercises and the imposition of an all-inclusive system of control on every form of intellectual activity consumed a vast amount of teaching time but seemed to be intrinsic to the ethos here: a way of ordering cognition beyond any effort of this sort I’d seen in the United States before. The teacher, moerover, did not merely name and govern every intellectual event with practiced specificity; he also issued his directions slowly, pacing words with a meticulous delivery that brought to my mind the way the staff attendants spoke to the Alzheimer’s patients at my father’s nursing home.

[…]

I remember, too, another aspect of my visit that distinguished this from almost anyother class I’d visited up to this time: Except for one brief giggle of a child sitting close to me which was effectively suppressed by Mr. Endicott, nothing even faintly frivolous took place while I was there. No one laughed. No child made a funny face to somebody beside her. Neither Mr. Endicott nor his assistant laughed as best as I can recall. This is certainly unusual within a class of eight-year-olds. […]

When I was later looking at my notes, I also noticed that I couldn’t find a single statement made by any child that had not been prompted by the teacher’s questions, other than one child’s timid question about which “objective” should be written on the first line of a page they had been asked to write. I found some notes on children moving from their tables to their “centers” and on various hand-gestures they would make as a response to the hand-gestures of their teachers; but I found no references to any child’s traits of personality or even physical appearance. Differences between the children somehow ceased to matter much during the time that I observed the class. The uniform activities and teacher’s words controlled my own experience perhaps as much as they controlled and muted the expressiveness of children.”

Before I left the school, I studied again the definition of “Authentic Writing” that was posted in the corridor. Whaever it was, according to the poster, it was “driven by curriculum…” That was it, and nothing more. Its meaning or its value was established only by cross-reference to another schoolbound term to which it had been attached by “drive” in passive form. Authenticity was what somebody outside of this building, more authoritative than the children or their teachers, said that it shall be. (pp. 64–71)

There is a huge amount of education inequality within our nation, within our states, within our school districts, within our individual school buildings. Which raises the question: am I part of the problem, or am I part of the solution?

My daughter is part of a special program which is housed within one of the schools in our local school district. I’m all for different schools having different educational programs: I don’t believe in uniformity, since different students, parents, and teachers have different goals, different philosophies, are simply different people.

Having said that, different programs is one thing; different resources is quite another. Some of the resources I don’t feel guilty about: parents volunteering is one thing, grant money is one thing. And donations in kind can be fine, too. (Not always, but in certain contexts: I would be bothered by rich parents giving dozens of computers, but I wouldn’t be bothered by, say, people bringing in food to some sort of get-together.) But asking for a financial donation from parents who participate in the school? It’s not required—I hope that requiring a donation would be forbidden by law—but even the suggestion very much strikes me the wrong way.

The next question: how do I act on this in a responsible fashion?

alds

October 8th, 2006

I am pleased with the first round of the playoffs this year.

For better or for worse, I’m not planning to get ALCS tickets, but if the A’s win, it would be nice to see a World Series game…

netflix

October 8th, 2006

I signed up for Netflix today. It fits in well with my current philosophies; the reason why I’d been holding off was that Liesl and I don’t watch movies very often, and we have a fair number of unwatched movies around. So we wanted to go through the backlog first.

But it’s becoming clear that much of that should simply be treated as sunk cost: maybe we’ll watch them, maybe we won’t, but we shouldn’t let it stand in the way of watching movies that we’re more interested in. So I bought a copy of the first volume of Haibane Renmei last week; after buying that, I realized that I wasn’t sure that I’d want to watch it over and over again, so why did I buy it instead of renting it? Oops. Having said that, we did enjoy it, and I could imagine buying the later volumes at some point, but for now signing up for Netflix and renting the rest of the volumes sounds like a better idea to me – for the cost of the remaining volumes, I could get seven months of a 1-DVD-at-a-time-Netflix subscription instead. (There are also a few other anime series that I’d like to dip into without spending hundreds of dollars.)

We’ll see how it goes, but I’m optimistic; and if that causes us to shift more of our free time to watching movies, that wouldn’t be a bad thing. I’m curious how their series management works; it looks like you can sign up for an entire series at once, and I hope that, if I do that, it will be smart enough to make sure to always send me volumes in order. So if, say, I’ve finished volume 1, and volume 2 is unavailable but 3 is available, it will wait instead of sending me volume 3.

throughput and latency

October 8th, 2006

I’ve been kind of obsessed with the theory of constraints recently, which has gotten me wondering about bottlenecks. One of their points is that, in general, a system has a single bottleneck; you should do everything you can to make that bottleneck as productive as possible.

For a simple bottleneck example, say you have a linear, five-step production process. So there are steps A through E, with A’s output being B’s input, and E’s output being the final product. Assume they can produce at the following rate (assuming the previous step has completed): A can produce 10 per day, B can produce 5 per day, C can produce 10 per day, D can produce 3 per day, and E can produce 10 per day.

If you look at where work is piling up, both steps B and D might look like bottlenecks: A can produce tons of stuff, so step A might get annoyed that B can’t consume its output fast enough. Looked at from the whole system point of view, though, only step D is a bottleneck: no matter how fast the other steps get, the whole system can’t produce more than 3 per day.

This example is very simple, but actually a lot of its similarity is irrelevant for this analysis: even if the paths branch and join in interesting ways, ultimately the rate of production of the whole system is limited by its least productive step. (For more complex graphs, though, the actions you take get more interesting – for example, typically there’s some day-to-day variation in the productivity of any given step, and you have to pay more attention to that on the steps feeding the bottleneck than elsewhere. But that is a discussion for another day.)

This, however, doesn’t mean that you can’t get a lot of good from improving the non-bottleneck steps. The first level of analysis is simply to look to make sure that the non-bottlenecks aren’t stealing resources from the bottlenecks. But, aside from that, the above discussion is about throughput; in many situations, latency can be just as important, or even more important.

So, in the above example, consider step C. It can produce at a rate of 10 per day. Maybe that means that it can carry out its step for 10 items in parallel every day; maybe that means that it can carry out its step for 1 item every .1 days. (Or maybe it can carry out its step for 100 items every 10 days.) From a throughput point of view, these are all the same; from a latency point of view, though, doing it for 1 item every .1 days is the best: compared to the 10 items in parallel version, that reduces the time from when raw materials enter the door to when a finished product leaves the door by .9 days. Which is great.

In fact, from the point of view of the whole solution, even a version of C where it could carry out its step for 1 item every .2 days would be better than a version that could carry out its step for 10 items every day. The latency of that step would go from 1 day to .2 days, which is good. The throughput of that step would go from 10 per day to 5 per day; that looks bad, except the throughput of the whole system is 3 per day, so that reduction in throughput is irrelevant.

Which doesn’t mean that you should go around reducing throughput willy-nilly: you’d better make quite sure you know you’re not the bottleneck before doing that! Fortunately, one lesson of lean and agile is that, if you work at it, you can increase latency without decreasing throughput. (Single Minute Exchange of Dies, as opposed to taking two hours to change dies.) Look for waste, find ways to reduce or eliminate it, and you’ll be happy.

It’s not at all clear to me how to apply this at work: I don’t know where the bottleneck is, and our process isn’t even well-enough defined for me to be confident that there isn’t something big that this analysis is missing. One tool to give clarity on this matter is a value stream map; I’d like to try producing one of those some time over the next week or two. If done right, that will help identify potential bottlenecks, and will probably help with ideas for reducing latency. The other tool is waste reduction; the value stream map will help there, too, and I should go through the traditional lean categories of waste to see what examples I can come up in my organization.

new hard drive

October 7th, 2006

I was given a second hard drive for my computer recently. Some random thoughts:

  • Annoying to have to buy a bracket to mount it in the computer, and even more annoying that Sun doesn’t want to sell me one directly; fortunately, it’s easy enough to get a used one for cheap.
  • Having said that, once I got the bracket, it mounted very easily: no need to fiddle with cables at all. And the box is very easy to open up.
  • You would think that Linux would be well-enough evolved to either pop up some message saying “you have a new disk, what do you want to do with it?” or, at the very least, have an appropriate item in a menu to deal with that. Not so, at least on Fedora Core 5.
  • What they do have is a menu item for logical volume management. This does everything I want, once I type in the magic command # pvcreate /dev/sdb. (Your device name may vary.)
  • LVM is pretty cool; further evidence that there’s nothing that an extra level of indirection won’t solve. I’m still not sure what the best configuration is for my situation; for now, I’ve got a separate volume group on each drive (so that I know what I lose if a drive fails). The original drive has one group with two volumes: one for swap and one for the standard directories (/usr, /home, …) on it; the new drive, for now, has one group with one volume, /backup. It’s nice to know that I can easily, say, increase the swap size if I should want to do so, or divide up the new disk once I think of useful ways to use up all that space. For now, I’m moving more backup stuff there and increasing the amount of stuff I backup; another idea might be to create a second volume there and RAID0 that volume with my main volume on the first disk. (Right now, I’m rsyncing my home directory nightly, which gets me most of the benefits of the RAID0 solution.)

benefits of slack

October 7th, 2006

After some discussions on the leandevelopment list, it would seem that slack has has more benefits than I realized. My current list:

  1. If you’re not the bottleneck in your process, adding slack won’t decrease throughput and may well increase it (since it makes it easier for you to avoid stealing resources from the bottleneck).
  2. Leaving a little slack makes your schedule more predictable: you can work harder to make a date if that should prove to be necessary.
  3. It gives people time to recharge.
  4. It gives people time to experiment, to try to find improvements that they might not have found if their nose was constantly at the grindstone.

One nice thing about lists like this is that you can turn them around to find places where you should be wary of applying it to your situation. In particular:

The first point suggests that, if you are the bottleneck, slack isn’t a particularly good idea: the bottleneck controls throughput, so the less the bottleneck works, the lower the throughput. And, even if you aren’t the bottleneck, you shouldn’t stick in so much slack as to become the bottleneck. (And you should consider spending some of your slack time figuring out how to help the bottleneck.) Exercise for the reader (actually, an exercise for the writer): what’s the bottleneck in your organization?

The second point suggests that you should have enough control over your schedule to know when you should eat into your slack. Mary Poppendieck mentioned a company that had been working on an 8-week cycle, with 6 weeks development and 2 weeks testing. They got the 2 weeks of testing down to one week; they turned the second week into slack intstead of adding it to development. That way, if problems show up after release, people can jump on them immediately. (And people are motivated to make sure problems don’t show up after release!)

The third point is a reminder that, if necessary, people will create their own slack whether you like it or not; if you try to avoid that, your reward will be burned-out employees. The flip side is that you don’t need vast amounts of slack to get this benefit.

And the fourth point is the most interesting one, and the one whose benefits are potentially largest and hardest to predict. Which means that I have nothing coherent to say about it.

how to improve?

October 5th, 2006

I am currently awash in confusion about how we (my team, but also everybody working on the same product) should improve. Tough stuff; I hope I’ll have something more coherent to say here soon. Fortunately, the good folks on the leandevelopment mailing list are helping me sort through my difficulties.

The fact that I’m so confused suggests that a top priority should be getting more visibility into the situation. If I’m taking a lean point of view, we need to eliminate waste, which means that we should make that more visible. (Red cards? Probably start by just listing forms and manifestations of waste.) If I’m taking a theory of constraints point of view, we need to focus on bottlenecks, which means we should make that more visible. (Maybe create a value stream map?)

The latter is where I started: how do I figure out if my team is the bottleneck? (Is there really only just one?) I have no idea; I can see the card piling up before my team, but I don’t really know what happens after the card exits my team. So I can’t tell where work is piling up.

I’ll try to find time over the next few days at work to create some wiki pages on waste and bottlenecks. One fun thing about work is that enough people are subscribed to the wiki notifications that, if you’re thinking about something, you can just create a wiki page on the subject and you’ll attract some random, insightful questions or comments.

Now does seem like a good time to think about this. On the one hand, there is reason to believe that executing efficiently now could be particularly useful. And on the other hand, my boss has too many direct reports, so some sort of reorganization there may happen over the next month or two. So, if I could actually think of something useful to inform the reorganization, with solid reasoning behind it, I might be able to have an effect.

One of the times when I’m happiest is when I’m wandering around in a confused daze. (Don’t get me wrong, figuring things out and getting things done has its pleasures as well.) But I do need to get some concrete outputs from my wandering.

august 2, 1961

October 3rd, 2006

The two titles I was considering for this post are both military analogies. Sigh. So I will go with the title from the section in the book.

From How Children Learn, pp. 36–37:

The other day we went to Carlsbad Caverns, a strange and beautiful place. To get there, we rode many hours in the car. On the way, we played games. The radio was on, and with Lisa [2 years old – DBC] watching, I began to clap my hands in time to the music. She did the same. Then I began to clap one palm against the other fist. She watched a while, then made both her hands into fists, clapped together a bit, looked again, saw this wasn’t right, and soon did what I was doing. From this grew a whole series of games. I clapped hand against head; so did she. I clapped hand against stomach; so did she. I made my games more complicated. I clapped head with one hand and stomach with another; or clapped head with one hand while holding that elbow with the other, and so on. It was most interesting to see how she copied what I was doing. Each time she began by doing something fairly quickly. As she did it, she checked what she was doing against what I was doing. Then she made a change in what she was doing, checked again, and so went on until she was satisfied that what we were both doing was the same. Watching her do this, I was struck by two things. First, she did not feel that she had to get everyting right before she started to do anything. She was willing—no, more than willing, eager—to begin by doing something, and then think about fixing it up. Secondly, she was not satisfied with incorrect imitations, but kept on looking and comparing until she was satisfied that she was correct—which she almost always was.

feeling quiet

September 30th, 2006

I would seem to be in a quiet mood these days. Not feeling much like blogging, not feeling much like programming at home. Maybe because I’ve been programming a fair amount at work; I was worried that, with the new larger group, I’d have almost no programming time, but now that things have settled down (pleasantly!), that is fortunately not the case. (Incidentally, H.264 is charmingly eccentric. Or something.)

Part of the reason, too, is that Okami is tiptop stunning excellent. So I spent all of last weekend playing it, several evenings playing it, and am doing pretty well this weekend so far. I don’t think I’ll quite finish it this weekend, but next weekend certainly. So I guess the game isn’t going to fill the gap until the Wii launch after all; what next? Lego Star Wars II?

Another possibility: I could just not play video games for a month and a half. I would seem to be in a bookish mood these days; or I could spend more time programming. Or spend more timing thinking about stuff and writing about stuff. (Combined with the bookish bit above.)

The latter is increasingly attractive. My thoughts on some of the matters that I’ve been obsessing on over the last few years are starting to settle down. And I’m being reminded (e.g. by helping out with the PACT Parent Ed classes) that there’s stuff that I used to spend a lot of time thinking about that I haven’t recently revisited. So maybe it’s time to, say, go through the complete works of Alfie Kohn (who has a new book out, I should read it) and John Holt and see what, if any, points of contact they have with what I’ve been thinking about recently. Or maybe I should try to actually put some thinking tools into action. Or maybe I should spend every waking hour reading about lean. Or maybe I should spend time thinking about whether my actions are congruent with my stated beliefs and, if not, why not.

Or maybe I should play video games. That would certainly be easier…

backup woes

September 27th, 2006

By the end of the weekend, I’d copied enough of my CD’s that my laptop’s hard drive was beginning to fill up, so I thought it was about time to start backing them up. So I grabbed one of the USB drives that I bought for the purpose. (Half a year ago, when I bought the computer – this was before I got Just in Time religion.)

The computer didn’t recognize the drive. Oops.

I brought it upstairs to the Linux machine; it didn’t like the drive either. After playing around with it for half an hour, the Linux machine seemed happy with it, but the Mac didn’t like it. The other drive I bought at the time still worked, so I didn’t think it was a usage problem: the drive was bad.

So the drive went into the trash. But, actually, this is a blessing in disguise, because it pointed out a whopping big hole in my backup strategy. One that I was vaguely aware of, but had previously been able to ignore by sticking my fingers in my ears and saying “la la la I can’t hear me”. Namely that a single backup isn’t any good: you want lots of the suckers. Or at least two.

I’d originally chosen USB hard drives over optical media because I was doing this for the purpose of backing up degrading optical media, and I didn’t have any confidence that the backup optical media would last any better than the original. But obviously the hard drives had problems; and if one of them were to really fail, it could wipe out a big chunk of my collection. (Hmm: buy a bunch of USB drives, RAID em, and stick them in the safety deposit box? Nah.)

So I think what I’ll do now is back them up to both DVD-Rs and hard drives. Hopefully they won’t both fail simultaneously, and the worst thing that can realistically happen is that my house burns down, the hard drives fail completely and a handful of DVDs fail. If that happens, I’ll still have 95% of my CD collection to comfort me while sitting in the ashes of my house, and the missing 5% will be the least of my worries. Hopefully this won’t be too labor intensive; presumably the Mac comes with some sort of dead-easy DVD burning software. And I’ll keep MD5s of everything around, so I can tell which backup is correct if I get bit rot on one of them.

And I’ll revisit the issue in another decade or so, at which point it will cost next to nothing to back up everything on, say, flash USB storage and a couple of remote hosts providing reliable backup service. We’re only talking 300GB or so, after all. (At which point I’ll be worrying about backing up my DVD collection, I suppose.)

Silly me, though: I really should know better than to make a mistake like that.

no more yosha

September 23rd, 2006

As regular readers are aware, Yosha hadn’t been at his best for a while. A couple of weeks ago, though, he started getting even more lethargic, and pretty much stopped eating. We tried giving him food that actually tastes good; that helped for a while. But then it stopped helping, and he was having a hard time standing up. And was spending even more time asleep. And Zippy was really worried, and was grooming him a lot.

By last Monday or Tuesday, it was clear that the end was near, and while he didn’t seem to be in too much pain, things could get a lot worse any time. So we made an appointment to have him put down in the middle of the day on Friday. (Friday had the advantage that we could stay home with Zippy for three days in a row, to help him make a transition.)

As it turned out, he didn’t quite make it until then: he died Friday morning. In bed, quickly, with Liesl, Zippy, and me all right there.

It will be hard on Zippy – he has basically never ever been apart from Yosha. (Together at the vet, together getting haircuts, together at the kennel, …) Having said that, he seems to be handling it quite well: no despondent howling, no wandering around wondering what’s going on. He knew Yosha was sick, he was there when he died. (And groomed him for a few minutes afterwards, either as one last try to help or as a way to say goodbye.) He basically hasn’t left my side since it happens, but I think he’ll do okay.

It’s hard on the rest of us, too. I’m honestly not sure if I’ve spent more time with Liesl or with Yosha – Liesl and I spend time together out of the house without Yosha, of course, but Yosha and I spent time together in the house without Liesl, especially when I was in grad school.

Having said that, I suspect that most of the grieving went on in the two weeks before he died. It wasn’t a shock that something like this would happen eventually; we’d hoped it wouldn’t come quite soon, but we had enough warning to spend a little more time with him saying goodbye, cuddling with him even more more than normal. And it was very clear by the end that his time had come.

No, we aren’t planning to get another dog soon. For one thing, it has been my position for years that I’m going to need some dog-free time at some point. (Not that we won’t get dogs eventually, I’m just going to want a break for a few years there.) For another thing, I don’t think we’d be doing Zippy any favors by that: he’ll miss Yosha, but he’s 12 years old, and I don’t think he has enough energy to really enjoy playing with a puppy.

mii

September 17th, 2006

As a Nintendo fanboy, I must of course comment on the Wii launch news. Packing in Wii Sports makes sense for their market-broadening strategy; wouldn’t it have helped if they could have included a second wiimote, though? The controller prices are exorbitant. I wish I didn’t have to wait until November 19th.

The news that surprised me the most, though: the Mii Channel. When you turn on the system, you can do various things other than play games; one of those is create an avatar of yourself, called a “mii”. Here are some movies; the avatar editor looks pleasantly accessible, enough so that, when I buy my Wii, the first thing I’ll do will probably be create a mii instead of, say playing a game.

And this avatar can be used in games. (Not all, of course, just those where it makes sense.) So all of a sudden, the low-quality graphics in Wii Sports make sense. As Scott McCloud has taught us, sometimes you can identify better with less detailed representations of people than with high-fidelity ones; a tennis game sounds more fun with four cartoony representations of the people playing. I’m sure the Wii version of Animal Crossing will use this as well, and this will encourage the development of other friendly titles in new genres targeted at non-traditional gamers.

civ 4

September 17th, 2006

Having added extra memory to my Mac (1.5GB, instead of .5GB), and having finished the other games I was in the middle of, I went out and bought a copy of Civilization 4 on the Saturday of labor day weekend. I opened the box, gazed with pleasure upon the technology tree diagram, popped it in, bumped up the graphics settings, and began the tutorial.

Two turns later, the game crashed. For lack of a better idea, I bumped down the graphics settings somewhat; this time, it lasted a good twenty or so turns before crashing. So I bumped it down still more; it finally let me finish the tutorial.

This is one of the reasons why I almost exclusively play games on consoles. Computer game manufacturers are apparently perfectly happy to release crap that wouldn’t make it through even the most basic of playtesting: that’s what patches are for, right? Well, no: I buy a game because I want to play it right now, not because I want to play it in a few months when most of the bugs are ironed out. To be sure, the developer’s job is made more difficult by the various possible system configurations that people might try to run the game on.

Despite that unpleasantness, I gave the game a go. It seemed stable enough, and was quite playable at the lowest graphics settings, so I left it alone – I don’t know for sure if the graphics settings were the trigger, but I really wasn’t up for determining the stability boundaries. And the game proved to be as excellent and as addictive as its predecessors. I stayed up far too late that night with my first game, and woke up early the next morning to finish the game; I then stayed up far too late Sunday night with my second game, and spent Monday morning finishing it.

As is common in its genre, it is addictive out of proportion to its quality. The gameplay is turn-based, and there’s always something little going on to pull you to play just one more turn. Also, there are never any large events – ends of levels, reaching a rare save point, etc. – to give you a push to stop playing. Fortunately, unlike some games in the genre, the gameplay really is excellent. And pushes some of my buttons – I really do like the whole city- / world-building thing, and exploring unknown territory.

So if you’ve never played any games in the series, do yourself a favor and go out and buy a copy: you’re in for a treat. If you have played other games in the series, you know what to expect; this one has more of the same, with a few tweaks (for the better).

Having said that, after spending a weekend playing it, I had a dilemma. On the one hand, I quite enjoyed the game, and would continue doing so for a few more plays. On the other hand, I’ve seen the ideas before, there are a few ways in which it’s not my complete fave, so staying up until midnight playing it isn’t the best idea.

If I could have continued playing it in moderation, I would have done so. But it’s not clear that I’m capable of doing so. So, for better or for worse, I didn’t play it last weekend, I didn’t play it this weekend, and Okami is about to come out, so I’ve decided to go cold turkey on the game. The upshot: it’s the best game that I’ve stopped playing after three days.

One way in which it isn’t the best fit for me: I don’t really enjoy games with its sort of combat model. I’m happy to play, say, turn-based strategy games, as long as I have complete information. But once concepts like fog of war get thrown into the mix, I don’t enjoy the combat nearly as much. In Civilization, you fairly early on reach situations where, in order to expand, you need to take over at least some of your neighbors’ territory. And you don’t really know what you’re up against; also, in general, you have to worry about your neighbors invading you, where you also don’t really know what you’re up against. I can deal with this sort of thing, it’s just not my fave.

Actually, what I really like about this game has nothing at all to do with combat: I like building cities, building an empire, developing land, researching technology, and the like. So maybe the lesson here is that I should spend more time with games that focus on that sort of thing: I should give the latest Sim City another look, or recent Harvest Moon games, or something. Hmm. We’ll see how Spore works for me, when it eventually comes out.