Scrumming

So now I’m a Cer­ti­fied Scrum Mas­ter, or at least I will be once the paper­work is sub­mit­ted and checked. Right now it’s a fairly pain­less pro­cess, you show up to a sem­in­ar, take part in an act­ive way, and emerge at the end cer­ti­fied by the instruct­or. In a few months people will have to do an exam as well, which may or may not be an improve­ment in prac­tic­al terms.

The two-day course was intense and I was glad I’d read up on Scrum first. The book I read was Ken Schwaber­’s Agile Pro­ject Man­age­ment with Scrum; the one recom­men­ded in class (run by Danube’s Jimi Fos­dick) was his Agile Soft­ware Devel­op­ment with Scrum. After a brief intro­duc­tion to the prin­ciples of scrum, we went to work on an immer­sion assign­ment using those prin­ciples. The energy level was high giv­en the com­pressed time frames, all the teams came up with some­thing worth­while, and I for one left with a reas­on­able under­stand­ing of how scrum works when it’s in an ideal setting. 

Which, of course, is the issue. Scrum is not a sil­ver bul­let, and won’t make up for prob­lems in the organ­isa­tion. Mr Fos­dick was care­ful to point out that imple­ment­ing scrum is risky, it tends to uncov­er prob­lems in the organ­isa­tion, and it often fails to give the res­ults com­pan­ies want for those reasons.

On the pos­it­ive side, the Scrum Mas­ter role is very sim­il­ar to what I’ve always under­stood the role of the pro­ject man­ager to be — keep the team mov­ing, get rid of obstacles for them, keep med­dling man­agers or sales people out of the way. It form­al­ises those aspects of the role, and I like the idea of the sprint being a defined length of time, so you can always say to a man­ager or sales per­son that their import­ant item will be taken into account at the next pri­or­ity-set­ting meet­ing on a defined date. One issue that came up in the dis­cus­sions was wheth­er the Scrum Mas­ter should also be a pro­gram­mer. Mr Fos­dick­’s opin­ion was that no, in prac­tice a team with a ded­ic­ated Scrum Mas­ter is, as a whole, much more effect­ive than a team with a Scrum Mas­ter who also codes. The main reas­on­ing was that the Scrum Mas­ter who does­n’t code con­cen­trates on get­ting imped­i­ments out of the way of the team, keep­ing track of pro­gress, and think­ing of ways in which the team per­form­ance can be improved while the Scrum Mas­ter who codes is also think­ing about the code to be writ­ten, how much s/he can com­mit to doing on any giv­en day, etc. This makes sense to me, though I know a lot of com­pan­ies who insist on the pro­ject man­ager also being one of (per­haps the lead) developer on the team. If that con­fla­tion of roles works, there’s no reas­on to change it. If it does­n’t, it’s some­thing to think about. I know in my work as a pro­ject man­ager, I’ve always found there is lots to do without also being respons­ible for deliv­er­ing qual­ity code as well. 

Cloudy Ideas

Many people out­side the knit­ting world prob­ably don’t think about the fact that knit­ters have con­fer­ences too, where they register for classes taught by fam­ous people at some ven­ue. Recently a fam­ous knit­ter (Stephanie Pearl-McPhee, aka Yarnhar­lot) organ­ised such an event. I think she got some bad advice from her IT people, who­ever they were, about what would be required to run the online regis­tra­tion system.

To be fair, the IT people thought the organ­isers were being optim­ist­ic about how many people would show up. I’m going to sum­mar­ise the sali­ent num­bers; if you want more details, read the blog post. With 12000 on the mail­ing list, they figured 5000 people was the num­ber to expect, com­pet­ing for about 4000 spots. The organ­isers “built a huge serv­er and a pretty good sys­tem” for those expec­ted 5000 people. In the event, they had over 30,000 sim­ul­tan­eous con­nec­tions, and the serv­er could­n’t handle it.

It seems to me that these require­ments are pre­cisely what cloud com­put­ing should be able to handle. For this par­tic­u­lar event, it was pos­sible that only 1000 people would try to register at once, or that lots more would. The load could have been spread over a couple of months if the con­fer­ence seats sold slowly, or over an hour if they sold fast. Buy­ing a serv­er big enough to handle the max­im­um expec­ted in this actu­al case res­ul­ted in a serv­er and sys­tem that were too small; it could have also happened that money was wasted on some­thing that was far too power­ful for what was needed.

