Tuesday, November 19, 2013

Adventures in Multistakeholderism

Having recently attended the Internet Governance Forum in Bali thanks to a fellowship from InternetNZ I have a few personal observations. According to the website the purpose of the IGF is to:
"support the United Nations Secretary-General in carrying out the mandate from the World Summit on the Information Society (WSIS) with regard to convening a new forum for multi-stakeholder policy dialogue".

The IGF was worth attending in terms of getting a much better understanding of the international processes which we're working within. I do think events like this should be getting a lot more attention from the general internet-based business community given how likely it is that the seeds of various policies that will define the future of the infrastructure we rely on are likely to occur there.

Learning Curve

There was a reasonably steep learning curve to productively participating in the IGF for a number of reasons:
  • A distinct flavour of UN language such as questions being “interventions”. Diplo helpfully put together a glossary part way through the event.
  • A heavily politicised environment that limits the public commentary on more controversial issues.
  • Difficulties with limited time and approach in question taking occasionally leads to hijacking by parties with very specific interests.
  • Streams of related workshops have been identified but there isn’t a great deal of coordination between them although there is a suggestion that attending the workshops in a stream may help seed the focus sessions.

The event was significantly more enjoyable once I got better at identifying sessions that would be in the right balance between new information and areas that I knew enough about to contribute to.

Multistakeholderism and Breadth of Engagement

Multistakeholderism is a word that, when googled for, mostly links back to the the IGF. That is lovely since it means they can more or less try and make up what it means; unfortunately it means there ends up being multiple workshops at the IGF dedicated to trying to work out what multistakeholderism means.

Essentially the term has been broken down into private sector, civil society (which may as well be titled miscellaneous), technical community, government, and academia. I went into the event expecting there to be significant issues in the civil society space in terms of representation and a lack of diversity. While this is an issue there are a number of organisations (particularly APC) waving the diversity flag actively at the IGF, so it’s less missed than underrepresented.

The perspective I did find to be mostly absent was the private sector outside of a few multinationals. This worries me significantly as a number of the workshops on topics like developing economies and international payments are of huge relevance to the SME sector and a number of the discussion topics had huge direct implications to it, particularly for web based businesses.

For instance, the Brazilian response to data sovereignty issues in terms of moving data regarding its citizens inside the resident country is expensive for multi-nationals to implement. However, for smaller companies, particularly those not based in already large markets, a requirement like this would make it impossible to reach a suitable level of income to support the kind of infrastructure that multi-market localised deployment would need.

Having said that, the breadth of who is already attending the IGF is one of the great things about it and really something it should be commended for.


Panels are the major kind of session run at the IGF. While the organisers do reiterate that the focus of the workshop sessions should really be on discussion and gaining the value of bringing everyone together in a multistakeholder environment, they often use up the majority of the time getting through initial presentations by the panellists.

Some of this is due to the political nature of the event leading to excessively large organising groups and hence excessive panels. Most of the sessions seemed to have outsized organising committees due to organisers suggesting merging similar proposals together. Anecdotally it seemed as though this led to a mixture of organisers compromising by putting both their preferred panellists on on a panel or some of the organisers dropping out or not showing up to their panels.

In general it seems likely that taking a more direct approach to selecting workshops might lead to more targeted talks. A more focussed session is generally more likely to get through an introductory talk and into a discussion than a broader one that needs to outline a significant body of background material. There was also some commentary about the time between session submission and the event leading to issues having moved past the brief that had been submitted. Giving submitters more of an opportunity to update their topics closer to the time would hopefully avoid some of this and should need only moderate oversight for abuse.

While the overall event itself may not need to have outputs in the way of recommendations or conclusions, the structure of discussions will be significantly improved if the workshops have a clearer idea of which particular issues or controversies they think a discussion should revolve around.

The Whitespace

A good portion of the event is happening in the whitespace. There was a very steady stream of people wandering off in small groups to discuss policy and positions out of the way of cameras and streams. Some of this is a matter of it taking time for a new attendee to become recognised by the regulars and engaged with. On the other hand, it’s an interesting commentary on the surveillance issues that so many people were keeping their opinions out of the rooms that were recording.

I found I was only just starting to be well enough recognised by attendees to get into good conversations towards the end of the event. Which is probably another effect of the learning curve that’s present.

Ongoing Value

