Top Down Software Development:part 1

June 6, 2006 on 7:06 am | In maemo, nokia770, packaging | No Comments

disclaimer - I will preface this by saying that none of the content is purposeful flamebait. These are primarily observations, and generalizations. Like any generalizations, there are always specific counter examples. However, from a statistical perspective, these generalizations apply to most open source projects.

This is unlike most of my previous posts on Maemo, since this is about the process and approach to open source software for a niche product. Well maemo is about open source and the 770 is a niche product.

Software Classes

One of the most significant issues with open source software is the lack of top down design. The majority of open source software falls into the following categories:

(a) Me-Too software – Open source software that is developed specifically as an open sourced alternative to commercial software. These are often very good packages, and in many cases exceed the commercial packages in capability. However, they are product followers, and innovation is limited to out-doing the commercial package.

(b) Technology demonstrations – Open source software that provides a solution without a problem or a set of poorly defined problems. Sometimes they are called bottom up software, since they are developed around a technical capability rather than a solution to a problem. These are the software packages that get installed, elicit a few ‘cool’ responses, and then are ignored or un-installed.

As i said above, there are exceptions to these two categories, but not many (statistically). The last category is what we are all shooting for:

(c) Innovative and unique solutions – Open source software that solves a non-obvious problem. The solution fits the problem, and does so with minimal effort, and becomes indispensible.

As i stated, the last category is the holy grail of applications, and the best most of us shoot for is a good Me-Too product. In any case, we should look at a methodology that may help us develop more high quality (a) and maybe even a few (c) products for Maemo.
Maemo / 770 Characterization

The use case methodology is particularly applicable to the 770 / Maemo package. First we look at the 770 device and do a compare contrast to other products it can be compared to. From that we can make the following assessments.

(a) Display – There are many handheld compute devices and large screen mobile phones. However, the 770 display is at least 2x any other mobile device (of merit).

(b) Wireless connectivity – With both bluetooth and wifi, and relatively easy pairing with a cell phone as a data link, it is truly a portable internet device.

(c) Keyboard – The lack of a physical keyboard narrows down the application or use models, but the availability / capability of pairing with a bluetooth keyboard implies a separate implementation model.

(d) Wired NIC – The lack of a wired NIC has been pointed out in at least one or two reviews as a compromise. After use, I am hesitant to call it a compromise and probably a deliberate choice.

Taken cumulatively, these assessments point towards a new (perhaps) computing paradigm. Some would call it a personal area network, some may call it distributed wireless computing. This is contrary to the concept of converged computing, where every year a single device has more and more disparate features in order to replace multiple non-converged devices.

In the distributed wireless computing paradigm, each node or device should serve a small set of logical functions. These nodes would communicate with the other nodes in a coherent manner in order to comprise a system. Examples are a nodes in this type of a system would include a (a) keyboard (for user I/O) (b) display / touchscreen for user interface, (c) network / internetworking through WLAN or cellular data link, (d) GPS bluebox (bluetooth function with no physical I/O) for positional information.

Use Case Characterization

Given that the 770 fits this model of use, we still have to compare it to other devices in this space. Examples include the HTC mobile phones or the Treos.

If we posit that the most signficant feature of the 770 is the display (in this space) we should look to use models that are primarily visual. Obvious examples include

  1. Ebook Reader – The popularity of FBReader lends credability to this example. Evince is much better than the built in PDF reader, but could be better with large files. Both are on my A-list of maemoapps.
  2. Video Player – We all know this, and we wish the native player was much better than it is. Look at what has been done on a Treo with TCPMP. So much more could be done on the 770.
  3. Instant messaging – with external keyboard.
  4. Remote Managment interface – This has been touched just a little bit in the user community. As we speak there are more and more wifi or networked devices in the enterprise and in home applications. Examples inlclude the Linksys Tilt / Pan / Zoom WiFi video camera at $300. There are lighting control systems, home control systems, and soon (if not already), home entertainment systems that are WiFi / ethernet managable. So rather than a number of wireless remote controls for you garage door, security system, etc, you could have a wifi controlled access point on your 770. Or a way to turn off the lights in your house with one button in your pocket.

I have not really addressed the use case model yet, but I am out of time for now. In the next segment, i will discuss some about the classes of users that we target these use cases at. Some people would call that demographics, but they would be wrong.

Later segments will include discussions on Enterprise Architecture and how it is relevent everywhere, not just the enterprise.

got to go

ubergEEk

No Comments yet »

RSS feed for comments on this post. TrackBack URI

Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds. Valid XHTML and CSS. ^Top^