Archive

Author Archive

Yo(w) bro

June 1st, 2010 Pär Wiger No comments

Yesterday (actually it turned today before I published) when I wrote my post on the Dave Thomas YOW! Night I forgot to mention a funny thing:

Before he dug into the main bits Dave took the opportunity to advertise for the YOW!2010 conference(s) later this year, in Melbourne and Brisbane.

And there on the Big Speakers Slide, as one of the poster boys, together with Erik Meijer, Jim Webber, Rod Johnson and Guy Steele was my little big brother!

Young Erlang wizard

Ulf battling an early concurrency problem

I didn’t even know he was confirmed and I’m not even sure he knew. He had just briefly mentioned that it was a possibility. So I texted him and said -Hey, know what?…

Funny feeling that; seeing your brother in that setting. I mean, he is after all my brother. I know for a fact he’s not super human, whereas with the others I just have to believe them when they say they’re not…

Joking aside, I’m very proud of him, and also really glad he’s coming for a visit. Thanks for bringing him down here Dave :)

Tags:

Envisioning envisioning

June 1st, 2010 Pär Wiger No comments

Tonight it’s time for another evening with Dave Thomas. This time he will talk about NoSQL (which really should be called something else, emphasizing its non-relationness) and I’m really looking forward to it. He’s a really entertaining guy and usually provides quite refreshing sessions. He certainly has strong opinions on our beloved business and with his experience and track record you’d do well to listen to them.

But, as I said; that’s tonight. Now I thought I’d give you a quick recap on last YOW! Night here in lovely Sydney:

Two weeks ago, on May 19th, I went to the Wesley Conference Centre to see Mr Thomas talk about “Improving the Quality and Productivity of Backlogs Through Envisioning: Collaborative Agile Product Analysis, Architecture and Design” (phew…)

Before I go on, I’d like to quickly comment on that title: Three words: No no no. Yes, he did talk about envisioning and backlogs, but the rest? Too fluffy and frankly a bit boring. Just compare that to tomorrow’s title: “Why Real Developers Embrace Functional Programming and NoSQL Data: Confessions of an Object’holic’ and Statefull Sinner“. Still long, but that one carries some punch! But then again, to quote Shakespeare:

What’s in a name? That which we call a rose
By any other name would smell as sweet.

And Dave Thomas is indeed a rose! If you ever get the chance to go and see him; just go, whatever topic and title. And relax; you will be in for an interesting event and you will learn. Lots.

So, let’s talk rosy smells; what did we learn?

First of all: Use common sense! There are a lot of hypes surrounding Agile and where there is hype, there are priests! Beware of them. Each customer and case is different anyway, so being a slave to a bible will do more harm than good. Rather be great, know your stuff, and adapt to your circumstances and build on them.

The emphasis on Envisioning means: Think, model, scribble, brainstorm, mock, prototype… Do whatever it takes to really understand the requirements, to understand what you’re really going to build. Your backlog – that’s your bible btw – should be clean and safe to use so don’t let any contaminants in there.

I’d like to mention some of the points Dave made about improving understanding:

First: Developers can build anything, they just have to understand it first.

Sprint 0 is the Envisioning sprint. I repeat: Do a proper job here and it will pay off. Sometimes this one can take months. So be it!

If you later do get stuck on something along the way, don’t just let it go on. Stop and push it back. You will only run into trouble later for ignoring it now. Be honest!

Build prototypes. Find a really great UI guy (at least) who can create mockups quickly. Done right this can really pay off; the customer will love it and it will deepen the understanding through out the team. By visualising your system early things will fall into place much quicker.

The problem with the prototyping as well as with a lengthy Sprint 0 though, is that it relies heavily on your faith in its long term effects. You will most often need to really work hard to sell these precious babies to the stakeholders. Do that. It’s worth it.

Use Personas; a great way of creating a common understanding of your users, across the whole team. Another great idea is to use same set of personas across projects so that everyone quickly get who/what we’re talking about. Don’t use too many though. Dave says max. 6-7 which feels right to me, even though I often see higher numbers elsewhere. One important clue to reach the best possible common understanding is to simplify. Within a team you should be able to quickly refer to a common set of rules and definitions with as little ambiguity as possible and without having to look them up. Personas will help you achieve that.

