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.