@Media 2008 (atmedia2008) Day 2

Professional front-end engineering – Nate Koechley

Although large parts of this session are essentially the same as Nate has presented before it was still good. It’s no surprise that it is similar content since it comes from Yahoo’s best practices so they’re unlikely to change that quickly. A few points I thought I’d highlight are; Progressive Enhancement rather than Graceful Degradation, JavaScript verifier (JSLint), front end unit testing (YUITest), JSDoc,  Firebug to test form/post attacks, save CSS/JS files as UTF-8, pre-load new assets before a new product launch to avoid complaints about slow start up since the new assets are not yet cached, try to keep to <256 colours to use PNG8, iPhone caches only ~20 items, avoid using @Import.

I had a quick chat with Nate and discussed .net server controls vs. JavaScript libraries and using the server to overcome some of the multi-file issues. Nate told me about the YUI.net project that is working on combining the two so I’ll have to take a look at that. The discussion of using post-processing or streaming of multiple files as a single file stream were interesting. I was concerned that given Yahoo’s extensive testing of seemingly almost every permutation downloading CSS/JS that there was some problem with servers side code. Nate assured me that there wasn’t any specific issue and that Yahoo teams were free to chose. Of course he explained again that the use of Yahoo compression techniques would help alleviate these problems.

I enjoyed this presentation although it was a little rushed and I had seen a fair bit of this before.

Rating – 0 doodles – 8/10

Building on the shoulder of giants – Jonathan Snook

The basic premise of this was to use the libraries out there since they’ve gone through the rigour of testing, browser problems, etc. I liked Jonathan but I thought the point was a bit too laboured and one hour was too much. I did like the time-line demo and the idea of small amounts of code to create a good site is appealing but it’s a fairly easy point to make.

Rating – 10 doodles – 6/10.

PS. I really liked Jonathan’s responses in the later panel discussion. His responses were mature and well-rounded and didn’t pander to the frankly crowd pleasing answers from a couple of the other panellists! He is clearly a smart man and I’ll certainly be adding him to my RSS reader.

The why & which of JavaScript libraries – John Resig

John, the originator of the JQuery library, gave a great talk about the alternative libraries. I must confess that I’m almost 100% professionally in the Microsoft world but I do have a little experience of playing with one of those libraries, Yahoo’s YUI. So I did find the various pro’s and con’s of the libraries interesting. I also like John’s honest look at why libraries are good, and also why they might be bad. The libraries John concentrated on were;

Rating – 0 doodles, 8/10

WAI-ARIA – It’s easy – Steve Faulkner

I admit I thought this was going to be about a tool to check your site but I’ve obviously been out of the accessibility loop for too long. Steve explained that it was a set of attributes that helped explain to a (usually) screen reader. Of particular interest was the ideas of a role and pre-canned/pre-localised explanations of how to use controls. It looks good but the one area that I found difficult to understand was that of compliance. If you have new attributes but don’t change the underlying schema rules then it will break the page. The reasoning was that you’d use JavaScript to inject the ARIA attributes. As someone pointed out that relies on JavaScripts, but what worried me is that still produces invalid mark-up. Changing the DOM representation of the mark-up to be essentially invalid doesn’t sit will with me. It would surprise me if a compliant browser would simply refuse to allow non-standard attributes and personally I’d hope it wouldn’t. Avoiding changing the underlying schema’s is a convenient hack, I think it would have been better to create spin-off schemas or use the modular nature of schemas to add a new set.

Back to the presentation, Steve did have more than his fair share of presentation gremlins which did derail the flow.

Rating – 0 doodles – 7/10

Global Design: Characters, Language, and more – Richard Ishida

I really enjoyed Richard’s presentation last year and this was going well, for me, until I think Richard thought he was losing the audience. In this presentation Richard delved into the technical reasons of why you want to chose Unicode and encode with UTF-8. Richard gave some useful tips, such as turning off the dreaded BOM wherever possible, not bothering with the language meta-tag,  using both language attributes in the xml declaration, not using xml declaration for IE6 (cause it pushes it into quirks mode – one I did know).  As a developer I was enjoying the technical stuff but Richard seemed to realise that this wasn’t what all the audience wanted so he quickly took the level back up again and then rushed through the remaining slides.

Rating – 0 doodles – 7/10

The core of the talk can be found in the following W3C Unicode tutorial

PS. I was a little disappointed that Richard didn’t respond to one of the panel questions (he was in the audience) about why data is important to accessibility as the panel struggled and kept thinking, "we just heard Richard tell us for 1 hour about the importance of encoding to making localising/globalising a site" – a form of accessibility.
Kick it! | DZone it! | del.icio.us

