RichStyle: An Object-Oriented CSS Framework

Algorithmic Software Usability Measurement

Usability is all about familiarity; it’s about something you have learned about before.

Usable thing is something you can use using a previous experience; using something you have learned before; with no need to learn new things.

Things become harder and harder to use when you feel you need to learn about before you use it.

So, in order to measure usability of software products, we need to define a software product as a standard base; a base user needs to "learn" about before measuring usability of any other software product.

Nowadays, ICDL is considered such a standard base. Actually, Windows and Office is considered such a standard base or platform.
In Linux world, there must be a Linux distribution used as a standard base or platform that Linux-user needs to learn about.

Now, suppose we’ve choosed a Linux distributuioin as a platform.

Internal Consistency External Consistency
Terms (Textual Language) same concepts » same terms (in the software) same concepts » same terms (comparing to the platform)
Icons (Visual Language) same concepts » same icons same concepts » same icons
UI Components same functions » same components same functions » same components

In order to measure the usability of a specific software product, researcher should define a way to count the positive and negative points:

Example

Suppose we have the following data about a specific software wich is already committed to internal consistency:

Reused Resources New Resources
Icons 20 5
Terms 30 10
UI Components 5 15

We can find usability using this equation:

Usability	=	Reused Resources	-	New Resources
		=	(20 + 30 + 5)		-	(5 + 10 + 15)
		=	25

Notice that usability value is an integer; the larger positive values the better software usability, and the larger negative values the worse software usability.

Software Usability and Differentiation Strategy

Generally speaking, according to Michael Porter, competitive strategies are usually:

In software industry, differentiation strategy doesn’t work, it affects usability negatively. Differentiating a software product means making it unfamiliar, and unlike something user knew before, so, user will need to learn more and more before he/she could use it. So, differentiation strategy isn’t good for software.