Bringing the right people together and the discussion that does happen at the IGF is valuable, but there is room for improvement. Relationships are generally considered to be better if partners communicate actively with each other and confront issues directly. Of course, relationships are also generally considered healthier when they don’t include a jealous partner tapping your phone.

Tuesday, January 15, 2013

Goals for 2013

  • Continue growing Rabid - I've got some targets in mind for this, I think we should see some pretty strong growth but I'm not absolutely sure what that will look like. It's also going to be the time that some of our hires are in more varied roles than we have so far, some of which I have less knowledge of how to hire for. 
  • Have at least one 20% time project properly see the light of day. Really want to get one of the 20% time projects out into the wild and generating revenue. Doesn't need to be a huge amount, just enough prove that we can develop end to end products in our own right.
  • Read 80 books - Less than I set myself last year but probably closer to a good number to balance reading and working.
  • Get IMDB top 250 movies remaining under 25 - I'm making good progress through this list, but starting to get to the point where churn in the list is making it difficult to finish. At some point I'll have to watch everything that remains in one big run to stop more stuff popping up. Probably still a year off that though.
  • Visit at least 1 new country - This will be here every year from now on.
  • Take some circus classes - They look ridiculously fun and like an interesting change of pace. Probably be suitable as my random extra-curricular for some of the year.
  • Be Less Sick - I've lost far too much time in the last year to various relatively minor illnesses. Avoiding that will free up quite a bit of time that I can put to better use.
  • Generally Improve Fitness - Follows from the previous point. In general my fitness level needs to increase. By the end of the year I shouldn't end up completely exhausted by a pickup game of soccer.
  • Grow attendance at Railscamp NZ - Sales are going well. We should have a bigger turnout this year. I shall be disappointed if we don't.
  • Speak at a larger event than I have previously spoken at. This means something with more than 300 people in attendance. I suspect this goal will require travelling.
  • Hire some female developers - I'm disappointed in our failure to achieve this so far, but I'm sure we will eventually.

Friday, January 4, 2013

Achievements and Failures 2012


  • Rabid - At the beginning of the year I was intending to do a mix of working on product startups and consulting again to follow on from what seemed like a good base of that kind of work in the previous year. Instead March found a number of opportunities sliding into place to start growing Rabid as a slightly more traditional consulting company with an eye towards releasing products in the longer term. 
  • Employing people and Building a culture - Employing people turns out to be far more terrifying than a realised, particularly for the first few people where each person is a huge increase in fixed outgoings each month. We have the beginnings an excellent team at Rabid which will be the seed that allows an amazing culture to blossom.
  • 75 books read - I good mixture of classic fiction, reputable business books, interesting non-fiction  and trashy fun reads. Some of the highlights included: finally getting around to reading a bunch of very good sci-fi like Vonnegut and Haldeman, thinking fast and slow, and the essential Drucker.
  • Study - I enrolled in a couple of post grad papers in February before I ended up with Rabid requiring large quantities of time and energy. I managed to make it through them with decent marks but it added a lot of stress that I probably didn't need.
  • Mostly maintained a steady but manageable stream of work - We only had one piece of work that ended up running to overtime for a few days this year. While I'd prefer to manage projects well enough for there to be no overtime I do think it's a pretty good result in comparison to what the norm seems to be elsewhere.
  • 3 new countries visited  - Thailand, Cambodia and Vietnam. I like both the weather and the affordability of South-East Asia and could easily spend extended periods of time here. 
  • Improv - I did a decent amount of improv training and some public performance. I think it was hugely helpful both in improving my presentation ability but also with helping create safe spaces for risk free innovation. One of the first things you do in any Improv group is learn to fail happily  in front of each other. I suspect that will also be key for developing an appropriate culture of innovation at Rabid.


  • Illness - I was sick far too much this year. Mostly relatively minor but recurring issues, with one hospital stay towards the end of the year. It made the year significantly more stressful than it needed to me. A lot of my goals for the coming year relate to avoiding a repeat performance.
  • Speaking - I only did a little speaking this year. Mostly on the topic of negotiation tactics. I intended to do more but it was never quite high enough up the priority list.
  • Writing - I failed at blogging regularly and didn't complete nanowrimo for the first time since 2007. Admittedly I did have a reasonable amount of morphine in my system at the time when I should have been finishing it.
  • 59 movies remaining on the IMDB list - I said I'd get this down to under 50 but I underestimated the amount of movement towards the end of the list. I suspect I'll probably have to watch another 90 movies to actually have the list properly conquered.