What I’d like to know is how, in gen­er­al terms, should such a sys­tem be archi­tec­ted? If you were using this as a case study on how to do cloud com­put­ing, what would you pro­pose? Some more require­ments: People can register for more than one class. Class sizes are lim­ited, and the size depends on the class. The sys­tem has to include an online pay­ment system.

I’m not look­ing for lots of details, just a broad-brush out­line of a para­graph or two, like “put X on one vir­tu­al serv­er that can scale up, and Y on anoth­er”. My per­son­al exper­i­ence so far of “the cloud” has been for stor­age rather than these sorts of sys­tems, and this use case has intrigued me.

It’s Been a Long Time

Since I pos­ted any­thing, I mean. Which does­n’t mean I haven’t been doing things, just that I’ve spent more time think­ing and doing and talk­ing than writ­ing and describing.

The garden is look­ing bet­ter after the rel­at­ive neg­lect of the past couple of years, although there’s lots more to do, as always (the weeds have more time to grow than I have to weed). I’m Course Dir­ect­or for the XML Sum­mer School, which means work­ing with the mem­bers of the Fac­ulty Board for the courses they’re chair­ing and fig­ur­ing out who should speak, and on what, for the two courses I’m chair­ing, as well as tak­ing care of the oth­er myri­ad details that go with any event. I’ve met with people in Van­couver for knit­ting after­noons, and lunches talk­ing about dis­trib­uted pro­ject man­age­ment, and figured out that right now con­sult­ing and con­tract work in pro­ject man­age­ment looks to be the right thing for me to con­cen­trate on (pro­ject man­age­ment being a broad term that cov­ers a myri­ad of pos­sib­il­it­ies). I’m even read­ing up on some of the form­al­isms for pro­ject man­age­ment. I did basic pro­ject man­age­ment train­ing early in my career, but I’ve mostly done what seemed to me to be the right thing without using Gantt charts and form­al resource alloc­a­tion. Mostly it worked out pretty well, but some of the form­al­isms such as Scrum look inter­est­ing. I’ll post some of my thoughts on those later, along with thoughts on dis­trib­uted pro­ject management.

Summer of XML

One of my cur­rent pro­jects is as Course Dir­ect­or for the revamped XML Sum­mer School in Oxford, Eng­land. John Chel­som asked me to help out and I was only too happy to say yes; I have many fond memor­ies from pre­vi­ous years. It will be more a late-sum­mer school this year, being from Septem­ber 20–25, but that does free up more of the sum­mer prop­er for oth­er things, not to men­tion giv­ing us more time to fig­ure out the sched­ule and speakers. 

Anoth­er advant­age of late sum­mer for the XML Sum­mer School is that it does­n’t clash with Bal­is­age in Mon­tréal, Canada, which is on August 11–14 (with the sym­posi­um on pro­cessing XML effi­ciently on the 10th). Papers for that are due on April 24, so you don’t have much time to get them in if you’re plan­ning on speak­ing. Any markup-related top­ic is wel­come, as long as it is of suf­fi­cient qual­ity and depth.

It’s inter­est­ing com­par­ing the two — Bal­is­age is a geek’s con­fer­ence, unapo­lo­get­ic­ally aimed at people who are think deeply about the issues, even if they’re not apply­ing them at work. The XML Sum­mer School is more like train­ing, aimed at less expert prac­ti­tion­ers of and new­comers to XML, and more likely to be atten­ded by people who want to go back to work the next week and apply what they’ve learned dir­ectly. A few of the speak­ers are the same, of course, and the dis­cus­sions over din­ner tend to veer in some of the same directions. 

And, of course, both con­fer­ences are on Twit­ter; Bal­is­age at http://twitter.com/Balisage and the XML Sum­mer School at http://twitter.com/xmlsummerschool.

DVDs and Regions

I admit to find­ing it amus­ing that Barack Obama’s gift to Gor­don Brown of 25 clas­sic Amer­ic­an movies ended up illus­trat­ing one of my hot but­tons — Mr. Brown could­n’t watch the Region 1‑encoded DVDs on his Region 2 play­er. Here’s Tech­Dirt’s take on the story (link from Volk­er Weber).