@Media 2008 (atMedia2008)

I’m currently attending @Media 2008 (atMedia2008) so I thought I add an very quick blog about the first day, I’ll expand on the topics later…

Designing our way through Data – Jeffrey Veen

Jeffrey talked about the his work at Google and what inspired some of his work. Very interested talk about how to visualise data, although I’ve seen big chunks of it before. I won’t talk about the content since you can view it in the above link. Great start and for a keynote it fulfils the task of being inspirational.

Rating – 0 doodles – 9/10 (point deducted for reproducing some parts)

Mental Models, sparking creative thinking through empathy –

Indi Young

Good technique to acquire what the end-user really wants (in this case from a site). I thought this was especially useful for marketing/planing teams looking to create a roadmap. A lot of ideas will be familiar to anyone who captures user stories but it looks like a good tool to aid in that process. What I liked about the process was the focus on the end user and the ability to create a graphical representation of the both the user ‘wants’ and the mechanisms that either support it or are tabled to support it. As with User Stories the idea is to capture the user needs at a (initially with User Stories) high level. So rather than, "I want to be able to drop down a set of schools in the area", you’d expect to capture, "when I’m looking at houses in an area I am concerned about the quality of schools". It prevents people leaping ahead and designing the page/application before really understand the requirements, anything that promotes that thinking can’t be wrong! Indi talked about such a house search which was a great example and also talked about the ‘in the corridor’ where you try to imagine what a person would be thinking as they walk down a corridor. E.g. they’re more likely to be thinking, "I need to get that report out be 2pm" rather than, "I need a web page that allows me to select the xyz report….". However, there were a number of other examples that were basically making the same point but were only interesting to people in that domain, I think they could have been left out and took some of the momentum away from the presentation.

I enjoyed the talk but I do think it would be better to talk about the ‘why’ before the ‘what’ as it was very difficult to appreciate the goals of it until you know the why. I certainly look out for her book.

Rating – 1 doodle – 7/10

Getting your hands dirty with HTML5 – James Graham & Lachlan Hunt

The 5 mins spent talking about HTML5 examples was interesting, why bother with the other 55? James and Lachlan are obviously clever people and are capable of presenting although I found the style a little…academic like. I’ve given this a poor rating because of the dwelling of the why rather than the now. Although I think it’s right to give a little history I found that the majority of the presentation was this rather than the details of HTML5, which given the title is disappointing.  On a personal note, I really hate mail-lists as I find them antiquated and dripping in ivory-tower academia so it did grate on me that they championed this method, just set a bit of scene really.

Rating – 10 doodles – 3 nodding offs = 3/10

[Edit] Oh and it looks like they’re just a snobby as me ;)….

  1. # [15:11] <annevk> http://pdkm.spaces.live.com/blog/cns!D1DDEC9FF002FB8C!872.entry didn’t like the talk at least… complaining about mailing lists and academia
  2. # [15:11] <annevk> but spaces.live.com prolly says enough
  3. # [15:12] <hsivonen> Philip`: occasionally the audience pointedly disagrees with the presenter
  4. # [15:12] <jgraham_> Yeah, I think we spent too long on design principles
  5. # [15:12] <hsivonen> Philip`: happened at XTech with Steven Pemberton’s talk
  6. # [15:13] <Philip`> hsivonen: Disagreeing with presenter doesn’t make it a bad presentation – it’s good if things are thought-provoking and get people interested and involved 🙂
  7. # [15:13] <jgraham_> So even being on spaces.live.com it isn’t an entirely unfair criticism 🙂
  8. # [15:13] <hsivonen> a Flickr guy made notes in the audience during the presentation and then flushed his counter-arguments at the end
  9. # [15:14] <jgraham_> (I should note for posterity that it is in no way Lachy’s fault that we sepnt too long on that section)

Underpants over my trousers – Andy Clarke

Fun and interesting talk about getting inspiration from comic layouts, a different way to describe how to move the readers eye around the page. Also talked about how comics use the size (or even lack of) a frame to describe the amount of time the reader should spend reading that section. Andy also talked about creating several templates for the "same" dynamic page to accommodate data of different sizes, nice idea. A typically entertaining talk from Andy and I find myself very envious of his position. Andy has a reputation of producing designs that work for the target rather than sweating about all the backward compatible issues (e.g. the lovely use of transparent PNGs…wonder what that looks like in IE6). I find myself sitting on the fence about that, but I can’t deny that I like his designs and like the idea of been able to choose customers based on what I want to do…must be nice. You also have to love his anti-americanizatizms <wink>, at least we have that in common!

Rating – 0 doddles – 9/10

