Saturday 28 April 2012

Eternal Unfinished

When software was updated, often users would either need to download the fresh new version or download a patch that updated the software itself. This effort relied on users to make sure software was up to date. Inevitably this would lead to compatibility issues with differing versions of software.

For web applications and services, this problem was less of an issue: only the internet application itself would need to be updated. Everyone who utilised the application was using the latest software. However, the service would need to deny access to users whilst updating. But then, there's cases where an application provides its services, but still updates behind the scenes. This is where the Perpetual Beta is most recognised; an online service or application that incrementally improving itself to suit its customers, possibly without denying them the service.


"Perpetual Beta" implies software that isn't quite ever finished, but it would be more accurate to say it's about updating software in small  but often bursts, as opposed to large patches. A website that continually improves itself gives the illusion of being alive as it evolves. There are several advantages to updating often and online over the traditional monthly patch:
  • Gradual Changes ease new features into the system
  • Lower risk of  implementing bugs
  • Increased response to errors and feedback
Being in a state of constant development allows a business to release its product early and take advantage of the aforementioned perks. Unfortunately, the label "beta" is also used as a safeguard to protect the application and service. While users of the software will understand if a feature doesn't work, developers may grow complacent; focusing on features and new functionality whilst ignoring common bugs.



One site which has taken advantage of this pattern is Kongregate, a website dedicated towards flash games. Originally starting with the simple ability to play (and upload) flash games, record user profiles and record the games they play, Kongregate has slowly implemented features such as achievements, forums, contests and a "beta" section (where developers can test their games online and see how they look in the browser). When it began in 2006, updates for the website itself would only be made once every few months, but developers quickly adopted the "Perpetual Beta" format, adding new features and providing a better service for their users.

Kongregate's beginning was slow because there weren't many features or problems to patch, allowing its developers to cover all its primary functionality. When the core essentials were set up, Kongregate reaped the benefits of the developer pattern. The service was able to expand gradually with new features, services, and developers to focus on issues (usually because they were related to said  features).

The flash game website has been fleshed out over the years and continues to look for ways to improve its user experience, but it is never quite "finished."

References:
Steve Matthews, (10 August 2011), Perpetual Beta – The Real 21st Century Library Model?
Wikipedia, Perpetual Beta article, retrieved 28 April 2012
Bill (Praxis101), (17 May 2006), "Perpetual beta" means never having to say you're sorry 
Caroline McCarthy, (18 January 2007), Perspective: Beta--the four-letter word of Web 2.0
Kongregate Website

Saturday 21 April 2012

Suiting the System

The line "Software above the level of a single device" has been echoed by the Web 2.0 community ever since O'Reilly quoted it. The line is a simplified rendition of the final sentence in Dave Stutz's email to Microsoft after his resignation: "Useful software written above the level of the single device will command high margins for a long time to come." Unfortunately, the meaning of "above the level of the single device" is hard to discern. It is easier to simply read it as: "Don't restrict yourself to the one machine or you'll only limit yourself."

What this means is in developing software, sometimes it is ideal or even necessary to design for different platforms. With more and more technology being granted the abilities and functions of the standard desktop computer, developers have many options to choose from. Likewise, more technology opens up possibilities of how users interact with the software. A user at their desktop is more committed to their task, whereas someone out utilising their phone might only need it for a brief moment.

Software for different devices can be comparable to furniture.
However, it is not enough to simply release the software for different platforms: the software must be tailored to suit the device. Adapting software to multiple devices is often a difficult task due to how differently the platforms can operate. Just converting a program for a different operating system can be a daunting task, especially if the software is especially large in scope. For every target platform developers intend to release their software on, they have to take into consideration:

  • Programming language(s) accepted by the platform
  • Inputs and outputs of the device
  • Capabilities and requirements of the device and its platform.
These issues are easier to deal with earlier in a project's life, where design choices are not set in stone and changes can be made with little repercussion.

One instance of poor tailoring can be seen as old as Sonic the Hedgehog 2, which was originally released for the Sega Master System and later released for the Sega Game Gear. While the controls easily translated between the two, developers skimped on an important detail: the game gear's smaller resolution. With no custom graphics or changes to level layouts to compensate, the player had less time to react to obstacles on the screen. Although technically the same game, the game gear version was much more difficult to play.

On the other hand, Adobe downsized the famous image editor Photoshop from a desktop application to something that works on a mobile device: Photoshop Express. The functionality of Express is limited in comparison to its origin, due to the hardware capacity of the mobile phones. However, it also includes the ability to save images online so the user can utilise or display their skills. Having an online profile that stores user's images is almost a necessity for the mobile product as mobiles can't store too many images.

Both editions for Photoshop represent their respective devices well: the desktop Photoshop is a complete workstation, allowing the user to sit down and focus on creating a masterpiece whereas Express is more interested in short, portable sessions and online support. These differences utilise the benefits of their own platforms and therefore provide appropriate services.


References:
Paul Cooper, (10 Dec 2007), Software above the level of a single device
Dave Stutz, (2003), Advice to Microsoft regarding commodity software
Sonic News Network, Sonic the Hedgehog 2 (8-bit), retrieved 20 April 2012
Adobe Photoshop Homepage 
Aaron Chan, (18 March 2009), Cross Platform Development and Porting, retrieved 21 April 2012
Mindfire Solutions, (14 January 2001), Porting: A Developer Primer