Saturday, June 25, 2005

ProAm software development

I have been considering this article, which looks at the increasing prevailence of amateur software developers, and how they are demonstrating the ability to produce innovative software that consumers actually need, rather than want. Two examples I have is Irfanview (a picture viewer), and Terragen (a landscape terrain genenator - check out the images here, and just go "Oooooo" - then go to Luc's pages, and take a look at what he's doing with version 2. Don't worry...I'll wait...).

Firstly, my attitude to this software (recommend to everyone, at any opportunity) made me realise that building software that people need (or love!) drives its own success, regardless of how "fancy" or feature-filled it is. Because it solves a problem, becuase it makes my life easier or better, it doesn't require any marketing because I promote it. Lesson One: Build software that people need and it will likely be successful.

Secondly, development of successful ProAm software is heavily reliant on its user community to drive development. I was taught early in my career that software development functionality should be driven 80% by the users (of which 50% are those small, minor tweaks which can make such a massive difference to peoples interaction) and 20% by the developer, who often has a broader understanding of the marketplace and can anticipate functionality early on. Its interesting to see something like Terragen, where this model holds true, in comparison to many of the other "professional" software houses where the 80:20 becomes 20:80. At Talis, we certainly used to fall more heavily into the latter category, and I'm gratifyed to see a real drive currently to get "closer to our users". This is coming about in several ways - our more agile development approach which places the customer at the centre of the process, our ongoing overhaul of the enhancement/defect process, our internal review of customer relns processes, our forums and RSS feeds, etc. We're starting to reap some benefits from this already, and I can only see these growing. Lesson Two: Listen to your users, and build to meet their needs.

Thirdly, something I touched upon just then, is development method. ProAms are not weighed down by the cumbersome development practices which have grown up in the professional domain for a variety of reasons I haven't time to discuss. Which is where the more agile or XP methods come in; user-focused, delivery-focused, function-focused. To give an analysis example, in a 4 hour period recently and working with two product managers, we generated enough raw requirements (read "stories") to provide such a shared understanding of what we wanted to build, we could have started an agile development the very next day. And I didn't need to formalise these requirements any further, to cross-reference, and categorise, and model, and specifiy, and review, and get sign offs, and...you get the picture. I can do any of these things if it adds value, but now I ONLY do these things if it adds value. The process doesn't "make" me do this. Lesson Three: Drive the development process, and don't let it drive you.

Final Lesson: It can only be that you should give Irfanview a try, and go and have some fun with Terregen. And that lesson says it all ;-)

Friday, June 24, 2005

Illusions Part1: Wisdom and Knowledge

Gonna be a couple of posts here, hence Part 1. Just re-read Illusions, one of the books that made me question a lot of my personal philosophies about the world, and something I read every so often cuz I have a new perspective on the world as I grow older (thinking about it, there's a quote in there along the lines of "Who am I? Where am I going? What is my home? Think about these every so often, and watch your answers change". I guess that is one of the reasons why I have favourite books I read every so often - because I'm different, so is what it teaches me, what I enjoy about it, etc).

Anyhooo, one of the many lessons I took from this book was that wisdom and knowledge comes from any source at any time, and doesn't fall into the perscribed boundaries that "society" places upon it on what is worth listening to, and what isn't. You are as likely to find wisdom or personal philosophy in the words of Snoopy, as you are in any philosophical or "peer reviewed" text. I detest knowledge snobs, and the pretentions they hold - those that devalue anything because its source is not "valid" or "cool". Basically, if the knowledge or wisdom you find works for you - it adds value to your life or the lives of those around you - bollox to where it came from!

The same applies for choosing your teachers - learn from anyone who has a lesson for you - don't reject it out of hand because of that persons image, or social standing.

In the software development arena, these words apply as readily as in the world of shaping oneself as a person. I learnt more about management and how companies should (and shouldn't) work from, for example, reading Dilbert cartoons than I ever have from any management book I've read. I learnt more about team management and customer service from a manager I worked for as a student temp in an off licence, as I have from anyone in any library or company I've worked at since (and I've been fortunate in my professional career to work with some outstanding people).

Don't get me wrong - I recognise that I am more likely to learn and grow from what society deems to be the "right" sources. BUT that doesn't mean you should ever pre-judge any knowledge or wisdom you recieve because of its source. Open your eyes and ears to all, and assess everything you gather on its own value rather than from where, or who, or how you encounter it!

Wednesday, June 22, 2005

Writing better Blogs

Just skimmed this article written by a journalist on good writing techniques for blogging. A lot of value in here!

Sunday, June 19, 2005

What is the best?

Last night, was talking to a friend about the PS3 and PSP and he mentioned a BBC post talking about the upcoming "console" wars between Playstation, XBox and Nintendo. He said they had proposed question along the lines of "Which one will be the best?" to which all those posturing fools who have bought into a brand start pushing and shoving (about something not even here yet!). I made the point that the debate was pointless, as its more about "what is the best to meet my needs?" I've had the same debate about console vs PC (PC diehards argue wouldn't touch a console, whilst I say just get both as different hardware meets different requirements I may have).

