Comedy web ordering with the Carphone Warehouse….

The Carphone Warehouse

Image via Wikipedia

I’ve just tried to order my son a new LG Cookie for Christmas from the Carphone Warehouse. Tried being the operative word here. I’m absolutely amazed at how we’re still struggling to get the whole on line ordering experience right. I’d filled in the form, and the list of errors were almost as long as the form itself.

I’d like to think that I’m not really that big of an idiot that I can’t get an on line order form right…but Carphone warehouse succeeded in spectacular fashion. So when the website even gives me 3 errors regarding my home phone number I’m left wanting to click the close icon.

Error #1 – the phone number is too long. Why ? See error #2.

Error #2 – the phone number has spaces in it.

Error #3 – the phone number is invalid.

Forgive me for thinking that it’s really at the bleeding edge of technology to determine whether a phone number is valid or not. With or without spaces. Id entered 3 phone numbers. So there was a total of 9 errors, just for the phone numbers, when the code could easily have stripped out the spaces, or even god forbid, used something as technologically advanced as a regular expression to make sure it was valid.

After fixing the errors I’m left with the final error. It appears my credit car information is  invalid. Why? Oh, we won’t actually tell you that. We’ll just say that there’s *something* wrong. Did anyone do *any* usability testing on this? I can’t believe it. Absolutely atrocious for a single page form.

Thank you Carphone Warehouse. And, Goodbye.

Oh, if anyone from the Carphone Warehouse by chance happens to read this, I’m available to help you out. Trust me, you need all the help you can get.

Reblog this post [with Zemanta]
Posted in General, Personal | 1 Comment

Designer stereotypes?

Where did that whole designer stereotype come from? I was amazed to see that it’s still alive and kicking when this pair of black turtleneck sweaters dropped into my inbox!

