Archive for the 'software development' Category

20
Apr

The Age of User Experience

Been a long time between posts. I suppose that’s what happens when you have 2 kids birthdays, renovation plans and project crunch time! But, I’m back – for now!

I attended a session run by Shane Morris at Microsoft on Wednesday titled “The Age of User Experience“.

The first half of the presentation was a good session by Shane and Stamford Interactive. Concise, to the point and engaging. Very well done.

The second half was a shameless plug of the Expression Suite and a demonstration of Expression Web and Blend. From what I gathered, Microsoft are trying to convince the interface/interaction designers that they can use products like Expression Web and Blend as a replacement from traditional documentation. I like the thinking but can’t get past the fact that designers generally don’t know or care about XML, (X)HTML, CSS, Data Binding or scripting. Further, although Expression Web apparently produces standards based code, the demonstration I saw showed me that without knowledge of CSS we will end up replacing tag soup with class soup. Every style was applied as a class, there was no mention of semantics or document structure.

I won’t go into details as I don’t want to flame anyone but the Expression Web demonstration was terrible. Shane did pull it together for the Blend demo and while I liked and understood it all , I think I was in the minority as most of the attendees didn’t have the development background that I have.

Although I won a copy of Expression Web for asking the best question (along the lines of my points above), I think the best point was made by another attendee who worried that giving designers the power to become ‘micro coders’ is very dangerous. If you know a little bit about a subject, you are likely to do a bad job. Designers hat the fact that everyone thinks they are a design expert. Imagine the effect of making everyone an HTML/CSS expert. I can picture the IT team taking over the files created by the designers and throwing their arms up at the state of the code produced by the WYSIWYG Expression Web interface.

Communication between designers and developers is the key to success here, not trying to make designers developers and vice versa. I’d love to see Microsoft tackling the documentation issue and building innovative tools that supported stronger inter-team communication, rather than trying to play catch up with Adobe. How about some sort of tool that would allow us to provide better design documentation. Could it plug into VSTS? Have tabs for screenshot, interactions, exceptions/errors, etc etc… The key is supporting people’s current methods and providing tools to enhance the experience, rather than trying to make people do things they are not trained to do.

Shane drilled the point “Same data, differentiated experience”. I’d like to see “Same methods, differentiated development experience” come out of Microsoft.

28
Mar

Tables are where HTML gets REALLY cool!

A colleague of mine just dug up some old training material that I created in 2003 for an internal HTML training course at my company. We had a chuckle about the following section:

Tables are used to give the designer greater control over the layout of the page and positioning of elements. Tables give web pages their beauty by facilitating exact layouts in ways that normal formatting (align etc) doesn’t. Tables are where HTML gets REALLY REALLY cool!

There is also some great stuff in there about effective use of the <font> tag, but I have already embarassed myself enough for one day.

When I wrote that I was oblivious to the benefits of semantic markup and standards compliance. We never had an issue about building our site using the table methods and we were pretty bloody good at it. It’s amazing how things have changed in just 4 years!

16
Mar

HTML is the new API

Following on from my recent post about Photoshop moving online, I read this great post on Joel Spolsky’s site. Joel asserts that the new API is HTML and that the Windows API is in trouble. His premise is this;

  • People buy an operating system because of the applications they can run on it
  • People buy Windows because you can run a great variety of apps on it
  • People don’t buy Mac’s or Sun’s not because they are inferior operating systems but because of the limited apps available

I definitely agree with that. I have resisted buying a Mac for a long time because I know what Windows apps work for me. I am now seriously considering buying a Mac with an Intel chip and BootCamp. Best of both worlds hey?

When this new and exciting arena of rich web apps matures, what will Microsoft’s competitive advantage be? It won’t be that their OS has the most applications written for it.

When Mac users and Linux users and Sun users are able to access the same software online as Windows users, people will pay more attention to the features, stability and security of the OS than they will to the variety of software that was written for that platform.

Further, it seems logical that developers will embrace the cross platform HTML API in order to increase their reach and OS compatibility.

Whether the application is built in Ajax or Flash or some other technology is irrelevant, although I do agree with Jeff Atwood that JavaScript will become more popular on the grounds that that is where the lions share of the development community is working.

The new uTorrent web interface is a great example of the power of Ajax to avail the core features of a desktop app online. It’s lacking a bit of polish and all of the features of the desktop version but it lets you get the job done!

02
Mar

I Like Open Source

I’m a convert!

I have always worked in a Microsoft shop. I have always worked with ASP, .NET, IIS and Windows. I have always wondered how I might go about setting up a CMS, shopping cart, BB or blog. I have done some research into these areas in the past and ended up throwing it all into the too hard basket.

I always avoided looking at Apache/PHP solutions because I figured I’d best go with what I know and stick to the technologies and languages that I was familiar with. Foolish!

In setting up this blog, I decided on WordPress as an engine, partly because I knew I could get it running on my Windows server.

When a mate offered me some space on his Apache server, I jumped at it and very quickly discovered the beautiful world of 1 click installation. Thanks fantastico!

I’ve just played with a bunch of shopping carts, CMS’ and BB’s and am now confident that I could set up these products on sites that I build.

Every question I have had has been answered by a quick Google search and there is generally a plugin/installer/script/instruction within easy reach.

Hmm, getting PHP, MySQL and Mambo running on my Windows box is going to be tough. Oh, apparently not! Thanks mambosolutions!

Anyway, I’m sure that I am preaching to the converted. I can’t believe it has taken me this long to get here, but I’m very glad that I have finally arrived. Now, I’m off to learn some PHP.

26
Feb

The Importance of Planning in Design

While still reeling from the MyHome debacle (read previous post) I happened to stumble upon Dark Roasted Blend, a really interesting blog. In fact there is so much interesting content that I’ll have to go back and spend some more time there.

Anyway, my link into the blog was to the page on Incomprehensible Intersections and Spaghetti Junctions which is a collection of aerial photographs of ridiculously planned intersections. Some of the maps are also quite amusing.

What these photos highlight is the fact that without effective planning, design is difficult at best.

I like to think that software application design and development are analogous with civil design and construction. The following are examples of software design roles and their civil equivalents:

  • usability practitioner = engineer
  • producer = architect
  • graphic/visual designer = interior decorator

In a living, growing web application, like many of the ones that I work with, the design has generally evolved over time and the initial blueprint is very different to what the code is today. Spaghetti code replaces the spaghetti junctions but for all intents and purposes, the code is as difficult for a developer to navigate as the junctions are for a driver.

Every application I have worked on is full of spaghetti code. Is software doomed to be built as poorly as these highway intersections? Are software architects failing in the same way that these town planners failed?

I shudder to think what the off ramp at line 3225 of the MyHome website looks like!




September 2010
M T W T F S S
« Oct    
 12345
6789101112
13141516171819
20212223242526
27282930