Tuesday, 30 July 2013

Gestalten Arbeitsgruppe

People can be seen by a business as an appreciating asset - hence the concept of "human resources". 

The more time the asset is associated with the business, the more value the asset accumulates. A business is no more and no less than the historical and on-going product, of the effort of people - individuals, and teams. That's why we call formalized businesses "companies" - they are a company of people working toward a business objective.

We tend to think of appreciating assets as shares, property, etc. People who own property will tend to invest their time and energy in the property; looking to increase it's value, or at least make it a better place for them to live in. We can do the same with people also - invest in training them and helping them understand a business better.

A team can be seen as combination of an appreciating asset and a product. Like an appreciating asset, a team’s value increases over time; as the team becomes more familiar with the business and its members become more familiar with each-other (that is, team cohesion develops). The more a team works together, the better the team will become. So a team is also like a product; one that improves with use.

The German word “gestalt” comes to mind...

...which means “the whole is greater than the sum of the parts”.

Saturday, 13 July 2013

Rock on with your bad self

The Mrs and I have been watching Breaking Bad recently. I find this programme pretty interesting; I enjoy the irony and juxtaposition of the two main character’s partnership. They are like chalk and cheese, yet are linked inextricably by their illicit drug manufacturing venture. Their enduring relationship is the dynamo of the story. Over time, Jessie, who is Mr. “bad boy” turns out to be the partnerships’ moral compass, whereas Walter, who is initially painted as Mr. “straight and narrow”, turns out to be a gleaming psychopath.
The show really is not so much about drugs, etc., as it is about people, relationships, psychology, and the way we operate within and around the construct of the societies we live in.

The programme got me thinking about honesty, and about being honest with ourselves. How it’s important to admit that although we try to do well, we sometimes make mistakes, and even knowingly do nasty stuff. I think that by bearing this in mind, we can become better people – or at least, feel better about ourselves. When we keep this in mind, it gives us the option to forgive ourselves and try to do better. As opposed to thinking that we must always do good and beating ourselves up when we fail. Being honest with and open with ourselves in this way also helps us interact more openly, perceptively and compassionately with others. And it helps us to recognise more readily our mistakes and enables us to learn more from them.

Philosophy on this matter has been written and talked about for thousands of years, I’m certain. Let me finish the post though by briefly examining the thinking of a couple of other (non-fictional) characters from popular culture…

LL Cool J on the other hand revels openly in his glorious badness – “Not bitter or mad, just proving I’m bad […]”

["I'm Bad!", LL Cool J - source: http://www.youtube.com/watch?v=oVDfyc2lh4Q]

Not everyone sings (or raps) about it. Instead, people may go to church to pray, talk with family and friends for comfort, write a blog post, or simply take a brisk walk. However you choose to cope with this fact of life – I urge you to enjoy yourself, and keep it real!

Tuesday, 9 July 2013

Education, Success, Training Budgets, and The Cult of TechEd®

With TechEd 2013 almost upon us in NZ, this event - which has gained "cult status" in NZ's Microsoft software development community - has inspired me to write a blog post.

The cult of TechEd

A ticket for TechEd can be used by companies as a carrot – many MS developers are very eager to be able to attend this event. Admittedly, initially there is a definite sense of prestige associated with being sent by your company to TechEd (or any high profile professional development type event). I’ll admit, I’ve been there – on both sides of the fence – as a Microsoft developer in the early days of TechEd in NZ, I pined to be a TechEd delegate, and as a manager of .NET developers, I have used TechEd as a carrot.

Having been through that process though, and experienced the awkward reality (following a spend-up on TechEd) of a near-empty bucket (budget) for training until next EOFY, my current opinion is that there is far better value in mixing it up; by seeking out alternative events and encouraging regular attendance of local user group meetings - for example leveraging .NET and/or SQL Server user groups, subscribing to TechEd type events sparingly, and if possible, catching the satellite gatherings (e.g. the free weekend-based Code Camp events) that occur before/after events like TechEd.

That thinking has inspired me to write this blog post, which as usual, has grown into something much longer than I thought it would be!

Act local; think global

The calibre and content of local user groups is often superb (it is in Auckland at least). To list a few of the groups I've been involved with recently:
  • AkJS - the Auckland JavaScript meetup group.
  • Agile Auckland - the Auckland Agile meetup group.
  • GDG Auckland - the Auckland Google Developers meetup group.
Like the drifting sands (how poetic!), the inspiration and liveliness levels of local user groups in my experience, changes often; they also come-and-go. One really needs to keep one's ear to the ground to have a fair idea what's going on when, and where. Going the user group route though, enables one to hone one's networking skills, meet your local community of keen people, and learn about other weird and wonderful events in the process. One may even be inclined to run a presentation!

By engaging it's collective right brain, leveraging the heck out of local user groups, and encouraging contribution where possible (through active sponsorship of communities/groups and rewarding it's people for speaking, for example) I think that a company can realistically elevate it's profile and esteem in the eyes of it's community, industry, staff (existing and potential) and even it's customers. Also, it can hang on to more of it's training budget for those occasions when true gems come rolling through; for example Jurgen Appelo's recent "Management 3.0" training visit to NZ.

Variety is the spice of life

So, back to TechEd (and other "cult status" events or programmes like it)...I am of the opinion that depending on the size of the company/team, bulk-buying tickets and sending a bunch of delegates along to a ubiquitous event like this, can be a fantastic waste. This is money that could otherwise be going into supporting just-as-good-if-not-better (and less expensive) local/homegrown events. This bulk-buy approach may also reveal a dearth of imagination and lack of interest in the improvement of people.

To name but a few great NZ/AU locally run events:
  • Agile New Zealand – 2-day event in WLG, fantastic event that covers a range of material from (e.g.) TDD to Agile adoption.
  • Canterbury Software Summit – half-day event in CHCH, rapidly becoming a big deal for the NZ tech industry and a bargain at about $100.
  • YOW! – 2-day event in Aussie (three cities, SYD/MELB/BRIS), which including airfares and accommodation, can still break more-or-less even against a TechEd ticket.
  • PyCon – 2-day event, held on the weekend, Auckland, $100.
Also, in my opinion, in order to truly understand your own place in the world as a person and a professional, it’s quite important to step outside of your comfort zone now-and-then - what I mean is; learn a new programming language, get amongst a bit of OSS, etc - basically, get a fresh perspective. Events like YOW! for example, provide a very well established, platform agnostic technical forum, and smaller events like PyCon may even provide an inspirational breath of fresh air for your garden variety ace, number-one, top-hole .NET developer (for example).

So, why not take the opportunity to send people on excursions to check out weird and little heard-of events? Incentivize people to attend Code Retreats, for example. Explore what's out there in the wider world. Encourage people to look outside of their own backyard - perhaps there is a vibrant user group in the next town that has managed to snare an amazing guest speaker for an evening - fly a delegate over there for the night! Encourage people to leverage their networks; visit their friend's organisation, see how other people and other companies do things.

A change of scene and an input of new information can do amazing things for morale and creativity levels.

Roll your own, and laud your success

Of course, a company should not forget to look under it's own nose and encourage it's people to share their learning and their knowledge. Most developers worth their salt will have their own projects on the go in their spare time - given the right encouragement, people are often more than willing to present to their colleagues on these sort of things.

Also, as suggested earlier - people may be encouraged to speak at local user group meetings and at conferences. Companies can share their success with others - people love to hear success stories, especially if there's a bit of drama in the mix!

There is no difference between a company whose people speak publicly about the company and the things that they do there, and one whose people don't - other than the fact that at one company, people are willing and encouraged to talk about what they do. Success to some extent is a self-fulfilling prophecy - a company that is willing to talk about it's success, I think will be more inclined to be successful.

You get out what you put in

Like I say, I’m guilty – I’ve been there and done that with the cult of TechEd - I've leveraged it and had it used as leverage on me. I also like to think that I’ve learned though. And to be clear, I certainly think there is value in TechEd and events like it (that's how they attained cult status in the first place, right?). At the same time, I think companies should consider carefully what the relative value in these events is, in comparison to what else is out there, before shelling out a large chunks of their training budgets on them.


["Cult" skateboard wheel - source: http://www.skatecultwheels.com/blog/dominator#]

This post is about learning, education, and the different options that are out there for those companies and managers interested in software and product development. A company that uses it's imagination, contributes to it's community and industry and looks for genuine opportunities to help it's people improve, I think will fare better in the long run, than a company that treats training as an administrative task that gets in the way of real work.

Migrating (and Open-Sourcing) an Historical Codebase: SVN-to-Git

I have a SVN repo on my local machine that I have been shoving stuff into since before I knew how to use revision control systems properly (...