Interestingly, Chris at Lockergnome published this today which makes a similar point, this time about the OS debate. I found the definition of best to be particularly interesting from a business perspective, and the recognition of "the right software for the right user at the right time" interesting from the analyst view. As he concludes, the question "What's the best automobile?" is nonsense - really, the question is "What is the right automobile for you, at this point of time in your life". The point of this post - know your users requirements. Oh, and to consider the defintion of "best" from time to time to!

RSS moves a step further

Followup on my previous post "6 billion different 'casts", came across this on Lockergnome, which points to this article. It talks about tackling this problem of information overload from so much RSS content, to create an automatic "content management and filtering engine for the creation of new content feeds". This is partly what I meant when I was talking about podcasts, and also touches on the philosophy of the Bigfoot project we are visioning currently. Interesting times...

Thursday, June 16, 2005

Useful firefox extension?

Stumbled, in my usual erratic way, on this today - a firefox extension to support the semantic web. I knwo Richard has been working with another (i think) firefox extension which he's showing me later. Wondering if we could use this in any new/cool ways?

Too much noise?

This just caught my attention - IBM employees and their love for BLOGS! Initial thoughts:

- too much noise - how do you cope with all those people shouting their thoughts into the internal ether, and how do you streamline it so you only hear the voices of worth? And even once you've found the right voices, how do you get the right posts? I had very minor dabble at setting keywords up in Sharp Reader, but just far to adhoc. Folksonomy, anyone? Please?

- The fact that people are finding practical uses for Blogs, such as informally communicating on project dev/status (I raised this the other day at work - as our dev process gets more agile, I feel this would fit alongside our more formal project metrics far better. Maybe I'll try it soon, if find a suitablely discrete project)

- Adding business value. All internal Blogs need to add this (well, all employees need to add this - we need to be questioning and assessing our actions every minute!). Does my blog add value to the business, or to the domain? I don't know - I guess the way to find out is to just keep posting. the one thing I find it does do is add value to me, in the way I now have an outlet for "my stream of thought" I never had before, and I get satisfacton from utilising this. And if this makes me work better or happier, all the better.

Monday, June 13, 2005

A new friend!

No, I'm not showing off here - I do have friends. However, this weekend I met my girlfriends friends boyfriend (that make sense?) - a top bloke who works for a major games developer. On the serious side, it was fascinating to find out a bit more about the development approach they take, particularly in terms of specification. This seems to be a single, long spec (100's of pages) rather than a set of more discrete requirements. I'd expected something far more "agile" and less formalised but talking to Rob at work he made the valid point that the level of accountability is such with games manufacture that this formal approach to specification becomes a necessity. I need to confirm this, and hope to get the chance to (I hope didn't make too much of a prat of myself and get an invite back, especially as he has a wall projector - Star Wars Lego just ROCKED!). Long term aim - to maybe get a look at one of their older specs, to meet some of their developers, even to get opportunity to get some of their lot and my lot together to compare notes on dev practice. Don't know how feasible that will be, but we'll see...

On a more "non-professional" approach, got the chance to play with some new gadgets, including the Playstation Portable (PSP). OH MY GOD - I WANT ONE! This is a serious marvel, the screen being the biggest shock with its incredible detail/clarity and no-messing size. But being able to drop movies and pics and mp3s on there just makes it better. Also got chance to look at the Nintendo DS. I'm not a big fan of Nintendo, as find the games childish, but I love gameplay/originaility and this is something this had in spades. But the thing that stood out was the stylus. Just like EyeToy, this provides a unique way of interacting with games which is excellent both in conception, and in implementation. This whole area was one of my "pet projects" at work, which may get realised one day - trying to find new ways to interact with a library catalogue both in terms of physical manipulation (eyetoy, joypad, etc) and creating a UI to facilitate that (I'm also interested in visual representation of metadata - like Touchgraph or MusicPlasma. Oh, and getting somethign like the PSP to interface with our library catalogue - not sure why yet, but leave me pondering that). Finally, the b*st*rd was at E3 for the Playstation3 launch. I've checked some of the videos out now - and reviewed some of the stats that I understood - and this is a teriffyingly powerful piece of kit. Roll on Spring 2006...

Friday, June 10, 2005

Making time for learning applications...

I stumbled across this post a while back, and having just re-read it, I've had a bit of deja vu. Both then and now, my initial reaction was of acceptance and a knowing nod. I've both said "i haven't got time for that" (excel is my flaw - and I'm really trying to address this) (though in part this is from getting Crystal Reports which I know fairly well and pointing it at my spreadsheets) (ok, ok, I'm a fraud!) and had people approach me because I've been seen "playing" with some app which I others can't find the time to invest to learn and want me to pass my knowledge over asap.