Designing User Interfaces: Details make the difference – Dan Rubin

I would sum up this talk with, "the devil is in the detail". Dan showed the level of scrutiny need to create good looking sites. Some of the ideas I found particularly interesting were; getting dynamic data to avoid widows by adding non-breaking space, using -1 letter-spacing on big headers and for me, a non-designer, the proportional spacing rules…thank you Dan.

Rating – 0 doodles – 8/10

More to follow….
Kick it! | DZone it! | del.icio.us

The Bozo bit

If there is one anti-pattern that I really need to keep reading is this one, http://en.wikipedia.org/wiki/Bozo_bit
I’m posting it here in an effort to remind me not to do it.
 

Set Focus plea to web developers

This is a plea to you web developers out there, and that includes those responsible for this site too! If you write a page, typically I’m thinking of a logon page, and you want to set the focus to a particular text box please write it correctly. It is very annoying that as the page renders the text box is available so I start to enter my password only for the document load to eventually fire and the code either resets the password text and/or places the insertion point at the start of the text box. This is very annoying, check what’s happening to the text box before assuming it is empty!

How to read docx (word 2007) files when you don’t have Office

I wanted to read a docx file today but I don’t have any Office products (or equivalent installed) so the trick is to;
1. Install Word 2003 viewer (download from MS site)
2. Install Office 2007 compatibility kit (download from MS site)
3. Reboot (required for me so the docx extension was correctly registered

The next trick is that when I double click the document the converter from the compatibility kit kicks in but then the dumb thing launches WordPad instead of the 2003 viewer. So currently I’m forced to open the viewer first and browse to the docx.

‘Goal Directed Design’

One of my constant heartaches when I see design proposals, or worse finished features, is the lack of thought given to the poor end-user. This isn’t a new subject indeed there are currently some insightful blogs from Microsoft employees complaining about the interfaces in some of their own products – Windows Media player springs to mind. With this in mind I thought I’d blog some quotes from ‘About Face 2.0 – The Essentials of Interaction Design’, please read the book but to whet your appetites…
‘…marketing departments are sometimes able to provide requirements, but these often have little to do with what users actually need and have more to do with following the competition, providing feature checklists to IT departments, or guessing based on user surveys or customer wish lists. None of these approaches take into account the users’ goals in any systematic fashion.’

‘…Developers…centring on technology and engineering methodology…Marketing departments focus on what drives press attention, on features lists, on what people say they will buy…The result…software that irritates, reduces productivity and fails to meet the user needs.’

I’ll stop there, if you want to read more then buy the book! But please all you developers and software houses out there, please think about the poor end-user. Take a long hard look at what you’ve developed or are developing and ask yourself honestly, are you making software that thrills or irritates the user?
 

Agile Process – problems with ‘chasing the money’?

After attending a number of seminars  (esp. the ‘Agile Investment in Software: Who cares how you build it?’ seminar by Chris Matts) and talking to other developers/architects I’ve been considering the pro’s and con’s of, "chasing the money" (Money). The basic idea is that you should provide the business with the best mechanisms for the company to make money. A core issue with any Agile development processes is what feature to implement next. If you take the Money approach then it can help focus the development on the immediate business needs, thus helping the product get to market faster, the business more successful, etc, etc (see Clarke Ching for a good introduction). I can see why this is a good idea (clever me) and it certainly is worth asking the question for every potential feature that could be implemented. However, as with so many ideas neither is it a silver bullet or particularly new. Recently, on different occasions, I’ve been confronted with developers who have not considered the non-functional requirements during their development process. When I recovered from the shock that this can happen I wondered if there was some common problem with the teams. When discussing it at XPDay the first conclusion was simply poor developers. I think there is something to that, certainly in one example the team of people were asked to do development when that isn’t that primary skill, ah the beauty of false economy. The other common factor was a feeling of them-and-us. The team Chris Matts described sounded like just such a case, "The Business people" vs. "The IT lot" whereas the idea is that everyone should be working together (aaaah sweet). Chris’ conclusion was that by using the Money approach the IT team were forced to validate everything they did as a business case. Herein lies the problem, if you combine the Money approach with the lack of importance given to non-functional requirements you run the very real risk of passing over such features in the clamour to grab the money. Some of the features are difficult if not plain impossible to put in afterwards. For example, consider building a house. Customers wants walls and a roof, they don’t care too much about the floor.  Obviously the conclusion of this example is you end with a lovely house that falls over in the next strong wind because the boring no-thrills foundations are rubbish and you end up with one angry customer and a reputation in tatters. I’m not suggesting this means the Money approach is wrong, but you must ensure that non-functional requirements are properly considered (with the proper business case) when deciding upon priorities and don’t use the wrong people! Like I said, I don’t think this is anything new, but it seems to be a lost message when there is a temptation of a quick buck.

Voice recognition in Vista

One thing that has impressed me with Vista is the handwriting recognition, mine is truly awful but it still manages to translate my scrawl. So today I decided to test run the voice recognition. The dictating a text document is excellent, but not only is it very good at understand what I’ve said but it also understands a huge range of commands that makes it easy to maintain a document. For example, "replace that" will auto-select the word "that" and then supply you with a set of alternatives or you say the word you want to replace it. But what amazed me was when I dictated a simple letter and signed off as "John Smith". It wrote ‘John smith’. So rather then go through the replace commands I tried "capitalize smith" and it did it! Really good stuff. However, controlling Windows via voice control isn’t as easy. You have to learn to ask for things directly rather than navigate though the start menu. It’s a bit like using the Run menu, so rather than finding WordPad via the menu you simply say "Open WordPad". So it’s very easy for those things you know about or know their name, but it’s tricky when you don’t. I’m sure when you get used to it would be truly great too. So well done Vista, I take my recognition hat off to you.

Dual boot XP after Vista

I had done things in the "correct" way to have a dual boot system. I had installed XP on drive C, had a data drive (D) and installed a new drive (E) to install Vista on. Everything went well until I had a hard disk failure on C and lost XP. After a lot of effort I managed to recover the Vista drive but the Vista repair had moved the MBR onto the data drive. Having got a replacement drive back from Seagate and installed XP onto it. I used the instructions from http://www.syschat.com/dual-boot-vista-xp-vista-already-1946.html (since as this post notes the Vista repair doesn’t work after XP has destroyed the boot loader) and then http://apcmag.com/5485/dualbooting_vista_and_xp for the instruction on EasyBCD to create the dual boot menu.
 
Everything worked but I now have;
XP:
Data Drive – C
XP – D
Unknown – E
 
Vista:
Vista – C
XP – D
Data – E
 
That’s not going to be confusing is it! Already I’m getting default installers for XP trying to install to C…those naughty lazy developers!
 

XPDay London 2007

XPDay London 2007

Keynote: Embrace Uncertainty – Jeff Patton

Jeff gave a very engaging presentation explaining some of the issues created by producing an incremental process from sprint iterations. He used a number of pop-stars to illustrate the point.
Roger Waters (Pink Floyd) was product owner concentrating on the burn-down wall and how each story (or brick) was been removed from the wall (or not).

Melanie Brown (aka Scary Spice – Spice Girls) was the lead developer asking Roger to, "tell me you want, what you really want". As the iterations started, Roger could see the bricks been removed (the velocity) but also started to see shortcomings in the product. So he asked for those problems to be solved and Mel B obliged by adding those new bricks to wall. However, inevitably, the deadline loomed and the only way to ship on time would be to cut bricks from the wall, something that Roger’s sponsors will be really upset about.

Jeff then introduced us to another Roger (Daltrey) and Pete Townshend (The Who), they are interested in building a road (magic) bus. They have similar problems with cost and deadlines but they know what to do. They’ve got a set of items (stories/bricks) that make up a bus; e.g. steering, sound system, engine, drinks bar, etc. However, that list doesn’t tell it all, e.g what sort of engine should they have? The decided to construct the bus by targeting the must-haves and by only implementing the basics versions of those items.

The model is translated back to Roger and Mel, by partially implementing stories to a point where they are useful it allows resources to be spread across the waiting stories. I.e. you can produce a working product, it might not have the expected bells and whistles the Roger wanted but at least he’s got a product. Importantly it will be released and be able to start realising revenue ASAP.

Jeff summed the process up with Johnny Rotten (Sex Pistols), "I don’t know what I want, but I know how to get it"

I really enjoyed the keynote, and I could have gone home then and felt it was value for money!

Plus quote of the…year, about team work, ‘You have a hole in your side of the boat’

[edit] – other reviews…

http://adamcohenrose.blogspot.com/2007/11/xpday-2007-embrace-uncertainty-jeff.html

http://www.kerrybuckley.com/2007/11/21/xpday-7-jeff-patton-keynote-embrace-uncertainty/

 

Introduction to Agile: The Software Development Paradox – Clarke Ching

The introduction was good and re-enforced a number of points from the keynote. I really enjoyed the point about software engineering following manufacturing rather than product development, see the cake slides. To paraphrase the cake story, if you wanted to mass produce a cake would you create a recipe, create a factory, mass produce the cakes and only then taste them? Of course, not, you’d taste the cake in the product development stages where it’s much cheaper to change. I thought you could also extend the analogy further by introducing quality control in the manufacturing process but hey that probably muddies the point.

The Social Nature of Agile Teams – Elizabeth Whitworth

An interesting study in the side affects of working in a agile team. The study was on the positive affects and they all seemed to solve problems I’m keen to solve; shared knowledge, knowing what is going on (and expected to be done), reduction in "dark room" developers, etc. All good stuff.

Exceptional Ideas: How to get your message through – Lasse Koskela

A bit of odd one this, ironically I’m not sure what this had to do with Agile development. I think the idea was to be able to sell Agile to non-developers, but the concepts can be applied to anything.
Talked about DICEE;
Deep. A great product is deep.
Indulgent. A great product is a luxury.
Complete. A great product is more than a physical thing.
Elegant. A great product has an elegant user interface.
Emotive. A great product incites you to action.

and SUCCESS – so successful I’ve forgotten what it means already!

Choosing the Content of Sprint & Product Owner Backlogs – Tom Tourwe & Olivier Biot

Talked about how to choose the items and were very LEAN like. I didn’t really like this one as I got the distinct feeling that the message was much simpler than they were making it. I also think they seemed to suggest a too lean approach, e.g. they seemed to suggest things like doing a feature and then worrying about performance later. I asked them about that and they quickly said they didn’t mean that but I know a few of us in the audience felt that’s what they saying. I must say that it was good that they shared their experience but just needed to add a couple of extra points to clarify their ideas.

Agile Investment in Software: Who cares how you build it? – Chris Matts

I enjoyed this and Chris is an engaging character. He said it was going to be confrontational but actually I thought his message was exactly what I thought was Agile anyway. Chris shared his experience about using an Agile process to make business decisions about what to build and therefore decreasing the time-to-market of products. One of his key arguments was that no decision should be made without the business agreeing it. E.g. a developer shouldn’t just refactor some code, they should declare the issue and it should become yet another ‘story’ that the business can decided to implement. That was all good stuff but it went a bit downhill when it seemed to offend people’s purist view of what Agile is, what a development team is, the responsibility of IT, etc, etc. That bored me, but the rest was interesting.

Day 2

Keynote: Cheek-to-cheek: why co-located collaboration persists – Yvonne Rogers

An interesting talk about how important it is to be in the same building as your colleagues and the hurdles of some communication devices (e.g. whiteboard, shared monitor, etc) where people can become frustrated waiting for their turn. Unfortunately that’s a 5 min talk drawn out for 60 mins. Not for me this one.

A Technical Story – Alex Vandenberg

A talk about how technical stories muddy the waters and really any useful technical story should be put in terms of a user story. I don’t think this is a surprise but again it re-enforces this sharing of to-do lists with the *whole* team rather than just the developers.

In the non-functional design space no-one can hear you scream – Sallyann Freudenberg

This was a gold-fish bowl workshop about how to take non-functional ‘requirements’ into account. When asked, "does anyone not understand the difference" I stood up. It’s not that I don’t know what they are but I don’t understand how anyone thinks of them as different. To develop a feature without considering things like the performance, how will it be deployed, what kit are we aiming to use, etc, is beyond me. Sure someone has to decided those things and consult with the customer but that’s part and parcel of any development isn’t? I liked and agreed with what some people said but was dismayed at others. Quotes such as, "it’s difficult because it’s not taught in computer education" just annoyed me. Talk about being spoon-fed, especially when the self same people were complaining about the quality of some developers – hmm.

Business is having to change faster to respond to its customers – how can the Agile community help? – David Stoughton

This talk described the need for business to get to market as soon as possible. For me this highlighted again that "Agile" is a concept before it is a software process. The talk also described how customers know more, the power of a brand and other important market points.

Fiat Lux: Testing with the light on – Joan McGallard, George Joseph & Pushpa Sebastian

A good talk about their experiences in creating automated acceptance testing. I did like their ‘active document‘ where the tests were written in English, via HTML, where the values were decorated with classes that were used to automate a test.

The Secret backlog – behind every bug report is a user story – Antony Marcano

Antony discussed how with a bit of creative re-writing a bug report can be turned into a user story. Subtle wording can be used to show where the story came from, e.g. "Instead of <behavior>" would imply a discovered problem. This is quite nice as it increases the visibility of the to-do list and it puts a more positive spin on the issue. It also allows more people to make a decision on whether the issue should be fixed as it is now in the standard iterative processes. He also said that with this you may want to abandon traditional bug tracking systems and go straight to creating the stories. One point that I found very interested was that the tester created an acceptance test for every bug found.