The team

I really liked what he said about colocation of teams: It’s overrated! Oooh, did he just swear in church?! No no …well, yes he did, but wait, here’s the good part: He would much rather have a teammate on the other side of the earth, sharing the same mental space, than share an office with one in another. I find it hard to disagree with that, even though I know a lot of people don’t. You could, of course, argue that the same mental and physical space is a winner. Yes, but that’s not always possible. And if it’s not: Don’t colocate developers just because some priest says it’s in the bible. -But what if you constantly end up in projects with people not sharing your mental space? Sorry mate, but then you really should find another job, pronto! My words, not Dave’s. Not on this particular night anyway. I’m quite sure he agrees though.

Other important take away tips: Create an architecture map and stick it to the wall, use those nice little cards with acceptance criteria on one side and the story on the other and take a look at decision tables (I will, looks great!)

And remember: Done = Acceptance tested! Unit tests are fine, but they have little business value.

To round up this Envisioning/backlog bit I want to use pretty much the exact words from Dave:

All code has bugs. The important question is: Does it matter? The whole point of Lean is triage: In ER, treat the dying patients.

That one sat well with me. Being a trained military medic (in the Swedish army – that’s a little like the Israeli army, only tougher) I’d even like to expand some upon it, making this analogy even more fitting: In the event of war the medical prioritisations change; some of the most critical peacetime wounds are now given only palliative care, i.e. the patient gets a shot of morphine so he can die peacefully…

On a final note I just have to make a little digression and pass on Dave’s sincere apology for OO. He said it made sense with Smalltalk, but now… I must say he looked very sincere, and given his prediction about the future legacy problems we’ll face it’s understandable. In his opinion, Java, and especially J2EE etc, will make the COBOL legacy look like a drop in the bucket. I suspect we will hear more about it tonight…

Tags: ,

Iterative evolution

May 28th, 2010 Pär Wiger 2 comments

Isn’t it great when you stumble upon something, whatever, that makes you think, really think?! And then sometimes, that wonderful stumble triggers you to rethink things you thought you already knew, things you took for granted. Ah, that’s indeed a wonderful process.

It just happened to me. This time it was two very interesting articles that got me thinking about the Agile idea of iterative delivery.

Step by stepPhoto Credit: extranoise

Delivery

The way of delivering anything these days is arguably to do it in steps, adjusting as you go, depending on the feedback and the changing requirements. Yes, yes, yes, I know; far from everyone agrees with that statement. Hence “arguably”. (I’m not going further this time. Go google – or bing if you will – delivery waterfall agile if you want to dig deeper into that subject. And bring a sturdy spade.)

Having lived with a term like “iterative delivery” for about a decade now, believing to have a rather firm grip around its meaning, I find it interesting – and refreshing – to find it challenged twice in a couple of days, after reading two excellent articles sort of on the subject.

Iterative delivery

A common way of looking at iterative/evolutionary product delivery is: Release and fail fast, acknowledge missing features, embrace change and continuously add and improve all the way to the “final” (great) product.

Banana skins

My two challenges, or pitfalls, for today concerns:

  • The acknowledgement of missing features
  • The failing fast

The acknowledgement of missing features

There is a very interesting article by John Gruber, about “how Apple rolls“, showing how Apple consistently release their products small, and then improving on them, slowly, bit by bit. Of course that’s what they’re doing. I just haven’t seen it like that before. Apple is doing iterative delivery. They just don’t advertise it as they go. They never focus on the missing parts. Every product is a flagship that will, and most often does, revolutionize the industry.

Before I go on and you accuse me of comparing Apple and orange: When we talk about Agile software development principles, the acknowledgement of missing features is commonly communicated within the team, including stakeholders/customers. What Apple is doing is marketing externally to the end users of the product. That’s a different ball game, but nevertheless I think there’s an important lesson to be learned here:

One of the great benefits of the Agile way of thinking is that it fosters a humility towards failure and change. However, too much of a good thing may do you harm. When you insist on putting up a sign on the front page telling the users this is not a complete product, when you refuse to remove that Beta tag, you start making excuses, effectively demoting your product. You don’t have to speak Apple, but be careful. Don’t be too humble.

Fail fast

The same goes for the mantra “fail fast”. It’s a great guiding principle, but be careful communicating it to people without the same level of understanding and knowledge about Agile and XP. They might just perceive it as a careless approach to their product, their time and money.

-But pretty please with sugar on top; it’s such a catchy phrase, with its short allegorical allure! Yes, but it does front a dangerous word when it comes to the customer’s children: Fail!

It’s not just linguistics though. Fail fast is a concept that demands and deserves proper presentation. It lives dangerously close to the world of lazy or lacking preparations. (Which, by the way, is not a good starting point if you have any ambitions.)

There have been times that I’ve felt this need for careful wording trying to convert waterfalling customers, but after reading this rather energetic confrontation with the mantra from a VC’s standpoint, it really made its way to the frontal lobes. Again, all I’m saying is: Be careful.

Do your homework

Be careful you say? How? The way to avoid these pitfalls is – in my humble opinion – to be sure to communicate, to eat, live and breathe responsibility and thorough groundwork. From there you can go pretty much wherever you like…

Guilty

May 20th, 2010 Pär Wiger No comments

You have a blog, you have tons of ideas, you know how write, you want to write, you want to share and interact and most of all; you want to learn, to grow! …so, what’s stopping you?

Of course there can be lots of reasons, but a common one is fear!

Rejected

Here we go again (and probably not for the last time)

Why blog?

One of the reasons to write a blog is to write down what’s on your mind, to provide an outlet for your mind. But if it was only that, you wouldn’t have to publish it, right?! So, another neat thing about a blog is that people can actually read your works of art.

So, why don’t you then?

That last thing; that your writings is actually out there, in the open; that my friends, is the scary part. That’s what makes people afraid of putting pen to paper (or finger to key if you will). Out of fear of making a fool out of yourself – one of mans biggest fears in life – you wait and you wait and you wait for that perfect idea to come along for you to write about. And then you will probably wait some more for a divine outline and a heavenly disposition to come to you in your sleep. In your dreams.

Guilty as charged!

Sentenced but not jailed. Partly because I got an easy sentence – this is, after all, my 12th blog entry (in only 3,5 years) – but primarily because you don’t actually get jail time for not blogging. So, here I am; free to change; to try again. And again. And again. Failing, adjusting, retrying…

That is, instead of thinking about how to make it perfect, just do it. Really, what’s the worst that can happen?

An example

Last post I told you to stay tuned for my intentions “to try to map out an understanding of how to be great at something and have fun while you’re doing it“. That was, in my humble opinion, rather well put. Yes, I need to tighten it up a bit, but that is my intention for the not so distant future. However; having written that I suddenly felt the pressure to do just that, to do it really well from the beginning, and not “polluting” my blog with anything not answering to that mission statement.

A solution came to mind: I should start a new blog devoted to that statement. Of course, I would then need an appropriate (and smashing (and available)) domain name, the right theme and a …yes, you see where this is heading, right?!…

Don’t get me wrong though; Those are all excellent ideas. I will do all that.

Branding, marketing, designing your blog is essential to really reach out, but that’s not where to start. Start by creating (great) content. A blog is nothing without content, however shiny.

New game plan

In due time, I might spawn a new blog and start putting more effort into branding and focusing, on polishing my professional writing, but for now I’m just going to make a fool out of myself (more often)! Starting… NOW! …or rather 527 words ago…

Tags:

Mastering a new skill

April 15th, 2010 Pär Wiger No comments

They have a game here in Australian schools called Handball. No, it has nothing whatsoever to do with the Olympic sport Handball. So, what is it then? I’ll tell you in a minute…

I have two school kids (so far). This particular story will include my son who is six. Moving here to Manly late January and starting school just six days later, we where quite eager to see how they would cope, especially him knowing hardly any English, but for a few words. We weren’t particularly worried though; he’s a smart kid and also quite confident and secure. Plus, he loooves anything sports. That always helps a young guy at school.