Tuesday, May 29, 2012

Dealing with Wrist Pain

Towards the end of 2010 my hands and arms started aching whenever I worked on the computer for more than a few minutes at a time. After a particularly full on November featuring some work deadlines and Nanowrimo it was bad enough that I was dreading typing. My work reflected this and my output of code and writing decreased dramatically.

Even when I felt like the pain wasn't that bad it was easy to see that I wasn't working as consistently or for as long periods of time as I had been previously. This is a particularly bad position to be in for programming considering how much time I actually need to work uninterrupted to have a chance of getting into a state of flow.

So I set out to try and fix the problem in the usual fashion of trying things until something worked and being entirely too stubborn to visit a professional.

First Change: Advantage Kinesis Keyboard

My first big change was moving to the kinesis keyboard. I'd heard good things about it and figured the change would help. Of course it was an effort to learn how to use a different keyboard layout. 

In the end it took a couple of months to get back to my usual typing speed with it, the first week was particularly hellish. Learning a new keyboard had some side affects though, in particular I seemed to have slightly higher accuracy when I type on it than other keyboards, I suspect this is because of the key layout enforcing some more disciplined typing on me.

I find the kinesis particularly enjoyable to type on, due to the comfortable form and high quality keys. The presence of macros turned out be unexpectedly useful, I didn't expect to like them as much as I do but having key combinations for common bits of code is excellent.

The kinesis did improve my hands a bit, but in the end it turned out to be a long way from a cure. After a few months I moved onto the next project, one that I regret not having started off at the same time as moving to Kinesis.

Second Change: Dvorak

The next change I tried was moving to Dvorak.  I wish I'd done this at the same time I moved to the kinesis I expect it wouldn't have extended learning time too much. As it was I spent a while thinking the new keyboard and better posture was enough until an intense period of work left me in significant pain again.

Learning Dvorak took significantly longer than moving to the kinesis in terms of regaining my typing speed, although I found I was able to touch type again in the sense that I had a working mental map of which key was which quite early on. Being able to hold conversations online again(~40wpm) took a week or so, but actually getting back to being a decently fast typist was closer to 4 months.

I've also found that the move to Dvorak means I can no longer use qwerty, while I can still type fine on non kinesis keyboards.

Like the move to the Kinesis, changing to Dvorak improved matters a bit but wasn't enough. Particularly when it came to wanting to write longer pieces. 

Third Change: Voice Recognition

Another batch of work left me in pain and with Nanowrimo coming up again I needed something that would support writing large amounts over short periods of time. 

I'd tried Dragon: Naturally Speaking a few years ago and it had fallen over on my accent. I decided to give it another shot though and it turned out to have come a long way in the last couple of editions. 

It required a silent room and a decent microphone to work decently. But once I'd spent a couple of hours teaching it my speech it was able to recognize the vast majority of what I was saying and at speeds far beyond anything I've ever been capable of typing. It also had an interesting side-effect in that the "writing" I produced with it had a much more conversational tone than most of my other writing does. 

The biggest issues were that it didn't have certain words in its dictionary, finding the requisite quietness and dealing with the higher amount of editing required to catch small errors. Mostly these were manageable but it meant I had limited periods when I could get the ongoing privacy necessary. There were particularly irritating moments when someone started saying something to me and my laptop froze up trying to process all the input that was suddenly coming in.

Voice recognition has come a long way and I can recommend it for longer form writing; however, I hadn't managed to use it with any great success for coding or technical work, so another solution was needed.

Fourth Change: Rob

Rob ended up being the best answer to actually giving me the ability to not type at all for three months or so, actually letting some of the damage I've done to my hands heal. He was an experienced developer who wanted to learn Rails. This meant I could pay him a modest amount in exchange for me teaching him about Rails while he did all my typing. 

In essence, it was a training style pair programming arrangement with me always navigating. It turned out to be an excellent fit for both of us. Rob learned a lot about Rails in a short period of time and we had most of the focus and problem solving benefits that come from pair programming as well. 

After three months of us traipsing around cafes and coding together Rob had learned enough that I hired him as a full time developer and my hands had healed enough to be able to type reasonably comfortably again. Possibly the best win-win working arrangement I've managed to create. 

If my hands ever start to bother me too badly again then I'll go straight to finding a new Rob.

Wednesday, May 16, 2012

The Benefits of a Unique Company Culture

There is a steady supply of people writing blog posts about how their unique working environment means they're hiring "A players" because of some combination of the following:

  • They only have a four day work week
  • They have a high intensity startup environment with exciting work
  • Everyone has stock
  • Everyone has a profit share
  • 20% Time
  • An onsite chef
  • Everyone works from home
  • The company loves open source and employees spend their spare time writing more of it
  • Fussball Table
  • Table Tennis Table
  • The office is made anime figurines glued together to form a protective structure
  • A masseuse
  • Some kind of famous person
  • Anything else someone has thought might be cool
It's great that these kind of benefits are being offered to employees. There's no doubt that these kind of benefits help employees feel that they're being valued. In many cases benefits like this will have a better payoff in motivation and happiness than a similar cash increase would. 

The problem with how these benefits are presented is that some companies have convinced themselves that their particular combination of benefits is going to lead to significantly happier and better employees than other companies have. They proceed to spread their new formula as hiring gospel, but this isn't an optimal approach to finding the best people for your company.

In the job market each potential benefit will be valued differently by different potential employees - some people love having a masseuse and others don't like to be touched.  That's a good, employers are dealing with the a market for employees and actually benefit from differentiating themselves. A niche offering appeals to those in a niche, you can get employees more affordably if their wants match a particular set of unique offerings than if you simply compete on price. 

Some of the benefits that could be offered are in opposition to each other and most organisations will only have the resources to select a few anyway. Instead of adopting whatever the latest fad in benefits is, a benefit package needs to be carefully crafted to target the particular people that the company wants to attract.

If a companies' benefits target the particular type of individuals the company wants to attract, for instance 20% time is a better benefit for attracting open source developers, then they'll act as a filter if you make it clear that the company values people who value these kinds of benefits. Over time the employee base will end up being those people who value the particular configuration offered by the company[1].

Many people like to talk about hiring A players, but A players aren't a static category. Potential A players generally have particular areas to which they're most suited. An A player in a bank is someone who can deal with massive system complexity and produce very high reliability software; An A player in a startup is someone that can deliver quickly on a wide array of potential changes in a short time frame. The best bank employee might be an experienced developer who would like evenings to spend with their kids and a decent set of health care benefits while the best startup employee might be more on the lookout for how many ways you can get stimulants into their bloodstream.

Instead of setting out to evangelize their set of benefits to other companies more companies should encourage a wide array of benefits and differentiation amongst companies. The worst outcome for a company would be to convince many employers in an area to adopt the same style as themselves.

This illusion of A Players all being recruited by a company's own special set of benefits is the cause of all the blog posts by different companies in the same area espousing completely different views on attracting A players. One company busily states that they only hire people with a certain level of passion to pour into the product while the other insists they get the best results by working four days a week and relaxing. If you're seeing both their blog posts then both companies are probably successful and both believe they've found the secret sauce to getting the best people. In reality, both are right. They just don't realize that they aren't competing on the same factors for new employees.

1. Behavioural psychology shows people will come to be unwilling to take offers that cause them to lose benefits they already have.

Wednesday, January 4, 2012

Goals for 2012

A short collection of my goals for 2012 - publicity helps with these things.

  • Visit at least one new country(I meant to make it somewhere else last year, instead I ended up in Australia again.)
  • Renew Certified Scrum Practitioner certificate. Not really sure how much I value it, but it's cheap to renew and I'd like to try their shiny new test so I can have an opinion on it.
  • Deal with my wrist related issues better. Got a few solutions for this, my current favorite is getting junior devs to write code while I sit with them and teach/dictate, this is great for my hands and also seems to work well for getting people up to speed quickly.
  • More speaking and on more varied topics. I enjoy speaking so I shall do more of it and I need te break out of always doing tech focussed topics as what I do has become so much broader than that in the last couple of years.
  • Read more books. I have a few target areas here: Finishing off the main business books that I still have to read, progressing my broader knowledge( particularly more science related reading this year I think), a decent amount of tech reading, more good fiction and less trashy fiction.
  • Write More and regularly. My girlfriend has set out to do 500 words a day, I hope to match her totals but probably won't achieve the same regularity she will. Hopefully get up to at least five days a week though. Writing is something I'd like to develop into being more of a small regular habit than something I work at in bursts.
  • Get down to less than 50 Films to go on the IMDB top 250. I've got 93 to go now and watched just under 50 last year so I basically have two years left before I've finished watching the majority of the films that are really good in the generally watched realm. It does miss a bunch of really good films that have only achieved smaller audiences, but in general it feels like an enriching experience and makes me appreciate all film a lot more. In the same way as you have te read quite a bit of classic literature before it all starts coming together and being enjoyable.
  • Learn Clojure, I've always liked lisp and clojure is threatening to actually be moderately successful in the wider world.
  • Automate more things. Both small tasks in my day to day life and business related stuff, there are things I do too often and haven't got around to automating. I want to find at least 6 tasks that I do regularly that I can make more automated. This could mean anything from automating basic new site setup to getting a better system for handling my expenses. 
  • Get some traction for at least one of the startups I'm involved in. Got few things in the pipeline and a couple of projects that are succeeding on the marketing front so long as the product arrives when it's looking like it should.