Then, both then and now, my little "oh-oh" rings. You see, I spent a bit of time recently touching on interaction design, and Coopers excellent "The Inmates are running the Asylum". And this post is a prime example of the unbelievable arrogance of all those programmers and geeks and IT spods (which I do fall into on occasion, then have to kick myself) who love the challange of learning, or the cognitive friction. Cooper separates them as "apologists" - those who point to the power/functionality of an application, blithely ignoring the difficulity of actually using it - and the "survivalists", the ones that know there is something terribly wrong with the applications they use, that a problem exists. Survivalists know what easy is, know what hard is, and know full well that interacting with computers is hard.

So, this is just a reminder to me - to challange what I read, even when recommended from a good source. And to develop software that meeets the users needs, accurately, with the minimum cognitive friction possible. I want users who use software I analyse to turn round and say "its easy to use", "its intuitive", "it does all I want and no more", "it works out what I want to do, and just does it". And I'll be doing just this on a new "project" which more will be said of soon...

Tuesday, June 07, 2005

All hail the mighty JCB song

You've just got to love this song, for the whole joyous warm fuzziness it imparts. And the video is just divine (download or stream on the left hand side of the page)

Go and buy, I say! Now...run you fool!

PS: Nice site as well

Censorship - bah!

Just picked this up about China removing unregistered websites. Made me go grrrr....

Friday, June 03, 2005

Valuing the analyst role - first convert!

Was having some beers the other week with a good friend, Hairy Dave. Being hairy, he is one of natures programmers born and bred. Anyhow, having been a librarian who's now converted into an analyst, I have over recent years moved from a position of "Hairy Dave's talking gibberish with long strange words" to being able to hold a fiarly reasonable conversation with him regarding IT. Over recent months, as I have actively tried to develop myself, we've began talking about methodolgies and process generally, and analysis specifically.

You see, as a programmer, Dave is fearful (read "can't see the point) of analyists. He was very much a "just code something". Now, it was excellent, clever code cuz he's a VERY clever man but at no point did the user get involved. They had one user rep at the time, a programmer who developed their system x years ago, and he was too busy to give them more than "it needs to do that" - despite the fact that knowledge was now out of date. Dave used to go on about all the probs they'd created, or solutions they provided which turned out didn't match any problem the users actually had, and I'd expound about analysis, talking to the users, understanding their process, etc. He'd politely nod, quaff more ale, and so the evening would progress with increasing amounts of arm waving.

This weekend, we had a breakthrough. Dave's just started working for a new company and he was instructed to go and talk to the users "for an hour" to find out what they wanted. It sounded to me a bit like "we need to tick that off the project plan, so we can move to coding". Now I've been passing Dave on various useful sites recently, like agile modelling. He even sent me one, for Joel (which I'd read and loved - particularly his stuff on functional specs, which I immediately directed Dave to). Turns out Dave ended up with these users for 4 hours. He discovered that not only was the software they were using a direct barrier to their workflow (e.g. we do this, then this, then this, then this just to do this) or different to their business process (e.g we can't do this, which we do every day), or completely invalid (e.g. we never use this) but actually discovered they were not doing some other things which they should have been. He left and actually wrote code that turned 10 steps into 1 for the users, added tweaks that made a BIG difference to their lives, and reported back that certain "mandatory" tasks the business required just weren't being done.

But the great thing was how he talked about how valuable the expereince was, about how he actually knew he was programming"the right thing" and the reward that bought, about how difficult it was to find out what the user actually wanted and how he wished he had better ways of finding out. He knew he'd done ok, but knew he could do better. And - the best of all - that he wants to recommend they bring a business analyst in because they ADD VALUE.

He got it. Finally. He recognised the analysts role. He realised he could do it, but lacked the skill set, thus acknowledging there WAS a skill set.

I nearly bought him a beer, but remembered he earns more than me, being a programmer. Hmmm, thats another story for another time...

6 billion different 'casts...

The impact of blogs and podcasting on the "formal" media domain is an interesting debate that will be running for a while, and I'm fascinated to see who wins, or if an equilibrium is found (check this out for one case where a balance was found). The whole debate even made it onto 5-Live the other day, and I found myself less than convinced that more formal media broadcasters will be able to survive without adapting to a far more dynamic stream of info, or more effectively "chunking" what they produce with...wait for it...appropriate metadata surrounding that. You see, what I want if my own "smart" channel to really leverage the podcasting effect. Like I can with my RSS reader (and Sky+, an equally interesting model), I want my podcasting/radio/media stream to filter the noise so I can create a single channel, truly personalised for myself which is also timely in its presentation of info to me. I'd want news (world/local) which is of interest to me, to hear the latest tunes from bands that I like rather than that top 40's mush, with articles on movies and games and gadgets and IT and software dev and hifi and science and travel and sci-fiction/fantasy, etc (sorry - blokeness showing there), interviews with people who I find interesting, etc. I could "dip" into this channel (prioritises itself on my previous listening) or leave it playing so it can create, on the fly, the ultimate broadcast. And to do this, we need effective personilisation, and effective (controlled? folksonomy?) metadata surrounding the broadcast chunks. Maybe we're there already, and I'm not looking close enough, but I have a feeling it will be a bit of a wait before we have 6 billion different broadcasts out there, each one unique to the consumer...