When I was heavily involved in the games industry, you could spot a designer a mile away. Strangely enough I didn’t see any at Team17 (everyone there was far too cool 😉 , it was usually attending a show, or when we had visitors that the turtlenecks were out in force!

Black turtlenecks should be raised to the same status of socks and sandals.

Reblog this post [with Zemanta]
Posted in General, Personal | Leave a comment

Long Time No Post part 2!

PALO ALTO, CA - SEPTEMBER 16:  The HP logo is ...

Image by Getty Images via Daylife

On the home front it looks like my time at "EDS an HP Company" may be coming to an end! They’re big, but they’re just not big enough to contain my passion and enthusiasm! I’ll know more tomorrow after a discussion with my superiors, but I think my future lies elsewhere.

Hint : I’ve updated my Contracting CV.

Posted in General | Leave a comment

Long time, no post!

Wow, its been so long since my last post that I’ve almost forgotten what a blog is. Well, almost.

Many things have happened both personally and professionally, hence the post hiatus.

But once again, I’m back and hopefully this time, I wont be straining myself trying to crank out humongous posts that take days to complete. Maybe if the posts are short and sweet i’ll end up with a more regular flow of useful snippets, rather than a 3 month delay then a 20 page monster article. These will still happen, but they won’t be the focus of my attention.

Anyway here’s a few things that have been keeping me away from the blog (if anyone’s interested!)

  • I’ve won another award for the project I’m working on – this time it was cash. Cold hard cash 🙂
  • I’ve come to the uncomfortable conclusion that I’m working masses of overtime for the wrong people, so it’s time to redress the balance. I won’t be working less, I’ll just be shifting what I’m doing, and who I’m doing it for. Working less is for sissies.
  • I’m setting up a Micro-ISV. After being infected with the Micro-ISV bug from my good friend Tim Haughton. After many conversations, I’ve been convinced that my talents lie elsewhere. Well other than permanent employment that is. More about this later.
  • I’ve been put through the assistive technologies wringer, and befriended a blind user who’s convinced me of the value of proper screen reading access. I can’t imagine using a PC without seeing the screen but he manages just fine. Truly amazing. One thing it has made me aware of is the vast market for well written useable products that aid users, even if they’re just partially sighted. Our WPF application at work has scalable fonts throughout, and i don’t think there’s a single user that doesn’t change the font sizes to make them larger.

Anyway, that’s enough posting for this entry, or I’ll be back on a 10 pager. I *will* be back tomorrow with a post about a good way to allow assitive tech to read the stuff on a WPF application under Windows XP. Damn that was tricky.

Reblog this post [with Zemanta]

Posted in General | 4 Comments

SSH, Safe surfing and avoiding the wrath of the Net Filter

Traffic control in Rome, Italy. This traffic c...

Image via Wikipedia

Many of my friends often wonder how to avoid their corporate firewalls, and secure their traffic against snooper. Well, its pretty easy to avoid the network traffic cops.

People need a method to be safe anywhere where they end up logging on outside their homes, where they have (mostly) all of the privacy and security they need.

Maybe they just want to browse the latest torrents, or god forbid run a P2P client outside their own network.

Obviously there are many restricted uses of corporate resources, (should you really be downloading playmate images at any time outside your own home?!) but reading private emails in your dinner hour? Checking how your shares are doing ready for the purchase of your 60ft yacht?

Well I often wondered that too; how I’m going to get a 60 foot yacht, not about tunnelling IP traffic 😉 !

It turns out my esteemed WPF co-worker, Tim Haughton, has just put up a nice blog entry about how to set yourself up to do just that. Check out the offending blog entry 🙂 He’s articulated much better than I could.

Oh, and happy surfing.

Reblog this post [with Zemanta]
Posted in Hackery | Leave a comment

.Net3.5sp1 RTM?

A little bird’s told me that the .Net3.5sp1 will be RTM on 11th August! Wonder if the Pixel shader API has been rationalised… Multi-texture here we come 😉

Posted in General | 2 Comments

No post?

Ok, my bad. I’ve been real busy at work WPF is really soaking up all my time right now. That’s actually a good thing, anything that forces more WPF into my head can’t be a bad thing.

On an alternate note I’ve solved the iPod software problem. I’ve settled on winamp! Although it has native support for the iPod, it’s pretty poor, but there’s a much better plugin available called ml_ipod. Support and features are excellent, and because i’ve been using winamp since it first came out, getting used to the feature set was a doddle.

Anyway, anything to get rid of iTunes! Winamp+ml_ipod all the way!

Posted in General | Leave a comment

10,000 Visitors!

How one earth did that happen? Someone has to be messing with my stats! I didn’t think this muck was that interesting. Really. See, my wife is wrong when she says I have no friends. Do virtual friends count? 🙂

Posted in General, Personal | 4 Comments

System.Windows.Data Error: 19

Thought I’d brain dump a little problem I came across earlier today. Data Error 19.

Here’s the full error.

System.Windows.Data Error: 19 : Cannot convert ’40’ from type ‘Int32’ to type ‘System.Int64’ for ‘en-US’ culture with default conversions; consider using Converter property of Binding. NotSupportedException: ‘System.NotSupportedException: Int64Converter cannot convert from System.Int32.
   at System.ComponentModel.TypeConverter.GetConvertFromException(Object value)
   at System.ComponentModel.BaseNumberConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)
   at MS.Internal.Data.DefaultValueConverter.ConvertHelper(Object o, Type destinationType, DependencyObject targetElement, CultureInfo culture, Boolean isForward)’

How did I get here? Well, I have a bunch of generated values that come from a data dictionary , they’re generated into classes that contain Key/Value pairs, where the Key is an Int32.

This list is shown in a combo box, and the current value of the combo box is then bound to a CLR value type in a class. The only problem is that the classes CLR Type isn’t an Int32. It’s an Int64.

Now I know the the real fix is to generate a list of values for the combo box who’s type matches the destination bound value of Int64. The trouble is that I don’t always have that type information available. Thing is, I can’t remember any other control having the problem of changing types.

Heck,if you look at the conversion that it’s trying to do, it should be able to cope, converting an Int32 to an Int64 isn’t a narrowing cast, so there should be no problems with overflow. Eitherway, i just want to bind up this stuff and not worry about the types.

So, I wrote a small test app to verify what was going on.

boundVaueTest

Both the slider and the combo box are bound to an internal value, called surprisingly , "BoundValue" that’s declared as an Int64, and there’s a textbox that is then bound the "BoundValue" to show its current value.

 

Continue reading

Posted in General | Leave a comment

I’m A Winner …. Again! Or… how to win free stuff with SCRUM :)

Free Vouchers this time. Apparently I’ve won £100 of vouchers for implementing the Scrum methodology! I have no idea which shops the vouchers are for, only that they’re high street vouchers, so I suppose that’s cool, they could have been for kitchen tiles or something equally as mundane. But, heh, I’m not really doing anything to achieve these awards (like my iPod winning idea), just kind of, well, plugging away at changing things. I guess someone’s starting to listen!

Anyway, we’re kind of a heavily entrenched Waterfall development shop so, I thought I’d liven things up and ignore the people that said we couldn’t do Agile here :). So I merrily headed off down the Scrum path – having done it before I’m pretty sure by now the shoe will fit.

Friction, damn I thought I was on fire. Straight from 15 years of waterfall into scrum caused friction on a galactic scale – most of it not from the project itself, but the organisation. So, while the project works pretty well, and customer satisfaction skyrockets, the rest of the organisation is playing catch up. Still I guess nothing worth doing is easy. If it wasn’t for the customers complete buy in I don’t think I’d be winning awards, I think I’d be winning P45’s. (for you international readers that’s the short walk to the long unemployment queue…)

So, the best bit is actually that the customer loves the method so much that they’re bending over backwards to keep us using it, so much so that I hear they’re making requests of other projects to be run the same way! So from the customer side I’m starting to shine so much you need sunglasses when you approach my desk, whilst from our side I have dozens, if not hundred of disgruntled waterfallers baying for my blood. Some people simply don’t want to change. Heh, you can’t please all the people all the time.

Here are a few things I’ve noticed using Scrum with non-technical customers that are worth pointing out.

  1. It doesn’t matter how much work you’ve done, if its not on screen its not done.
    You can have web services coming out of your ying yang, and if the customer can’t push a button and see it work you haven’t done it.
  2. It doesn’t matter how your project schedule is organised, if it doesn’t list when visual elements appear, they’re not interested.
  3. Make sure that you’re fully resourced before you start.
    Ok, a bit obvious you may think, but the customer may not be your best friend when it comes to telling them you cant deliver feature X,Y or Z because Johnny Programmer hasn’t joined the project yet.
  4. When organising the project by allowing the customer to prioritise the feature set for the product before generating each sprint, make sure that they’re prioritising Visual Features. They won’t understand anything else.
  5. If the customer is involved in providing data to you, make sure they’re in easy to edit formats like word or excel. Deal with translation or the data conversion yourself, hiding it from the customer. Hint : customers don’t like angle brackets.
  6. Customers like deadlines, make sure that the door swings both ways and provide dates you’d like them to have things ready by. It’s a good idea that keeps them working towards the same goals as you and makes them feel committed to making the product a success.
  7. If you’re having real users testing the application, make sure that its as close to zero defect as possible. Users take great delight in pointing out the obvious like the focus rectangles are missing, they’re not bothered that you haven’t finished that bit yet.
  8. Make sure you have customer identical kit  before you start. Requesting kit wasn’t the problem, the waterfall police ended up delaying requests because we weren’t in the testing period yet.
  9. Prepare to spend a lot of time repeating yourself – especially to the crews on your side. If they’re still in waterfall mode, it will be a while before they ‘get’ it.
  10. Play nicely with others. Although the agile methods typically mean you do everything, it could make whole gaggles of people feel redundant and won’t win you any friends. Even if you can automate all your testing, make sure that your testing dept buys in, and maybe you could even get them involved in learning new testing methods. Who knows they may even want to help provide some code for you. Make sure that everyone feels needed. 

Not an exhaustive list, but things worth keeping in mind if your customer isn’t technical, or they don’t have anyone au-fait with the technology and methodology you’re using.

For the current project I’m using WPF  and scrum – so we’re already 7 years ahead of most of the crowd who are barely breaking free of VB and winforms 1.1 😉

And,for those of you wondering, yes, you can do LOB applications with WPF. 🙂

Technorati Tags: ,,,

Posted in General | Leave a comment