It didn’t take long to see that handball was the thing at school. The kids play it every recess as well as before and after school. Baltazar wanted to know right away how to play it so I asked a couple of kids to teach him.

So, without further due, please let me introduce the rules of handball:

BigFooty: Who used to play handball (aka four-square) back in school?

Too much for you? I understand completely. It’s a complicated game in all its apparent simplicity. Add to the above rules some Manly(?) specific features like Skillage, Rollings, Grabs, Poison etc. – most of them being dynamic, i.e. dictated by the owner of the ball and/or the current King – and you have an intricate, fast paced game that I for one have trouble understanding even after all these hours of watching and even playing myself.

So, how can a poor six year old kid from the cold north learn this in such a short time without even knowing the language?

…actually, he hasn’t just learnt it; he masters it. He was just unofficially crowned the Best Year 1 Player at Manly West Public School, among 120+ year 1 students (not all of them playing handball of course, but still…)

I’ll tell you why:

  • Because he has passion!
  • Because he’s not afraid to go up against the best in the field.
  • Because he has stamina – he’s not giving up.
  • Because he has fun.
  • Because he’s entering the task with an open mind.
  • Because he just jumps right into it, he doesn’t waste too much time on theory.
  • Because he wants to improve, he wants to be the best!
  • (And of course; because he’s got talent.)

These qualities that come so easy and naturally to a six-year-old; how come we adults find them so hard?

Mastering a new skill is scary business; we tend to focus too much on the vast distance separating ourselves from the current masters. But as with any other seemingly insurmountable obstacle, it helps to break it down into smaller parts.

So, that’s what I’m going to do.

My intentions are to examine these attributes a little closer to try to map out an understanding of how to be great at something and have fun while you’re doing it.

Stay tuned…

Tags: ,

noPad

April 7th, 2010 Pär Wiger 6 comments

Part of me – the nerd part – thinks the iPad is another piece of fantastic news from Cuppertino (even if I must admit my first reaction was -What on earth would anyone want this for?). It seems quite the slick machine. I mean, just look at “The Elements”.

But, I’m not getting one!

Why?

A) It’s for consuming (paid) content, not for creating. I want to create more and – if need be – consume less. I don’t want another shiny distraction on my path to delivering more output.

B) It’s another thing! I don’t need more stuff. Moving Le Family to the other side of the world, packing light and living frugal made us realize we don’t need stuff. We left all but clothes and a few toys behind and haven’t missed any of it. Reading a recent Cornell study about material things vs. experiences reinforced that feeling. (Thanks to Alex Kjærulf for tweeting the link.)

(Plus it’s bound to be an additional gadget; it doesn’t replace anything. I still need my laptop and my iPhone. Why don’t we just make that C).

So, I won’t get an iPad. What’s the big deal?

I have an iPhone. And I’m in love with it! ( · · · — — — · · · ) But I have also often wondered if I weren’t better off with my plain vanilla Nokia _phone_.

…but every time I dare think those thoughts my iPhone shines at me, begging me to pick it up and play a little more with it.

Damn you Steve…

Tags:

An unexpected interaction

March 10th, 2010 Pär Wiger No comments

Not too long ago I bought a TV on eBay. It was a great TV, and by great I don’t just mean excellent. It was also huge (especially weight-wise). You see, it was a good old 32″ fat screen Panasonic…

I love that TV; nice and clear picture and a surprisingly good sound. And for a price of 50 Australian dollars (~USD 45) it was a steal. But I digress; this post is not about my dear old new TV. It’s about my interaction with the seller.

How you experience an interaction is largely dependent on your expectations. If you’re buying something at a luxury store you expect that little extra. You’re not just buying the item; you’re also buying the experience and the service. When it comes to buying a cheap old TV on eBay you pretty much focus on the goods and hope it’s not broken.

This particular ad said “local pickup only“. My guess is the seller thought

it’d be a waste to chuck a working TV. Let’s try putting it on eBay. Someone can come and pick it up and save me the hassle and maybe, just maybe I’ll even get a few bucks for it.

