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

No comments:

Post a Comment