The importance of ‘owernship’ in technical partnerships

In my career to date, I’ve managed technical suppliers, and been a supplier myself.

Good professional partnerships can be defined by the principle of win / win. If both parties feel they’re getting something positive from the relationship, beyond just the money, then it’s a relationships that can grow. In a client / supplier relationship, those positives can include learning, opportunities to reach new areas, streamlined, easy processes or perhaps just a pleasant working relationship. However, if the criteria of ‘win’ for either party is purely about the money then things can get rocky fast. On the supplier end this can happen when they are paid for services they’re not interested in supplying or can’t supply effectively. At the client end, it can be about refusing to invest in services they value. In both cases, frustration looms.

Good suppliers understand what clients are trying to achieve, and provide solutions that meet the client’s goals while ensuring the process and approach also works for them. In the parlance of flight safety videos, suppliers need to put on their own oxygen mask before helping others. A supplier that provides services it doesn’t gain from does no one any favours.

An example of a win / win relationship in tech would be an IT company understanding the need for backups. If they research solutions and implement those solutions in ways that are highly efficient for the IT company, they can also charge a premium on top of supply costs for the research and setup. The better it works, the happier everyone is. Happy customer. Happy supplier.

A bad example addressing this same problem would be the IT company telling the client they need a backup solution, offering a range of confusing options, some of which are difficult for the IT company to manage, and blaming the customer when the cheap but ineffective backups don’t work.

In short, good suppliers own the problem and the solution, and empower clients to achieve their goals. This isn’t about removing choice, but it is about acting as a trusted adviser understanding what the client is trying to achieve. They understand the client’s goals and engender trust, so customers are happy to go with recommended solutions, and are happy to pay for a good service.

Warning signs of a bad relationship, which I’ve experienced recently, are conversations with your supplier that include:

“We made some changes because [Person A at client org] and [Person B at client org] weren’t happy with the performance. Perhaps that broke it. I’ll ask [Person C at supplier org].”

In this case the supplier isn’t owning the problem and they aren’t owning the solution. The subtext is “you think it’s a problem, but we don’t really agree, or perhaps we don’t care enough to have a view. We also don’t really care what we might have done to break it. I’m now passing the buck internally.”

“We don’t know how it works because your previous developer built it.”

Another scenario of not owning the problem or the solution. They aren’t proposing a way to solve this long term, and are just providing an excuse for why they don’t know what’s going on. This could be transformed into a relationship you’d value with the next sentence: “And so we’re going to work it out and document it so we can handle this in future”.

At heart, suppliers don’t own issues when the client’s problems don’t fit their solutions and their services aren’t aligned with the client’s business needs.

Almost the worse case for a client is a situation where the problem and solution remain ‘owned’ by the client, but a supplier is doing some work around the edges. This gives a completely false sense of security and progress, but in reality is likely to be making a complex situation even more complex.

If this happens to you as a client, at the very least you should address this with the partner. However, in my experience it’s almost always time to cut your losses and find a partner who’s business needs and solutions more closely align with your needs and problems.

 

Are Twitter trolls the kids (bullies) you hated at school?

A few months ago I had the briefest of brushes with some Twitter trolls. Under the guise of free speech yada yada they sent some aggression my way about an opinion I dared to share on Twitter.

As a result, I got to thinking about who these people are, and started to wonder if at least some of them are the bullies and mean spirited people I used to avoid at school. That would make a certain amount of sense to me: there were people who thought tripping other kids up in the corridor was funny, and would rip you off in a playground deal because you weren’t sharp enough to mistrust them. They’d call people names and laugh at the weak kids. They were bullies. At varying levels, sure, but bullies. And something happened to those kids when they grew up. But because I avoided them, I wouldn’t know what.

I assume some of those kids just grew up and experienced some more of life and became compassionate people with open minds. Some of them are probably my friends in adult life.

It wouldn’t surprise me, though, if some of those kids turned into the people who think hurling abuse at people on Twitter is funny. And spend their time finding women who have opinions they don’t agree with, so they can be brought down a peg or two. And of course it’s not all black and white – some of them probably hold down really great jobs, have nice stable family lives and a circle of friends who likes them. Just like some of the bullies at school did. But they’ll still be hurtling abuse on Twitter like people with no social skills.

And then I wondered if those people are, in fact, the majority. Are these the people who read the Daily Mail and the Sun?

And then I got depressed and decided not to think too hard about it anymore.

Football-free sports headlines from the BBC

This FA Cup Final day I built a tool to show BBC Sports headlines without the football news. It lives at footyfree.bojates.com.

Why did I do this? Simply, because I’m a sports fan who can’t be bothered with football. In recent years I’ve spent varying amounts of time gripped by cricket, Formula 1, tennis, golf, snooker, all Olympic sports (summer and winter) and can usually find the joy or interest in all this human endeavour. Football, however, leaves me cold.

As a result, keeping up with sports news is a frustrating affair, always filtering out headlines about football, especially ones that aren’t obviously about football initially.

I’m also a fan of the BBC sports coverage and for a long time I’ve wanted a football-free version of their sports homepage, showing everything but the footy.

Tired of waiting, I built it myself. footyfree.bojates.com takes an RSS feed from the BBC Sport site and removes stories that link to articles with ‘football’ in the url. It’s not the world’s most elegant solution, but it basically works.

So, if you, like me, love sport but can’t be bothered with the footy, I hope you enjoy Football-free BBC Sport.

‘Liking’ is pointless. Apart from that sense of belonging you get…

Someone I follow on Twitter was one of 41 people who retweeted this yesterday from Jacob Harris.

On my deathbed, I'm definitely going to regret not having spent enough time Liking things on the Internet

I don’t know Jacob, but his tweet got me thinking. On the one hand, his point it spot on. ‘Liking’ things online is hardly a way to add value to the world.

What it made me think, though, is that although on your deathbed you are unlikely to wish you’d done more ‘Liking’, it’s very possible you will feel a lack of social connection or wish you had a closer group of friends. This connection, communication of shared values and interests, and maintaining of friendships, is what ‘Liking’ can bring. I would love to read some anthropology, and I’m sure it must be out there, about how communities and social groups are formed and strengthened through ‘Likes’. And, of course, through retweets.

the snailr project – postcard 90!

Anna Pickard writes a lovely and entertaining blog called Little Red Boat. She recently had the BRILLIANT idea of ‘the snailr project‘, which entailed travelling around the US by train, sending postcards to people who’d requested them. She describes it as:

One journey of almost 7000 miles, six new cities, eight trains, fifteen days, and every vignette, observation and fractured bitty-bit of the travelogue broken up and sent as status messages the old way. By postcard. To a bunch of random people who asked for one. Because travelling slowly is nice. And so is leaving a trail to see where we have been.

I requested, and I received!

This is the front of my postcard:
Snailr project - card 90 front
Text reads: “the snailr project notes the interconnectedness of all things”

I particularly like this because my doodles often look like this sort of colouring in. Note that she has obeyed the golden rule and no adjoining areas are coloured in with the same colour. Phew. Although, there are two white sections next to each other. I can cope.

And this is the back:
Snailr project - card 90 back
Text reads: “We step out onto the streets of Chicago, after going to sleep in Memphis, and the streets are teeming with people on their way to work or, worse, to meetings half way through their work morning. And then us. Oh, and one guy in Leiderhosen. He walks past us on a bridge going into the financial district and thrusts a flier at us. “Oktoberfest, folks? Starts today at the…” “No THANK YOU.” we say, firmly, hoping to convey the fact that we are grownup, responsible travellers and care little for knowing the whereabouts of such tripperies, or drinking in the morning.

“An hour later, after spending 40 minutes searching for the main city post office to get more stamps, I eventually find it… hiding behind the Oktoberfest tent. Dagnammit.”

We’ve all been there, one way or another…

Here are some reasons I love this project:

  • It’s simple
  • It’s joyous
  • It’s personal
  • It’s not TOO personal
  • It’s a way to think about travel
  • It’s a way to think about the little bits of information we share with people we don’t necessarily know, and remind us who those people might be
  • It’s witty
  • It’s brave

I’m very pleased to have received a card and played my part. Thank you, Anna!

Permanence of online activity

In the early days of blogging and the internet, it was considered very important to create a page and leave it there for all time – changes after publication were frowned upon and had to be declared. This was important so people could reference the page reliably and was also considered ‘honest’. This is still true for a lot of blogs, news sites and product sites.


One of the things that I have struggled to understand about Facebook and Twitter is the lack of permanence. These are fuzzy spaces where people can play and redefine themselves and make tangential jokes about the current context that don’t make sense years, months or maybe even days later. And yet, they are also spaces that define an online personality, affect job prospects and even get you in trouble with the law. They are like postcards, indexed and made available to the world.

(Interesting postcard link via Russell Davies.)

NakedTranslations.com – building a bilingual website

Today we launched the new version of NakedTranslations.com, a website for my friend’s translation business. The site is entirely bilingual, including a blog, and raised some technical challenges. Here’s how I did it.

Defining ‘bilingual’

We wanted to be able to do the following:

  • give the user a clean experience in their language of of choice, so they can navigate the site entirely in English or French, but switch between the two at will
  • have a distinct url for each entry, with the url relevant to the language used (for example, the related posts “New Design” on the English site has the url
    http://www.nakedtranslations.com/en/2009/new-design
    while the French entry about the same thing is called “Y a du changement dans l’air” and has the url
    http://www.nakedtranslations.com/fr/2009/y-a-du-changement-dans-lair
  • keep track of comments for each entry, split by language (so, French and English comments don’t get mixed up)
  • link between blog entries of different languages

Choice of platform – Movable Type

The site uses Movable Type, which is certainly not my blogging software of choice. This is because MT allows you to have multiple blogs under the same login, and reference between them through Custom Fields. It also allows us to set up the language for one of the blogs to be French, while the other is English, making it easier to get blog entry dates to automatically use the right language and so forth. This allows us to have the proper urls for the language used, and link our blog entries between languages. MT has a lot of things going for it, but good documentation, a friendly user community, and a slick user interface are all missing from the mix. A fair amount of the documentation is out of date or missing a key element, and I was shocked by some of the defensive rudeness in the forums from people who said RTFM without pointing to the relevant bit of the FM or writing anything useful in the FM. Anyway…

But what about WordPress?

There are a lot of very nice looking WordPress plugins and tweaks that do similar things, but none that met our requirements entirely. The other thing that made me nervous about using WordPress was the degree of modification and tweaking required to get it working and I was concerned about maintanance with WordPress upgrades in future.

These are my notes about the plugins I found. Please keep in mind this was a few months ago and our bilingual definition is not the same as other people’s.

ZDMultiLang
http://blog.zen-dreams.com/en/zdmultilang/#4
Wordpress plugin.
Works and is maintained. Allows easy switching between posts in different languages. Will probably work well with WordPress languages.
However, it does not let you specify different slugs for different languages, which will emphasise one language over the other. It requires you to set a primary language and then just enter translation for the other. This is neat, but doesn’t use WP’s post architecture. Again, neat, but I’m concerned about long term mainantance issues.

WP_Multilingual
http://made.com.ua/uk/works/wp/multilingual/
Not as well supported as ZDMultilang.
Requires FCKEditor
Allows for category translation
Again, not possible to change the slug.
It appears to not be actively maintained and it doesn’t work robustly enough. Nice idea, though.

Gengo
Looks like it would be good, but not stable at the moment

YammYamm
Doesn’t quite work with the latest WP.
Doesn’t link posts in different languages.
Does nicely allow for posts to all live in the posts directory properly, which of course means you can edit the slugs etc.

Basic Bilingual
Does not allow for different pages properly
Very basic.

Language Switcher
Doesn’t maintain the sense of proper bilingualism

WordFez
Switches text on the page. not what we want.

qTranslate
This is tricky – it holds all translations of the text in the standard fields, and filters output accordingly. Does not allow for different slugs, though.

xLanguage
All in the same entry, which seems nasty to me. Where do the comments live? Etc.

And the others?

I looked briefly, but seriously, at Textpattern, and suspect this would have done the job as well, if not better, than Movable Type. It seems to have plugins designed exactly for this purpose. I didn’t pursue this further because when we build the first version of this site a few years ago, MT was the software of choice and I didn’t want to add learning a new system into the mix, especially as my first investigations with Textpattern revealed quite a few areas of minor frustration that I would have had to address. Better the devil you know. In retrospect, and with the hassles I’ve had with MT, I’m not sure that was the right decision, but there we go.

Implementation

One of my key concerns was ensuring the templating system was as easy to keep track of as possible. I elected to use one set of templates for both blogs, referencing the files at the same location in MT’s template setup. This removed the risk of making a design change on one side but not the other. I then created a language template which gets included in every page, which sets PHP variables for all the static text on the page, with a version for French and a version for English. As the site gets published to static HTML (in the main), I was not too concerned about adding a lot of PHP language processing overhead for the template, since it only needs to do the work once.

The language file has entries like this:

$en["recententries"] = "Recent blog entries";
$fr["recententries"] = "articles récents";

And the template then uses these like this:

< ?=${$language}["recentcomments"];?>

To get the linking between blog posts, I installed the LinkedEntryCustomFields plugin (if
you go this route and use this plugin, you need to use the Pro version of MT, which is free to individual pro bloggers). This is set up to create a linked entry field for each individual entry on both blogs, and Céline has to select the related entry when she enters her new entries.

Here is more detailed implementation info, since it took me a while to gather all this, and it might help someone:

Use the Linked Entries plugin to allow you to create links between entries in different blogs.
Set up a French Version custom field in the English blog and an English Version field for the French blog.
If your Linked Entry is called english version, then you will probably want code like this on the French template.

Best to call your linking tags something like English Version and French Version, rather than using ‘entry’ keyword. This will make it easier when you have to code into templates and use ‘entry’ as a special term to access the entry info.



  English version: 
  ">
    < $mt:EntryTitle>   
  


NOTE: The var name needs ‘entry’ at the end to access the correct link and text. In this example: entrydataenglish_versionentry.
NOTE 2: Some of the spaces are displaying a bit odd in the code snippet. Check the spaces are as they should be if you use this.

I automated the links between the old entries by making guesses based on date of publication and this SQL. If you are in this situation:

Use this sql to extract the blog ids
SELECT date( a.entry_created_on ) , a.entry_id, a.entry_title, b.entry_id, b.entry_title
FROM mt_entry a, mt_entry b
WHERE date( a.entry_created_on ) = date( b.entry_created_on )
AND a.entry_blog_id != b.entry_blog_id
AND a.entry_blog_id =1
AND a.entry_status =2
AND b.entry_status =2
ORDER BY a.entry_created_on

Remove entries where there’s more than one on a date and deal with those separately (keep a list). Create one list for insert for English and one list for insert for French. Insert direct into database in mt_entry_meta table.

set the first id (the english entry id) as entry_meta_entry_id, the french entry id should have heading entry_meta_vchar_idx
add a heading entry_meta_type and put: “field.french_entry” on each line.

When this is tidy, copy the data below the existing data. Swap the ids with each other, and put field.english_entry in the entry_meta_type column.

Then delete the date and title fields and import into the database.

Bells and whistles

The look of the site was nothing to do with me. Andy at origin8 creative did all that and was a pleasure to work with in the implementation phase. The front end coding of the HTML and CSS was also nothing to do with me, with Sarah making that work well for all platforms and thinking about print stylesheets and the suchlike.

The fancy font work is sIFR, which works nicely when it does, but drove us all a bit crazy in terms of documentation and versions of sIFR and so on.

The links page works by doing multiple javascript calls to delicious – one for each of the tags pulled in. This allows Céline to save her bookmarks to delicious and have them automatically included on her site as she wants them to appear. I’m not happy with this approach, especially as it has a tendancy to clash a bit with the navigation javascript requirements of sIFR, but it works and I’ll keep looking for a better solution.

That’s that

In all, I’m pretty pleased with the end result and will be tidying up the loose ends over the next few days.

Google suggest scariness – ‘ways to’

I went to Google with the intention of looking for I forget what, starting my search with ‘ways to’. I got a bit freaked by Google’s suggestions:

Ways to - google suggest

I am encouraged that “ways to say I love you” comes above “ways to kill yourself”. On the other hand, you’d sort of hope that people could work out how to say I love you without having to resort to Google. Whereas killing yourself maybe does require some research. And what does it say about MySpace that so many people need to search Google to find out how to add themselves to it? Even more people than need to search Google to find out how to be annoying, in fact.

Now, what was I trying to find?

Guardian print on demand PDF newssheets

It doesn’t happen often, but every now and then I come across something online that makes my colleagues worry. I’ll be sitting quietly at my computer, and suddenly start saying “oh my God. That’s so clever. Coooooool. Wow.”

Yesterday, this happened when I came across the G24 on the Guardian website.

G24 brings you the latest stories from the Guardian, Guardian Unlimited and the Observer – updated throughout the day. There are five pdfs to choose from: Top stories, World, Media, Business and Sport.

The PDFs are free, but well designed, and remind me a little of newsletters in their format. I would love to know how they make these work behind the scenes, but it appears there’s enough of a template to just drop stuff in and be done with it. There’s no attempt to use all the space – a story might run onto a page and then be followed by lots of white space. It’s possible that it’s all done automatically, but it looks a little too slick for that. Regardless, an incredibly clever way to re purpose content and reach the commuter (or lunch) market.