I have been in many dis­cus­sions with wet-behind-the-ears idi­ots in con­sumer elec­tron­ics stores who par­rot the Hol­ly­wood line that region-encod­ing is just fine and reas­on­able. Ask­ing them why send­ing DVDs from the US to Europe is bad and should be stopped meets with a “huh?” answer. Ask­ing them why my tod­dler should not be able to watch DVDs sent to us from friends in Aus­tralia eli­cits more of the same. 

Even­tu­ally we bought a DVD play­er that plays from oth­er regions as well, mak­ing it pos­sible for me to buy Ger­man-lan­guage DVDs suit­able for my chil­dren (not easy to find in Region 1 encod­ing). To my mind, the fact that the regions were set up to put Mex­ico in with Aus­tralia and New Zea­l­and shows how non­sensic­al the whole concept is. I really don’t under­stand why so many DVD man­u­fac­tur­ers auto­mat­ic­ally region-encoded the DVDs rather than mak­ing them region-free, and I’m pleased to see that even though Blu-Ray repeats the whole region idiocy, many man­u­fac­tur­ers are in fact mak­ing their Blu-Ray discs region-free.

I assume at least part of that response is due to the wide avail­ab­il­ity of DVD play­ers that don’t worry about regions, and the avail­ab­il­ity of instruc­tions to mod oth­er DVD play­ers. There’s an inter­est­ing write-up of the law case against Sony in Aus­tralia as well, which points out that “retail­ers of DVD play­ers are not bound by the terms of the CSS licence and the accom­pa­ny­ing tech­nic­al specifications”. 

This whole thing is one of the reas­ons I was so con­cerned about the copy­right legis­la­tion Canada’s Con­ser­vat­ive gov­ern­ment was try­ing to have passed last year. It cur­rently seems to be stalled, so I can show my kids their Ger­man-lan­guage DVDs, and DVDs from Aus­tralia, with a clear con­science a while longer.

OpenSolaris and ddclient

I have some minor sites run­ning on the base­ment OpenSol­ar­is box, and since our IP address changes reg­u­larly, I use ddcli­ent to noti­fy DynDNS of the changes. It was work­ing just fine on the old Debi­an box, but of course OpenSol­ar­is does things dif­fer­ently, and the ddcli­ent pack­age does­n’t come with all the bits you need to make it work.

Step one: down­load the ddcli­ent pack­age from Source­forge, and fol­low the instruc­tions in the README as to where to install it. Easy enough, done.

Step two: go to the DynDNS site, log in to the account, go to the Sup­port Tools sec­tion of the web­site, and click on the “Update Cli­ent Con­fig­ur­at­or”. This takes you to a page that will auto­mat­ic­ally gen­er­ate the con­fig­ur­a­tion file for ddcli­ent for your account. This is one of the reas­ons I like DynDNS, by the way, they think of little use­ful tools like this. 

Step three: make the con­fig­ur­a­tion changes in the ddclient.conf file, and try run­ning the ddcli­ent Perl script to see if it works, using ddclient -daemon=0 -debug -verbose -noquiet to get all the error mes­sages. One tip: if you have spaces in your pass­word, sur­round it with single quotes, not double quotes. The lat­ter don’t work.

Step four: the hard­est for someone new to OpenSol­ar­is is to fig­ure out how to run the dae­mon. It turns out that Sol­ar­is has a “Ser­vices Man­age­ment Facil­ity” (SMF). The spe­cif­ic instruc­tions to fol­low, once you’ve figured out the basic con­cepts, are at Chris Ger­hard’s ddcli­ent meets SMF. Mind you, I did need to read the doc­u­ment­a­tion on Man­aging Ser­vices to find out where to put the file (/var/svc/manifest). Just as well Sun lets lots of people blog, it cer­tainly makes it easi­er to find inform­a­tion. I do wish they could fig­ure out how to give their stand­ard doc­u­ment­a­tion mem­or­able URIs though.

Now I just have to wait until our loc­al IP address changes to see if it works. [Update: yup, it works.]