So there you go: The ad is there. The TV looks good. I’m willing to pay a hundred bucks for it. Since I don’t own a car I set aside AUD 50 for taxi transport and put in a bid for the remaining 50 that turns out to be the winner. Hooray!

I’m a happy camper. The seller has every reason to be satisfied too. If only the TV works and the seller gets her money (and we don’t rob or rape each other) this business transaction will go into history as a successful one…

Here’s when the seller delights me: She says she’ll be driving past my neighbourhood anyway so she’d be happy to just drop it to me. Just like that! She didn’t have anything to gain by doing that: She had to ask a friend to get the darned thing into her car, she had to find out where I lived, she had to go out of her way (if only a little) and she had to take her time to do it.

For me on the other hand there was both time and money to be saved. We (me and my wife that is) therefore thought we’d get her something to show her our appreciation of her kind gesture, so we bought her some flowers.

For us that felt like the least we could do. We were still well under budget, we didn’t have to look for her place and all we had to do now was carry the TV in from the street. AND it felt good to reciprocate for her kindness. Plus; it really was nothing much; just a simple bouquet of flowers.

For her, judging from the look on her face and her eBay feedback, she was genuinely thankful. I suppose she really didn’t think it was a problem to deliver the TV to us. She probably felt it was both convenient and time-saving. She certainly didn’t expect a reward for it.

So, the point is: Even a simple business transaction, with no other expectations from either side than to let money and goods change owners, can become something extra. All it usually takes is for either party to go that extra inch – to do just a little bit more than what’s expected. If on the other hand both parties does just that, that simple interaction can turn into something really memorable and smile inducing.

That’s the real reason I love that TV: It’s a constant reminder of not just a great bargain, but also of a memorable and unexpected business interaction.

Tags:

Settled in down under

March 2nd, 2010 Pär Wiger No comments

I’m writing this post from the kitchen table of my new Sydney home. Actually zooming in it’s the Northern Beaches suburb of Manly, and zooming in even closer – for the locals – it’s Fairlight.

I’m not going to bother you with the details of the hows and whys of me and my ever growing family ending up here, but I can tell you it’s been both very relaxing and very busy times since we left Bergen early November last year.

Why relaxing?

In short because Australia is a very relaxing country and the Australians very relaxed and friendly people. Also, because now we’re actually doing what we’ve planned and wanted for a long time, not just planning it.

Why busy?

Because moving to the other side of the world, finding out as you go how and where to live, together with a wife, an eight, a six and a three year old plus a fourth one coming keeps you from getting bored.

Plus – and this is important – being busy is not a bad thing! We stayed in Melbourne for the first two months, enjoying an absolutely wonderful summer (i.e. winter – I know; it’s confusing) holiday with tons of new and exciting things to see and do.

What now?

Now we’re starting to get settled; the kids are at school, the non-furnished apartment is rented and filled with the bare necessities, we have found a maternity hospital, we are getting acquainted with the neighbouring area and people and we have located most of the 18 Manly beaches. Oh, and all…sorry most of the paperwork is filled out. (Holy moly; I thought we Scandinavians were bureaucratic. I’ve never seen so many forms in my life. The British legacy they say…)

Now I’m getting ready to do some work. Not too much, but just enough. The plan is you’ll be able to see the result of some of it here. Keep your eyes open.

Tags: ,

Logos with ethos and pathos

October 23rd, 2009 Pär Wiger No comments

Miles, the company I work for, has a great slogan:

Miles – technical authority and warmth

It’s even better in Norwegian (Miles – faglig autoritet og varme) partly because of the wonderful and hard-to-translate word “faglig”, but also because it feels less grandiose, a bit more personal. Anyway, moving on…

In rhetoric - the study of writing or speaking as a means of communication or persuasion (Webster’s Definition) – there are three principles classifying audience appeal; ethos, pathos and logos. I’ll leave the explanation of these three modes of persuasion to Aristotle himself:

The first kind depends on the personal character of the
speaker; the second on putting the audience into a certain frame of
mind; the third on the proof, or apparent proof, provided by the words
of the speech itself.

