Self Expression

9 02 2009

Hi

I was just watching a Channel 9 session about Open Space, an idea where attendees to a conference come together to discuss topics they find interesting. The thing about this is that it’s about the audience providing the content rather than the key speakers and that means the audience get to express their selves.

It reminds me of how important it is to people to have an avenue of self expression. Whether it is the colours we wear, the music we listen to, or what we say, pretty much every part of our lives is impacted by this almost primal desire to express ourselves. The same is true within software.

In software, many people are influenced. Whether it be the development team, the business people who fund it, the customer, or the end user. Hey, even the people who have nothing to do with the software but are affected by the business processes the software supports, everyone is affected in some way by software. But this is where these two ideas come together.

How are people expressing themselves through this software? Thinking about how people will express themselves while using the software is so very helpful in making great software. Why? Because it allows people to do things their way, to demonstrate their understanding, and to allow others to know who they are.

How does your software allow your customers to express themselves? Does your software allow your company and the people within it to express themselves? Human beings are relational and expressive. Keep this in mind when designing your next user experience.

Kind Regards
Glenn





Google Chrome

23 09 2008

As part of the internal work here at DWS, I tried Google Chrome. What I was looking for was another browser that did in-line spell checking; Firefox is the other one I know of and there are likely more. Interestingly, IE doesn’t provide this functionality.

As I looked around this new browser, I went through the comic presentation on the design decisions. It’s quite inspiring and the browser does well for their approach. What I want to talk about today is the sort of thought that went in to this browser.

Threading vs Multi-Process

A stand-out decision was to make each tab a different process. IE, in comparison, treats every tab as a separate thread. If you’re not quite familiar about topics this close to the silicon, keep reading, I’ll expand on how very different these two approaches are!

Threading is all about one process doing multiple things. Threading is often used on the Windows platform. It is a historical decision as much as a technical decision. Some of the key considerations about this are:

  • If the master thread dies, all threads die
  • There are difficulties to be overcome when threads begin talking to each other or using the same memory space
  • Threads have to be monitored and managed
Multi-processing is quite different. It’s about multiple processes all doing their own thing. The multi-process approach is very popular on the Unix platform as well as Unix clones such as Linux. Again, it is a historical decision as much as a technical decision and its key considerations are:
  • Processes are managed by the operating system rather than by a master thread
  • Processes are self-containing, if all the other processes die, the one remaining continues to function unaffected
  • There is no shared memory to manage, although some information can be exchanged using a shared space

Now, what makes one better than the other? For me, it’s all about two competing desires: memory footprint and simplicity. Threads are a smaller memory footprint while multi-processes are simpler to implement. Interestingly, Google went the way of multi-processing and their reasons for doing it appear quite sound. I won’t go in to detail here but take a look at their comic presentation for details.

Focusing on the Tab

Google have also focused greatly on the tab. They think it so important, they put it at the top of the window. Each tab has its own address bar and buttons as well. What’s more, because each tab is a separate process, it’s simple to undock each tab in to a new window.

Speed

People I ask about Google Chrome all say the same thing: it’s fast. A lot of effort has been put in to speeding up the rendering engine as well as Google’s own JScript VM which compiles native code. It all makes a faster browsing experience.

Security

Google sandbox their browser processes. This means that websites can’t change your hosts file to some-very-bad-website.com to steal your credit card number or show inappropriate content. Of course, there are some limitations with plug-ins because they’re not sand-boxed, but the attach surface is greatly reduced.

Summary

So, why do I care about blogging about some new browser? The reason why is because it is another example of people getting together to produce a quality product. It’s not about what makes it so good, it’s about how Google went about creating this product. As a tester/developer, I want to make fantastic cool products that close the gap between people and their tasks.

Kind Regards
Glenn 





Unfamiliar

28 07 2008

Hello again

I didn’t write all weekend or yesterday; Monday for those of you on the other side of the dateline. It’s not that I didn’t have thoughts of writing, it’s just that my thoughts didn’t become something I felt was good enough for this blog. Again, quality exists everywhere.

Anyway, today I want to talk about the milk in the fridge here at DWS. “Milk?” I hear you say; yes, milk.

Here at Quality in Software, anything can inspire a talk about quality, even milk. Anyway, enough of this ranting and on with today’s post…

Last week, I think it was on Thursday (5 days ago), a 1 litre carton of milk appeared in the upstairs fridge. What is odd about this is that we always have either a 2 litre or a 3 litre milk bottle. So what does it mean to software quality?

You see, no one has opened this poor carton of milk. It has been left there while bottles after it have been opened, emptied and replaced. So why has this poor carton of milk that sits faithfully in the fridge not been opened and used?

It reminds me of how people often don’t use great features in software. Often, great features in software can sit faithfully unused in our products while some common-place feature gets used again and again, even if it does mean more effort on the part of the person using the software. The question is why?

People are habitual beings. They tend towards the familiar and often avoid the unfamiliar. So does that mean this poor carton of milk in the fridge and the great features in software all go unused largely because they’re unfamiliar to their habitual human users? Yup! It does.

Now, I know not everyone is so habitual as this but I only comment on the results I see. And yes, I am one of these habitual users, which is why I can say that when I look at that poor carton of milk, I think, “Someone must have bought it for themselves and simply haven’t taken it home yet.”

One of two things will happen. Either people will continue to avoid the unfamiliar until the unopened milk goes bad and the great features of software get removed, or, just their constant “being there” will provoke a certain level of expectation, of familiarization. Either way, the milk won’t always be there: it will get consumed or thrown away. Now, while you’re thinking of how much of a waste this is while children go hungry in other lands, remember this is a software quality blog, not a human rights blog but I can understand your thoughts on this line.

Anyway, the idea from this is to be careful when adding fantastic features that will change the world. If they aren’t familiar to people or use basic principles that people already know, they will avoid it. It’s not because it’s bad or it doesn’t work, it’s just because it’s unfamiliar. When you do your designs and review quality, try considering the 1 litre carton of milk in the upstairs DWS fridge and present your feature in a way that is familiar to people.

Kind Regards
Glenn

p.s. no cartons of milk were wasted in the writing of this blog. :)