The intersection of technology and leadership

Category: Conferences (Page 3 of 7)

Thoughts from Øredev 2011

Keynote 1: Alexis Ohanian

The first keynote titled, “Only your mom wants to use your website” came from Alexis Ohanian, a geek who helped create Reddit, Hipmunk and a few other sites. He’s passionate about users and you can really see how that manifests itself and very appropriate for a conference with a theme of Userverse. He told the audience, “As geeks, we’re at an advantage. There are so many bad websites out there so if you focus on creating an awesome experience, it’s very easy to compete.” It just came back to treating your customers and really delighting your customers.

He uses some really great examples about how he engaged users with a couple of his websites. For example, with Reddit, there’s the mascot in the top hand corner of the page and talks about doing a 30-day animation series that really connected with dedicated reddit users who were so concerned when, during one the days, the mascot went missing and they emailed in constantly to find out where he went.

With hipmunk, he recounts the story of personally stuffing envelopes with handmand hipmunk travel stuff to send off to some of his users. For no good reason other than to surprise them. In return, people sent photos of the hipmunk in all sorts of places and travelling around. It’s the little things that really delight.

Keynote 2: Neal Ford

Neal’s a really awesome speaker and would highly recommend any technical person to watch his very strong presentations. Fortunately it looks like JFokus just published the same speech Neal gave at Øredev so you can see. The focus of his topic was really about Abstraction Distractions and is a really important key message for us technical folks. It also really relates well to this XKCD comic.

The whole premise about his talk is that users don’t really want to hear the techncial reasons why something does or doesn’t work. You have to make them undersatnd the impact of what it has. He seeds the presentations with lots of pro-tips including things like, “Don’t confuse the abstraction with the real thing” giving the example of wanting to store a recipe and concerned about how to store a recipe that will last many technologies, that even its representation isn’t quite the same thing as the recipe itself.

The ImageThink graphic facilitators had trouble keeping up with the pace that Neal speaks at. He’s definitely the sort of high energy, many idea kind of guys.

Keynote 3: Dan North

Dan is a great an entertaining speaker than everyone really enjoys. He spoke on “Embracing Uncertainty – the Hardest Pattern of All.” I guess a lot of his entertaining anecdotes and stories were really focused around our human bias for closure.

Keynote 4: Jeff Atwood

I’m glad to hear Jeff present this keynote, “Social Software for the Anti-Social Part II: Electric Boogaloo” as he handed over one of his speaking slots to an employee of his in a talk on a previous day that turned out to be a bit of a disappointment for many people. His keynote carried on from a previous talk, carrying on with lots of lessons learned, particularly about how they built Stackoverflow with game mechanics in mind.

It’ll probably be online soon, but it’s one definitely worth watching as it’s an interesting balance between democracy, openness yet some directing behaviour thrown in.

About the conference

I’m constantly impressed by the organisation and the the quality of the conference. I’m really surprised it doesn’t attract more people from Europe and what I call, a little bit of a hidden gem. It has some really wonderful speakers, great topics and the venue itself is pretty good (although there’s poor noise isolation between the different rooms). There’s plenty of interesting events in the evenings and a great place to chat to people both during and after the conference, although I think the “unofficial” Øredev pub needs to grow a bit to accomodate so many geeks.

Other talks of significance

I went to quite a number of talks but will write up some of the more interesting ones (for me).

  • Copenhagen Suborbitals – This was a bit of a surprise talk. It was very late in the day, ending almost at about 9pm or 10pm and was a guy based in Copenhagen who’s attempting to build his own spaceship to launch him into suborbital. It’s a really amazing tale and one I can appreciate for a guy who’s serious about following his passion. The talk started off quite entertainingly about how building a spaceship was a bit ambitious, so he started off by building a submarine! He’s a really engaging speaker and I don’t want to ruin too many of his good stories. I suggest going over to his blog (he’s still building his spaceship) and seeing where he is. He relies on donations to keep this project running and I love the fact it’s such an open-source project as well with people offering their advice and expertise in many different areas. He’s got lots of great lessons to share that are completely relevant to everyone.
  • Aaron Parecki on his startup story for Geoloqi – I listened to this guy talk about his startup, and similarly along the same lines at the Orbitals, he told the tale of what started off as a hobby eventually turned into a real startup opportunity and shared a lot of his lessons along the way. It’s an interesting start up that you can read more about on gizmodo here
  • Jeff Patton – Jeff had a great session introducing people to the UX stage and trying to set the stage for lots of the other speakers. Jeff has a wealth of wisdom and experience to share and what was really powerful was him sharing images and stories about the different roles and techniques people use to build useful software and integrating it into agile processes. Really powerful stuff that I think every developer should really go through.