Tuesday, January 3, 2012

Some of My Achievements and Failures in 2011


  • Railscamp. Organising Railscamp took up quite a bit of time at the beginning of this year but it was worth it. Even better is that there are now lots of people in NZ wanting to help organise future ones. Including the one in Canterbury next month.
  • Speaking. I spoke at various events covering everything from clouds and python to rails and node.js. It's been interesting making it to such different and I'm looking forward to further broadening what I attend and speak at in the coming year.
  • Broadened my end to end business skills. By happenstance I took a couple of decently-sized projects right through from business development to final delivery. It's a lot of work but a really interesting experience to be able to manage client expectations through the entire process rather than building up a more piecemeal client relationship. Not a particularly scalable approach, but I enjoyed doing it and think I learned a lot about some of the areas of project leadership that I hadn't touched so much previously.
  • Read some books that have been on my list for a while. 71 books in total with some great reads like Poor Economics and Bargaining for Advantage as well as some of the more serious books that took a long time to get through like Godel, Escher, Bach, and the Decline and Fall of the Roman Empire. My rato of non-fiction to fiction was a lot higher this year, mostly as I did a few big dives into topics that have plenty of easy to read books in them like negotiation practices or the broader coding styles books. 
  • Helped out and collected equity in various different startups. Involved myself in a number of various startups that are now in various states. In the end I came away with interests in four of them of which two are showing some level of growth. There was much learning to be had from this involvement and if any of them actually succeed it'll pay off well as well. Regardless, I'm happy for the experience and look forward to applying it to some other upcoming projects.
  • Completed the stanford AI Class online course in the advanced track. Didn't put as much time into this as it deserved but I completed it and it reminded me how cool a lot of the more hardcore CS stuff is.
  • Decent load of writing for Nanowrimo. Nanowrimo went pretty well this year as I started using dragon dictate to avoid the dangers of typing 50000 words in a month again. Not sure what I'll do with what I've written but will definitely spend the time to tidy it up.
  • Improvisation - Ended up doing an improvisation course towards the end of the year and it turned out to be one of the highlights. I'll blog on it specifically sometime soon.
  • Watched lots of really good films. I watched over 40 films from the IMDB top 250 films list as well as spending a lot of time at film festivals. I'm really enjoying watching good films, especially when the list forces me to watch things I otherwise might not. Many of the old films on the list are marvelous and there are some genres I hadn't watched that turned out to be excellent when viewing the best of them. Of particular surprise to me was how much I enjoyed most of the westerns on the list.
  • Switched to dvorak. Switching to dvorak took slightly longer than I thought it would but it's going to pay off over time.


  • Blogging. I didn't blog as much as I said I would. I hope to do better this year.
  • RSI. I haven't dealt with the pain in my wrist as well as I should have, doing a slightly better job of things now though.
  • Startups that didn't fly. Some of the startups I was involved in didn't go as well as they should have. To some degree this is expected with startups, but I'd still like them to be more sucessful. I'm starting to lean towards being more process oriented with them from the get go. The biggest issue I've seen cropping up in the ones that fail is expectation management and people thinking the path to product should be much shorter than it actually turns out to be. I either need to get better at holding these ones together or at identifying that issues are present and stopping investing time sooner. 
  • Failed to Travel anywhere new. I made it to Aussie a couple of times at least, but that's not very exciting.