That is:

Ethos: The persuader’s reputation, his or her honesty and moral authority.

Pathos: The passion in the delivery, the persuader’s ability to appeal emotionally to your target group.

Logos: The rational argument, the indisputable fact.

As Morten Teien so pedagogically explained to us during last weekend’s Miles Camp, drawing up (non-orthogonal) graphs to support him: The all too common mistake of including only one or two of these patterns promoting your ideas limits your chances of reaching through.  In our business it’s the Logos part that often gets all the legroom in our arguments, (wrongfully) celebrated as it is as our only source of light.

Including all three means of effecting persuasion greatly increases your chances of succeeding in your argumentation.

Ok, let’s backtrack then, to Miles and our slogan: In case you haven’t yet seen where I’m going, let me retranslate it for you, this time into “Rhetoric Greek English”:

Miles – Logos with ethos and pathos

So that’s why the slogan sits so well with us. It resonates with the ancient ideas of how to win through with your ideas, of how to persuade. I’ve always really liked that slogan, but I’ve just realized it’s a far better slogan than I was actually aware of. It’s genius!

And do you want to hear the best part? It’s true too!…

Tags:

Pleasing the geek in me

September 23rd, 2009 Pär Wiger No comments

My interests are all over the charts. That should make blogging a breeze, since accordingly I should be interested all the time and have plenty to write about. But then there’s this notion of concentrating your blog around a theme, a thread…

You know what? Forget all that. For now anyway. Here’s a post on a geeky tech tip. It’s neither particularly advanced nor revolutionary, but oh so useful. It made my day and I’m sure it can and will make someone else’s too.

The tip: How to indent XML files in UltraEdit

I’m a long time Windows victim…sorry; user who has lately fallen in love with the Mac. I still use both though, both at home and at work. This tip is mostly a Windows one, but you can achieve the same with, for instance, Smultron on the Mac.

One of my favourite Windows applications is UltraEdit. It’s powerful and flexible, but most of all: Its power is available to me after years of (power) using it. There are lots of other great editors with rivaling or even superior power, but to make equal use of them I would have to learn to master them too.

doc_xml_icon_128x128Anyway: At work I view and edit tons of ugly XML files and for that I happily and successfully use UltraEdit. There has been one thing missing though: The ability to pretty print (i.e. indent) XML. I did make an attempt to install XMLValidator4UE, but it failed due to .NET framework issues, so I gave up and eventually installed Altova XMLSpy. That’s a great XML …eh… monster. You can do pretty much anything XML-ish, but that also soon became my issue with it; it’s basically too bloated for my use.

Enter HTML TIDY – a great little snappy app to aid you with cleaning up your markup. It has been living peacefully on my machine for quite some time now and sure – I’ve used it occasionaly, via the command line or through Notepad++’s TextFX HTML Tidy plugin. But I’m a friend of streamlining your tools and utilities. I don’t want to jump from tool to tool, certainly not for tasks I perform frequently.

Today I decided to make an effort to marry UltraEdit with Tidy. It was with great joy and ringing bells I discovered it was actually easy peasy. The key here is UltraEdit’s Tool Configuration. After that I just had to find out what parameters to feed my new little old friend. You can find them all on the Tidy Man pages, but in short these are the ones that did it for me:

-xml tells it that the input is an XML file
-i tells it to indent
-m tells it to modify the file in-place
%F is UE’s placeholder for the active file

Also, I had to specify the character encoding by adding the option -latin1 to tell Tidy to use the ISO-8859-1 character set to deal with all the ås and the äs and the ös (or as the Norwegians would say: The æs and the øs and the ås) </scandinavian_language_lesson>

I.e. tidy -xml -m -i -latin1 %F

Voilà! Press Ctrl-Shift-0 to indent the open file.

Caveat emptor: It’s not perfectly streamlined. …yet ;) I could improve it to dynamically load the correct charset. I could make it reload the file automagically (today I have to answer Yes to the “… has been changed by another application. Do you want to reload it?” message after indenting). I could… Hey, enough already – it’s working.

_geek_glasses_clearThe geek in me is pleased.


Tags: