Archive for the ‘annoyances’ Category
Solution Focussed
Given that there are Things That Need To Be Done:
If you don’t do something, someone else has to.
If you don’t do the work, you are creating work for someone else.
That’s why when you come to me with reasons why something can’t be done, you’re really saying you can’t be bothered figuring out how to get it done, and you want me to do it for you.
So don’t get pissy with me if I just tell you how to move forward instead of going ahead and doing the work for you.
Requirements
“We need a CMS.”
“Well, maybe you do. What do you intend to publish?”
“We won’t know until we have a CMS!”
This very exchange took place about 2 months ago, and I failed to hear the giant, raging alarm bells.
Fast forward to today: I’ve integrated a CMS with our existing stack and now our designers, developers and UX team are ready to begin creating the assets and modules our marketing team will need for their content. So I let our marketing team know that they can begin creating content in the CMS, in fact we need them to do so so that we can discover what assets we need to create.
The response?
“How can we create content if the assets aren’t ready?”
Uh..
“We can’t create the assets without the requirements. We need you to spec the pages to generate the requirements. It’s a CMS, so you can spec the pages by creating them directly.”
“We won’t know what content to create until we have the assets to work with.”
What’s really going on here is a combination of an avoidance of work and a desire to have an impact. Specifically, a marketing team leader who joined the company quite recently and wants to impress. So us integrating a CMS system is really his/her big thing, a real and tangible project to gain kudos and add to the CV.
Nevermind that we have a team of highly competent front-end developers. Or that although our release cycle is currently a bit long (2 weeks) we’re automating that process and soon we’ll be able to release at the drop of a hat. Or that we don’t actually update content very often. But I digress – this post is about worker-avoiders.
Now that we’re at the stage where we need the marketing team to step up and pull their weight, I’m realising that what they want is to have everything (everything) laid out like a giant lego set, with which they can create a website by plugging all the pieces together. They want the pieces to be created before we know what they should be. They don’t want to have to specify what those pieces should be. They don’t want to work.
There are a lot of people out there like that; people who avoid work. Often they’re not actually blocking anything, so you can just sidestep them. Usually they don’t want to block anything, because they know that would mean they’d need to stick an oar in and help. But sometimes they lead you up a cul-de-sac, and then you’re stuck – you’re relying on them. That’s not where you want to be.
Now I’m in a situation where I need something done and I’m deeply concerned that it’s just not going to get done. The communication is also terrible (these people have never worked in an Agile way before) so I’m concerned that even if the work does get done there will be revisions coming too late. I’m at the mercy of people who are lazy and ascribe too much significance to their role. Which means that making requests around how they work is fraught with risk.
It’s difficult to spot a work-avoider, but some of them are also work-creators. Like in this situation, this is someone who creates a load a new work but doesn’t take any ownership over getting any of it done. The giveaway, in hindsight, was that first conversation:
“We need a CMS.”
“Maybe you do. What do you want to publish!”
“We won’t know until we have a CMS!”
That person did not know what they wanted to use the CMS for. What I should have realised, from that confession, was that they hadn’t done any sort of design or preparation around what content they want to publish. They hadn’t done any ground work, and they had no intention of doing so. What I should have responded with is this: “Until you have some idea of what you want to create, you can’t know what your requirements are. Tell me what you want, and I’ll draw the requirements from that for you.”
This would have the dual benefit of providing you with realistic requirements and, more importantly, forcing the ideas-people to think their ideas through a little. Hopefully during that process they’ll see that some ideas fly, and others plummet through the air like fat, stunted chicks whose mothers impatiently nudge them out of the nest and into the real world.
But I only see this in hindsight. Next time I hope to see it coming.
Silverlight MediaElement Complaints and Grievances
In my opinion the Silverlight MediaElement control is shoddy work. No disrespect to the Silverlight dev team, but while I think the product as a whole is great, there are a few issues with the MediaElement that make it really annoying to work with.
This post will continue to be revised as I get around to enumerate all the issues I have with it and writing posts describing each issue in detail.
Complaints and Grievances
- State change events seem to be based on guesswork.
- The DownloadProgress property isn’t always what it seems
- MediaElement class combines responsibilities for both loading and rendering video making it impossible to make use of just one of these aspects
CurrentState Guesswork with Silverlight MediaElement
The Silverlight MediaElement control has an event CurrentStateChanged. If you’re building a Silverlight app that makes use of video this is crucial to being able to implement state logic. You may want some other UI elements to wait until a video is ready to play before they do their thing, for instance. The idea is that you listen for the event and when it’s fire you check the _mediaElement.CurrentState property to see what state it’s in. CurrentState will be a value like Buffering, Paused, Stopped, Playing etc.
Well annoyingly the CurrentState value isn’t always what it should be. I’ve worked with MediaElement a lot over the last few months and I’ve noticed that when a video finishes buffering its state could be any one of
- Stopped
- Paused
- Closed
- Opening
- Pondering
- Being coy
I guess that external factors like browser cache, video format and progressive downloading might play a part but, come on, seriously, the runtime really should be providing the solutions or workarounds to these problems so that I don’t have to. In a lot of cases there simply is no workaround. Very aggravating indeed.
Silverlight MediaElement.OnDownloadProgressChanged – Lies, Damned Lies and Statistics
Add this to my list of annoyances regarding the Silverlight MediaElement.
One little snag you might run into is that when Silverlight is downloading a video over progressive download it may actually call the OnDownloadProgressChanged event twice when the progress value is 1.0. I guess this is a rounding issue but it’s really, really annoying because there’s no practical way to determine when your video is really downloaded or just sort-of downloaded. Bah.
Banks – When Will They Get It?
This year we have been enduring a recession, and the public have lost faith in the banking industry. As a reaction to this banks have changed their communication strategy to portray themselves as reliable and as a safe bet. ‘We have lower interest rates than the others!’ and ‘We’re safer than the others!’ and ‘We won’t lose your money like all the others!’. Problem is, as they’re ALL pushing these messages, there is no way to differentiate at all, unless you regularly read the financial publications which, I’ll be honest, I don’t.
EMC/Conchango recently completed a project for BarclayCard which provides some of what I want, but only for credit cards. Very cool and kudos to them for moving online banking forward.
Online Banking Is Still In The Nineties
Here’s what I want from a bank: better online service. Specifically, the following:
- budgeting tools (enter my known upcoming expenses, any incomings and set a daily spend limit)
- breakdown of my spending
- easy, secure mobile access
Right now I use a Google spreadsheet document to determine my max daily spend and project my net balance at the end of the month. All I have to do is log in to my digital banking service, copy my current account balance and paste it into a cell in the spreadsheet and I know exactly where I’m at. I enter all my known expenses in one column and known incomings in another and I get a figure that tells me how much I can afford to spend per day between now and payday. Which is fine – it works.
But if a bank offered this in their digital banking system I could cut out a couple of steps. And it wouldn’t be so difficult to provide a rough idea of the types of things I’m spending money on – groceries, smoking, drinking, bills, rent, ATMs… that would be really handy information. There are tools to do this, Wesabe for instance is a comprehensive tool, but it’s not free. And you have to download a statement data file and upload it to the site for them to process. No, I want my bank to just give me those features in the same site I use to move my money around.
Mobile! Come onnnnnnnn
Mobile access is a big one. I tend to only keep a small amount of cash on my debit card, no more than what needs to be there to pay bills and for my daily spend. Sometimes, though, I get caught short, and I need to move some cash from my current account to my debit account. At the moment I CAN log in to the digital banking site but only because I’m using a clever phone. On a Nokia N95 it’s incredibly difficult, and usually fails, because the pages are loaded with Javascript validation code which causes a screen refresh every time I enter a character in my password. Often the Nokia will just drop connection and have to rejoin the 3G network, which gives me a new network address which the banking site sees as an attack of some kind and sends me to the beginning of the login process. So it’s very, very difficult and frustrating.
It doesn’t need to be! All I need to be able to do, really, is move money between my own accounts, and login easily using my pin and password. That’s it. Just give me the ability to do that, and make the security a little more mobile friendly. Give me small pages and big fonts. And give me the ability specify a confirmation step, via email or SMS, in order for a mobile operation to complete. That’s all that’s necessary!
Early Bird Catches The Worm
So to tie all this in to my opening paragraph – mark my words that the first bank that does all this, really does provide a complete online solution, will win the lions share of customers. Right now anyone’s business is up for grabs, because noone is satisfied with their bank. All any bank needs is to provide a real point of difference that provides real value to customers, and they win. Simple as that.
I want Google to start a bank.