Reflections on my talk
Titled, “Collaboration by better understanding yourself”, I presented on the idea that we have lots of in built reactions as developers that really hold us back from collaborating more effectively. My goal was for people to go away, thinking more about the things that effect them and why they don’t collaborate as much as they should. I got some great feedback and was particularly nervous because not only did I have a good number of people but I had many other presenters I really respected in attendance including Portia Tung, Doc List, Johanna Rothman, Jean Tabaka, Jim Benson and more.

Although I’d practiced, there’s a few more tweaks I would make to this, but was very happy with some of the people who came up to me throughout the conference who felt that they really connected to the topic and felt really enthused to do something about it. Exactly what I wanted. 🙂

Converting Code to Images

I needed to convert some code into an image for a presentation recently and found a number of different ways of doing so. The easiest, of course, is when you take a screen capture of the code in your IDE. This fails when your code goes well past the side of your screen and you still want to show it all.

Alternatively, you can do this in a two step process.

  • Save the code to HTML – I know that both IntelliJ and NetBeans allow you to do this for Java code.
  • Use webkit to save to an image – I used PhantomJS for doing this. Take a look at the example code of how to do this.

Leave a comment if you’ve had any other good experiences doing this. I’d be interested in other ways that have worked for you.

Reflecting on Agile 2011

This US-based series of conferences are quite different from the XP20xx series I normally attend. I last spoke at, and hence attended the 2009 one held in Chicago. The related Grand and Little America Hotels hosted this year’s conference in Salt Lake City turning into a pretty good host for the 1600+ registrants that descended upon Utah.

I think it worked very well as a conference venue because people spent more time at the venue than at surrounding attractions and the small but wide corridors and spaces helped make it feel more conversational than faceless crowd.

General Thoughts
An impressive eighteen concurrent track ran almost entirely throughout the five day period offering many choices for all types of participants from novice to experts. Like 2009, I found that there weren’t that many sessions that really provoked new thoughts, challenges, or entirely new areas to explore yet I enjoyed meeting many old friends and meeting many new ones as well.

Highlights for me included the initial keynote, sitting in a systems thinking session and the general vibe of the conference. I particularly liked the fact many new things were tried (experimentation and willing to fail all part of this) such as the “Dinner with a stranger” program or the way “Park Bench” setting in the very popular Open Jam space.

The rest of summaries of some of the sessions that I attended.

First day keynote, “Why Care About Positive Emotions?”
Interestingly many people, including myself were a bit taken aback when Dr Barbara Fredrickson first took the stage. Introduced as an academic and taking a softer style, I wasn’t quite sure how she was going to be as a keynote speaker, however both the topic and relevance to the way that we work really made a huge impact and I came away really enjoying it.

Fredrickson talked about why we should care about positive emotions, particularly in the way that we work and commented on the succinct yet ever-relevant Agile Manifesto over their more verbose one. She focused on two key facts about positive emotions:

  1. Positive emotions open us
  2. Positive emotions transform us

What the research indicates is that it creates more possibilities, more creativity, more resilience, and better performance. She also notes about the fairly well known ratio of 3 positive events to outweigh 1 negative event (and more is good) however in a very balanced statement pointed out that we also equally need negative events. Taking the “be positive” saying as an edict is not only harmful to the heart, but it masks negative emotion and produces insincere positivity.

I liked the way that she presented it as thinking about “nutritional value” and thinking about whether or not we’re meeting our daily doses closing with the advice of “creating the mindset for positivity”, not just pretending to have it.

One thing I plan on trying for the next two weeks is starting my day with a “Morning Appreciation” to reflect on what positive things I already have in my life.

Ron and Chet’s Lessons Learned
I dropped into Ron and Chet very raw and honest look at what they recommended as part of XP, and what they would change. I liked the way that they looked at some of the ways people took some of their recommended methods in XP and how they would modify it now understanding the passage of time.

Practices and principles they would still keep included frequent releases, simplicity, solid technical practices, reality based management and cross functional teams. The things they would revisit included the estimation and planning process (using points and velocity for planning) because it didn’t change people’s mindsets – only worked to satisfy people’s questions “when would it be done” and that “agile” was a bad name because it was too good.

Seeing and Steering Systems
Hosted by Esther Derby, this session guided us through step by step building systems diagrams to look at inter-related effects. The steps were quite simple, but my Teachable Moment was ensuring that when drawing the things that effect each other, use Nouns or Noun Phrases. This made a whole lot of sense to me because describing things as negative, positive or increasing/decreasing makes the loops difficult to understand.

The steps I came away with included:

  1. Start with the problem – Draw related circles attached to that central node that are affected. When done, draw related circles to those other related circles and keep going until you have a “Shape of the problem”. Looking at a problem this way may surprise you at who and what is really impacted by the thing that concerns you.
  2. Start “Finding Factors” by looking at inner-to-outer, outer-to-inner, and bi-directional forces. Brainstorm these and filter to those that are most important. Be sure to use noun and noun phrases that are neutral (or positive is generally okay)
  3. Build the links – with amplifying, dampening cycles and you end up with your systems diagram.

We’re not trying to be rude, honest!

I got included in on a twitter conversation by Mark responding to Brian talking about how ThoughtWorks people at a particular conference huddled around together. It’s not the first time people have observed that. A natural reaction by people outside of that circle is to comment on this, such as, “You’re not very inclusive,” or “Crowding around together is so rude.” Having been part of these circles before, and being told this judgement (with accompanying observation), I can tell you where it stems from.

ThoughtWorks is a distributed company
Though I can only observe consultants I interact with from other companies, I feel ours is definitely very global. We encourage people to travel from one country to another, frequently rotating projects and encourage each other to present at conferences. Being located pretty much all around the world, it’s natural you don’t get to meet everyone face to face. Even here in London, I am now used to turning up for a new office event only to meet several new people. We work on different projects, so it’s natural not to meet anyone.

Our electronic-social ties are extremely strong
Internally we have, at least what I like to think of as a very active mailing list. When I post something on there, I generally get some pretty good responses particularly from the largest community of software developers. Over time, you get to know someone’s online persona. You have a picture of them in your head, and start to see the nuances of how they express themselves. Even things like twitter help to do this. It’s not uncommon for me to feel more strongly attached to people actively participating in email conversations than some people in the same office of who I rarely see or talk to.

Conferences are attended by ThoughtWorkers from around the world
As I briefly touched upon before, as a global company we try to encourage people to travel and present at conferences. This naturally leads to opportunities for people to meet in person for the first time. It’s strange meeting people you feel like you’ve known for a long time in person for the first time. I still remember, for example, my first day in the London office where I finally met Liz Keogh and Tim Emiola for the first time after conversing with them electronically for 18 months before hand, and them now inducting me into the whole Britishness of “buying rounds” and the way that it all eventually works out.

People have a need for connectedness and belonging
Having just recently talked about it at the XP2011 conference, I noticed that we weren’t the only people to congregate into small circles. For instance, I remember a whole bunch of people from Brazil hanging around together for almost the entire conference. Likewise for a small group of people who worked for the same company in Sweden. It’s a natural thing, particularly in new environments, for people to stay close to those they already have relationships with.

It’s less about you than you think
It is all of these effects combined that lead to ThoughtWorkers aggregating at events. Perhaps it’s also because we tend to be quite loud/opinionated/noisy that it’s more noticeably. Gravitating towards each other isn’t a conscious act trying to exclude everyone. In fact, I know ThoughtWorkers like hearing other opinions, particularly if they’re even more different and based on strong experiences and though happy to contribute to conversation will be welcomed with open arms.

We can get better at this
I know it can be hard approaching a loud, opinionated group of people. I know we can do it better. Being aware of how we’re sometimes perceived, this is how I go about trying to break the perception:

  • Invite others in – If I know someone standing at the edge of a group, I’ll introduce them and explain my relationship to them to others. It helps break the awkwardness and creates more opportunities for everyone to talk about similar interests.
  • Randomly break away – If groups get too large, or hang around too long, I like to break away and meet some new people. I also try to encourage other people to do the same. It’s not only a good way of getting different perspectives, but helps address some of the above issues.
  • Explain to others the contributing factors and perceived effects – By talking people through the above elements, it helps others understand why perceptions come up the way they do. More importantly it lets them decide how they’d like to deal with it

Whilst I can only speak for myself, I do hope that other people can benefit from this by being more inclusive where possible in these sorts of situations.

Summary of XP2011

First full day of XP2011 was a pretty full schedule as I had to prepare for two lightning talks on different subjects. Fortunately both of the topics were very close to my heart, one about learning using the Dreyfus Model (slides) and the other about Systems Thinking (slides). The second day started off with a great breakfast selection at the conference hotel before kicking into the keynote by Esther Derby. Clearly jetlagged, Derby used a set of hand drawn slides to explain her topic, “No Silver Bullets”.

Her presentation style was very conversational and I can’t say that the crowd responded very well to this. Perhaps it was their jetlag as well, or the way the room had been set up. Nevertheless, through many of her stories, I still saw many heads nodding and a really great response on twitter to the things that she was saying.

I’ve followed Derby’s writing for years and could only wish more people would be exposed to them. As a result, I found many of the topics and opinions I found interesting reinforced, such as failing to address the management layer inevitably means agile adoption hits a hard ceiling. Or the oscillating behaviour that results when managers attempt to react to a system with long delays in its feedback cycle. I appreciated the very vivid term, “Bang! Bang!”-management style describing the style of managers who seem to have only two distinct and opposing reactions to a system, unable to moderate their use and wait for systems to find a new equilibrium. If you imagine these two opposing reactions the result of a huge iron lever being flipped, hopefully you can imagine where the noise comes from.

Derby covered lots of different areas, quoting a few people like Donella H Meadows, “The original purpose of hierarchies was to serve the sub systems, not the other way around.” And the work that George Lakoff does with word association with metaphors in our everyday use. Raising self awareness of your own in built biases and metaphors is another key thing she emphasised focusing on the judgements, habits, feelings, thoughts, mental models, beliefs, rules and values we tend to be intrinsically governed by. I particularly liked the phrase she uses to help people uncover their own and others’ mental models, “In what world would this make sense?”

She told one great story about the dangers of measurements as targets, using the example of the manager who decided to “Grade developer estimates”. This manager decided to give A’s to those who estimated on time, B’s to those who estimated over time, and C’s to those who estimated under time. Of course, you can imagine what magically happened as people’s grades mysteriously improved.

She also reminded me of the work of Ackoff, who I need to revisit, and the great work that he’s written about Systems Thinking. I have only been able to refer to the Fifth Discipline as a Systems Thinking book, but I really need to read his other ones to see if they would be of use, or are more accessible.

The rest of the day was a bit of a blur. A couple of highlights included seeing Marcus Ahnve take the work Luca Grulla and Brian Blignaut did with TDDing javascript to the next level and doing a demo of BDD.

David J. Anderson also reminded me of the importance to think in terms of the languages executives speak in order to better get our message across. He reminded me of all the great things that Ross Pettit has to say, although I think Anderson’s analysis on accounting for software development costs doesn’t seem to match with some of the data I’ve heard from Pettit.

There was so much more to the conference. Always the way great conversations emerged and the wonderful atmosphere of the hotel adding to the uniqueness to this event.

What’s in your coaching backpack?

This morning I facilitated a coaching workshop at XP2011 called, “What’s in your coaching backpack?” It was a four hour workshop, so lots of time to go into detail. I designed this workshop to focus more on depth than breadth for the four hours. After some introductions to the purpose and format of the workshop, I got everyone to move into groups and spend some time introducing themselves to each other. In these groups, we spent some time focusing on brainstorming various coaching tools, models and techniques and we came up with a huge variety. I’ll get around to writing each one of these up (there’s quite a lot of detail) so look out for them in future blog posts. Our coaching backpacks are now much fuller than what they were before.

After a break, we then reconvened and I asked people to focus on some case studies of some coaching situations where, in their groups, using the coaching tools to articulate how they’d approach each situation. There were some really great conversations and discussions, where I hope people got a better feeling trying to see how others might apply different techniques to the situation. Having been grounded in real world experience, people also wanted to know what did happen (even though there aren’t any correct answers to case studies).

I also had a quite mini retrospective, asking the questions, “What you enjoyed about the session?” and “Suggestions for improvement?” I had some great feedback and wanted to put it on line:

  • Like – Practices and real examples, discussion and division to groups, Scrum board or presentation agenda
  • Great format, loved the taskboard, posting on wall “backpacks”, case studies
  • Good group size, great group
  • Really well facilitated
  • Interesting content generated by the open conversations
  • Sitting in the sun was AWESOME!
  • Great opportunity to discuss different approaches to coaching and agile
  • Like the idea of showing progress of the workshop at the scrum board using tasks
  • Case studies/real life examples always interesting
  • Good, clear setup with backlog
  • This was the session I got more out for my work/myself than any other session 🙂
  • The workshop format
  • Working in small teams, all adding different perspectives
  • Sun
  • Nice with practices and your communications
  • Your excellent preparation and light-weight facilitation
  • Small groups
  • Interesting case studies
  • Exchange of ideas
  • Case study
  • Very well organised and structured
  • Good atmosphere, positive energy
  • The case study discussions
  • Living whiteboard agenda
  • Maybe switching up the teams between case studies might reduce effect of powerful personalities
  • Rotate members in tables to get more ideas?
  • Suggest you split groups with the knowledge spread more evenly – you asked experience and could have used that info
  • Same team all he time. Maybe we could have shuffled people in the middle of the session
  • Changing teams after a while (e.g. at lunchtime if in for whole day)
  • I could even have a whole day of doing this without being bored
  • More practises and making the descriptions of “methods” out from this
  • Produce example tool(s)
  • Put all coaches tool/methods together and have a global short discussion
  • Common discussion about the good practices
  • Would have liked to hear/learn more about coaching techniques
  • Would have been nice with an introduction to the methods/worksheet part to get the flowing associations
  • A conclusions panel to write the achieved results

Notes from Michael Feathers’ Brutal Refactoring

Here’s my notes from the four hour workshop by Michael Feathers on Brutal Refactoring. I’m trading off timely information for something that probably could be more succinct or polished with a bit more time.

Michael opened with the discussion on what is Clean Code versus Understandable Code, and why each is important. He makes the point, using some good examples from different languages, we can live with understandable code, and there is a cost to having Clean Code, particularly when you have it. He explained it through good relationship with Behavioural Economics, taking about how the incentives for people maybe aren’t quite set up right.

He asked a question, “Is it easier for people to add code to existing place than to create a new method/class/etc? Why?” It’s a good analogy, and something that you even seasoned, diligent programmers often fall foul when working in small increments.

There were some further good discussions about “Understandable” being contextual. Such as, a C++ macro might seem “magic” to non C++ users, but could be quite familiar. This remind me of the learning curve, my former colleague Dan North is going through with Rails at the moment. A nice reflection on some messages I talk about in my “Beginner’s Mind” talk.

Anyway, back to the tutorial. Feathers says, “We should’t be surprised by very large methods. incentives are set up wrongly. Though not sure what we can do about it.” He further acknowledged it wasn’t a “bad coder’s” action, but a systemic effect, “It’s the result of the system between us and the code.” I think this is quite important to note because I think the social system that software development occurs in is important as to what code you get up. For example, when you build teams, having an agreed code standard and consistent technical direction is essential into setting up a different system that incentivises different behaviour. If you know you’ll need to come back to something, and change it, you’ll want to leave it in a good state. If you want the respect of your peers, you’ll want to leave it in a good state.

Feathers then talked about some great visualisations he’s been working on. He’d get on great with many of my colleagues, particularly Erik Dörnenburg who loves to champion this sort of stuff. I agree when Feathers says, “Code has a particular shape,” when you’re looking at a particular system.

Feathers than covered a good deal of stuff as shown in the Mind Map. I have some rough notes.

Feature Clustering

  • Listing out features and looking for commonality. Sometimes you look for common arguments across classes/methods. Sometimes it’s about common data (Data Clumps as Fowler talks about in his book).
  • Look for Locality of information (or encapsulation in OO talk)

Rapid Scratch Refactoring

  • A bit of regret not focusing more of it in his book.
  • You learn a lot my attempting stuff out and then seeing, “What could be?”
  • Some discussions on the danger of making these too much of a big leap and never reaching for it. (Just another reinforcement about clear vision and essential leadership to keep people heading in the right direction”
  • I found it interesting he liked to do it in a plain text editor instead of an IDE. Feathers talked about the distractions of syntax highlighting. I find that I learn a lot more information (and can try things out faster with an IDE like IntelliJ or Resharper)

Twisting Classes

  • Breaking down a class based on use rather than adding more
  • Step by step process of creating a new role (via interface or superclass and using that in a consumer rather than the original)
  • Feathers recommends a very riguourous command query separation

There’s lots of other small gems included. Some notable tweets worth saving:

  • “Branches often biggest impediment to refactoring in large orgs.”
  • “Narrowing scopes: often we gain leverage by moving temporary variables coser to their points of first use”

Scandev 2011 Summary

A couple of weeks ago 700 geeky Swedes (and a handful of other Scandinavian people) descended on Gotheburg to attend Scandanvian Deveopers Conference. It was the first year that I went along and enjoyed the experience of this conference.

The two days had plenty of options – with eleven (yes eleven!) parallel tracks including language specific ones (java, .net), mobile, upcoming things, agile methods, web, SOA, etc. Something for everyone for the most part. This invariably brought a whole collection of interesting speakers from plenty of different walks of life. I met plenty of new people and reconnected with many others.

My key takeaways
Just like many of my colleagues, I’m interested in the “what could” be for functional programming. I have my own thoughts on its applicability, relevance and maintainability to my day to day work, however I made myself attend several sessions to see what it was. Neal Ford (great presenter as usual) did a great introductory session to the mindset behind functional programming. I’m glad to see that my studies in this at university meant a lot of it I already understood (first class functions, recursion, etc). I understood, though can’t extrapolate the strength of closures (at least the way that Neal was describing them), and the real world application of currying.

I enjoyed listening to Douglas Crockford talk about the new changes in the upcoming update to the Javascript language. I found him honestly refreshing – talking about which features to avoid (and why) and which things have been added to make users’ lives much easier and still maintain backward compatability. I can’t say that I learned a lot that I could immediately apply but had to laugh at pictures like this:

I also really enjoyed Matthew McCullough’s talk on git that was both insightful and entertaining on the internals, practicals and plenty of live demonstrations using the tool. As a fairly new user to the tool, I learned quite a bit and know more about what I don’t know and can work to fill that gap.

I have to admit the keynotes didn’t really get me thinking any differently, but I think that’s more of a function of having followed Alistair Cockburn’s thoughts for some time and having worked with and understanding change (the topic that Henrik Kniberg talked about).

« Older posts Newer posts »

© 2024 patkua@work

Theme by Anders NorenUp ↑