Kaizen versus Good Enough

Arjen Vrielink and I write a monthly series titled: Parallax. We both agree on a title for the post and on some other arbitrary restrictions to induce our creative process. For this post we agreed to write about how Kaizen (the philosophy of continuous improvement) relates to the rise of the Good Enough paradigm. The post also has to include a non-digital example of Kaizen versus Good Enough. You can read Arjen’s post with the same title here.

The world is full of badly designed things. I find this infuriating. A little bit of thought by the designer could make many things so much easier to use. My favourite book on this topic is The Design of Everyday Things by Donald Norman. It is years ago since I read the book, but I can still remember Norman agitating against all kind of design flaws: why would an object as simple as a door need a manual (“push”). I have therefore decided to start a new Twitter account titled unusablestuff in which I post pictures of things that fail to be usable.

Through Alper I recently learnt about the Japanese concept of Kaizen. This is a philosophy of continuous improvement that aims to eliminate waste (wasted time, wasted costs, wasted opportunities, etc.). Kaizen as described on Wikipedia is very much a particular process that you can go through with a group of people:

Kaizen is a daily activity, the purpose of which goes beyond simple productivity improvement. It is also a process that, when done correctly, humanizes the workplace, eliminates overly hard work [..], and teaches people how to perform experiments on their work using the scientific method and how to learn to spot and eliminate waste in business processes.

I’d also like to see it as being a mindset.

Another thing I recently read was a Wired article titled: The Good Enough Revolution: When Cheap and Simple is just Fine.

Cheap, fast, simple tools are suddenly everywhere. We get our breaking news from blogs, we make spotty long-distance calls on Skype, we watch video on small computer screens rather than TVs, and more and more of us are carrying around dinky, low-power netbook computers that are just good enough to meet our surfing and emailing needs. The low end has never been riding higher. […]
what consumers want from the products and services they buy is fundamentally changing. We now favor flexibility over high fidelity, convenience over features, quick and dirty over slow and polished. Having it here and now is more important than having it perfect. These changes run so deep and wide, they’re actually altering what we mean when we describe a product as “high-quality.”

The article is full of examples where cheap, convenient and fast wins out over high quality. Think netbooks, MP3 files and the Flip videocamera.

Both ideas have their appeal to me, but at a superficial level they might seem to contradict each other. Why would you spend a lot of time trying to continually improve on something, when good enough is just good enough? This contradiction isn’t truly there. Good enough is essentially relevant at a higher level than Kaizen. Good enough means you design for a specific task, context, audience or zeitgeist and don’t add things that aren’t necessary. It is about simplicity and lowering the costs, but not about lowering the design effort. Kaizen is about the details: once you have decided to build a netbook (smaller screen, less processing power, but good enough for basic browsing on the net), you should still make sure to design it in such a way that people can use with a little waste as possible.

Oscar in the classic bin
Oscar in the classic bin

Let’s look at garbage bins as an example. A garbage bin is a relatively simple product. It is a bin with a lid that can hold a bag in which you put the garbage. Oscar lives in one of the classic bins. In essence this is good enough. You don’t need auto-incinerators, sensors that tell you when the bag is full, odour protection, etc. The simple bin-lid-bag concept does have a couple of issues and problems that can be solved with good design.

The Brabantia 30 liter Retro Bin is a bin that has done exactly this. What problems are solved with the design of this bin and how?

Problem: Sometimes you need two hands to get your garbage in the bin. If you have to scrape some leftover peels from a cutting board for example. In that case you have no hands free to lift the lid of the bin.
Solution: You create a bin with a foot-pedal. A foot-pedal also keeps you hands clean as you don’t have to touch the lid of the bin which is often dirty.

Problem: When the bin is empty, pressing the pedal might make the bin move.
Solution: A rubber ring at the bottom prevents the bin from moving on any flooring.

Brabantia Retro Bin
Brabantia Retro Bin

Problem: It can be irritating to constantly have to press the pedal if you want to throw away multiple things and have to walk back and forth to get the garbage to throw in the bin.
Solution: Hinge the lid in such a way that if it opens all the way it stays open. Allow this to be done by a persistent movement of the foot on the pedal.

Problem: If the bag gets really full (by pressing down the garbage) it might press against the mechanism that is used to open the bin, making it hard to open.
Solution: Make sure that the mechanism for opening the lid on the basis of the pedal movement lies completely outside of the bin and is unaffected by the pressure.

Problem: When you put in a new bag it often happens that there is air trapped between the bag and the bin. This makes it hard to throw aways things as the full space of the bag is not used.
Solution: Put little holes in the top of the bags. This allows the air to escape when putting in a new bag.

Problem: There is often a vacuüm between the bag and the bin when you try to lift a full bag out. This gives you the feeling that the bag is stuck.
Solution: Have little holes in bottom of the sides of the bin. This way air can come in, preventing the vacuüm. Brabantia rightly thought that holes at the side of a bin look a bit weird, so they have created an inner bin and outer bin. This also solves an aesthetic (if not design) problem: the top edge of the bag being shown. This top edge now hides between the inner and the outer bin.

Problem: A lot of garbage has some liquid components. These liquids sometimes drip from the bottom of the bag.
Solution: Create an extra strong bottom for the bag of an extra impenetrable plastic.

Problem: When a bag is full it can be hard to tie it up.
Solution: First make sure that the bag is slightly bigger than the bin. Once the bag is out of the bin, the garbage has more space to spread and the top of the bag will have more space to tie up. Next, have a built-in string that can be used to tie up the bag (also highly useful for lifting out the bag). Make sure that this string is long enough to make for an easy knot.

I have had all these problems with garbage bins at some point, the Brabantia bin solves them all.

Many people will probably consider me a whiner (there are bigger problems in the world, can’t you get over these minor garbage issues?) or a weirdo (garbage bins, honestly?) and both are probably true, but that doesn’t negate my point. Getting a product on the market requires that is designed. Now think about the extra design effort to create a bin that solves common bin problems. How many more man months for the Brabantia design than for the classic “Oscar bin”? Now imagine the small problems that a user of a classic garbage bin encounters and multiply them by all the garbage bin users in this world. Any idea how many times an hour something is spilled in this world because there is no pedal on the bin? People like to blame themselves (“I am so terribly clumsy”), I like to blame the designer. Why not just spend some extra design effort and get it right?

I want to draw an analogy with the design of software. I think the believe in Kaizen is what makes Apple products stand out. The example I love to show people is the difference in the calculator on the Symbian S60 3rd edition (I used it on the Nokia E71, my previous phone) and on the iPhone (my current phone).

A calculator is a simple thing. Most people only need addition, subtraction, multiplication and division capabilities. Both default calculators deliver exactly this functionality. Nokia’s effort looks like this:

Nokia's default calculator
Nokia's default calculator

You need to use the keyboard (there are designated keys for the numbers) and the D-pad to make a calculation. The D-pad is necessary to navigate from one operator to the next. To do a simple calculation like 6 / 2 = 3 requires you to press eleven buttons!

The iPhone calculator looks like this:

iPhone's default calculator
iPhone's default calculator

You just use your finger to tap the right numbers and operators. 6 / 2 = 3 only requires four finger taps.

It is not just the touch interface that makes it possible to have a great working calculator. I managed to download another calculator for the Nokia phone, Calcium. It looks like this:

Calcium calculator
Calcium calculator

This calculator makes clever use of natural mapping to create a calculator that is as easy, if not easier, to use as Apple’s calculator. 6 / 2 = 3 takes indeed four button presses. Nokia could have made this. The fact that Nokia was willing to ship a phone with the default calculator as it was is one of the reasons why I have a hard time believing they have a bright future in the smartphone space.

In a next post I might rant about how many designers think the whole world is right-handed. Do you have any thoughts on design?

Looking Back at Learning Technologies 2010

Learning Technologies
Learning Technologies

A couple of weeks ago I had the pleasure of attending the 2010 Learning Technologies Exhibition in London. In many ways this event is very similar to the Online Educa in Berlin (e.g. most Berlin exhibitors were in London too and the conferences shared a keynote speaker). There are two main differences: Learning Technologies seems to draw a slightly less international crowd and it focuses more on the world of corporate learning. In this post I want to capture the people I met and the technologies that I looked at. What caught my eye?

Mobile Learning, Social Media and Serious Gaming
Those were the three buzz words that most exhibitors thought would sell their services best. I made it a point to enquire with any exhibitor who used any of these terms in their marketing and found out that most of these claims were very hollow. For example, I talked to a developer of mobile applications who told me they would gladly convert all my existing e-learning content into a mobile format (why would I want to take something that does not take advantage of its medium and move it over to a medium where it fits even less well?). Another one on the ridiculous side of the effectiveness scale was the vendor that showed me a screenshot of an internal social networking site where people could do a daily crossword. Honestly? Where is the first vendor that can show me a scalable mobile learning event/application that can only work because it is delivered through a mobile Internet enabled, location aware phone with a camera? The medium is the message right?

Technology Companies versus Content Development Companies
Luckily there were some exceptions to the rule. I thoroughly enjoyed talking to the knowledgable people of Caspian Learning. They have developed a serious gaming platform (Thinking Worlds) which utilises Adobe Shockwave to deliver single user 3D virtual worlds in the web browser of the participant. I have been a participant in an excellent course that used their technology and was very curious to see what the authoring environment would look like. After a solid demo I came away very impressed. The way that scenarios can be created and managed looks wonderful. I believe it is fair to say that Caspian’s technology is good enough to enable a new way of designing learning events. The ball is now in the court of learning designers (I like that better than “content developers”), they have to explore this new technology and have to learn a whole new set of skills. Authoring is easy, but how do you design effective scenarios? The field is very immature in this respect. Here is a demonstration video of a game made with their engine:

[youtube=http://www.youtube.com/watch?v=JJh464LEDac]

Caspian’s business model is interesting too. They consider themselves a technology company foremost, and not a content development company. Their business development efforts are spent on finding content partners. They already have a deal in place with IBM and I wouldn’t be surprised if companies like Accenture, Tata and NIIT will follow soon. This is the perfect way to make your business scale and it will allow you to focus on developing your technology (managing technical people like programmers is fundamentally different from managing learning consultants).

In my quick chat with Gavin Cooney from Learnosity I advised him to pursue a similar strategy: the core competences of his company are their technical skills (I call them “Asterisk plumbers”) and their ability to find strategic partnerships (not that he needs any advice, I am sure his business development skills far outshine mine!).

Some companies seem to sit on the fence when it comes to being a technology or a content development company. LearningGuide Solutions has an Electronic Performance Support System (EPSS) and develops content for it. I believe that EPSSs could be a very efficient way of getting people up to the task with a piece of software. The demo of their product left me underwhelmed.  They have been on the market for quite a while now, but their LearningGuide does not seem to have evolved past a an improved version of an online help system. The granularity of the context sensitivity was disappointing, the authoring has no version control and there are no social features. Wouldn’t it be great if people could write their own tips with the guides? How come LearningGuide has not kept up and emulated some of the functionality that platforms like Get Satisfaction have?

Learning as a Managed Service
I was interested to know whether any vendors would be able to deliver a large part of the learning function (at least the technology and support for the technology) as a managed service. I talked to two vendors:

I asked the people from Learn.com why they keep winning the reader’s choice for “Best Enterprise Learning Management System” category of Elearning! magazine (“Is it because all your customers get a free subscription to the mag?” wasn’t really appreciated). The first answer came from the sales guy: “Because we guarantee Return On Investment”. I don’t even know what that is supposed to mean, but they seem to think it is relevant (check out the relentless Flash-based ROI counter on their site). Luckily the next guy had a more sensible answer: Learn.com has all of their customers on the same code base and has a rapid development process for this code. This means they are able to deliver new functionality and fixes faster than corporations would be able to do for themselves. According to them they have the authentication problem solved and are able to integrate with HR systems like SAP through a mature web-services based architecture. They also had really smart answers to my questions about reporting. One thing I appreciated was their support for all web browsers: it is not often that somebody can promise me support for IE, Opera, Firefox and Safari without blinking. I always take that as a sign that technicians might be in charge instead of marketeers.

Another company that I checked out was the Edvantage group. This UK based business has signed a couple of large contracts recently. They deliver a completely integrated content development and delivery street through a Software as a Service solution. In that sense they are similar to Learn.com.

I would be interested to hear from anybody who has some real world experience with either of these companies.

Moodle Everywhere?
Moodle has become ubiquitous. It seemed that about one in four stands at the exhibition had something to say about Moodle. You can see that this is very market driven (open source finally has become cool), as a lot of the exhibitors had no idea what they were talking about.

My personal favourite was somebody from Saffron Interactive whom I asked about their social networking offerings. Their whole stand was adorned with logos from Facebook, LinkedIn and Twitter. I was wondering if they maybe had thought of a smart way to integrate these services into learning offerings. She showed me a couple of screenshots of something that looked a bit like Ning and told me they created social communities for their clients. She then proceeded to tell me that the platform they used for this was Moodle and that an implementation of Moodle in general only takes three(!) days. I love Moodle, but I would never use it to create a social community and to make Moodle look like her screenshots takes a lot more than three days. I had to move on after that.

A very impressive Moodle offering came from aardpress. They have invested a lot of their programming talent (months and months of work) into creating Moomis, a set of tools that fills some of Moodle’s gaps for the corporate learning world. Unlike the corporate Moodle solutions that I have seen so far (e.g. ELIS), Moomis is not a set of successful open source projects that are integrated into Moodle. Instead, all functionality is created inside Moodle itself, using Moodle’s libraries and its add-on architecture. This had advantages on the usability side, but could have disadvantages on the side of functionality (i.e. it is hard to write a very rich tool from scratch). aardpress (they don’t seem to want to capitalise their name) is hard at work getting Moomis ready for Moodle 2.0. I hope they are successful in turning this into a sustainable project and maybe even collaborate a bit more with Moodle HQ in developing this type of functionality.

In the conference part of Learning Technologies there was a small meeting of corporate Moodle users that I crashed into in its last 15 minutes. I am glad I did, because I met Mark Berthelemy there, who I had only seen on Moodle.org before.

Monkeys with typewriters
Monkeys with typewriters

Wisdom Architects
Another meeting I thoroughly enjoyed was my talk with Lawrence O’Connor from Wisdom Architects. We chatted about implementing learning technology in very large organisations, discussed theories of memory and the Mind Palace 3D iPhone app he is developing. This app will help people memorise better using the time-tested technique of building a memory palace. I find it fascinating how we are both using technology to outsource our memory (my phone keeps all my to-do tasks, phone numbers, etc.) and to help us get a better memory. I am wondering whether we will see more study tools like this app and like eFaqt in the near future.

Lawrence very kindly gave me a copy of Jemima GibbonsMonkeys with typewriters. This book about social media at work is published by Triarchy Press which has a lot of other interesting titles. I really liked Gibbons’ unconventional approach: she went out and interviewed about fifty people that have either changed the face of social media or have run succesful social media projects in companies. The book is divided into six chapters titled: Co-creation, Passion, Learning, Openness, Listening and Generosity. Each chapter starts with a myth and a reality (e.g. Myth: Social networking is a time waster, Reality: Building connections is vital to business). My copy is now full of dog-ears. A couple of the concepts/ideas that I want to explore further:

Here is an O’Reilly quote:

You design applications that get better the more people use them, then the applications that work get the most user data. The winners are those that harvest collective intelligence: Amazon, Google… Google is actually harvesting the intelligence of all users. […]
One of the things that I suggest to any company is what data assets do you own and how can you build new fresh data services against that data? I think a lot of traditional businesses have enormous data assets, they just need a slightly different mindset.

Then there is IBM’s idea of reverse mentoring programmes, where younger employees teach the older staff about social technologies. And a great quote from Clay Shirky:

All businesses are media businesses, because whatever else they do, they rely on the managing of information.

Gibbons formulates an argument that I use often when I try to get people to be more transparent about what they are doing:

Today’s smart businesses are not so much about creating an owning knowledge as about applying and learning from it. If [a company’s] blog posts and research papers are freely available, to be used , re-mixed, mashed up and built upon, that’s fine: the core competence of [the company] lies in the minds and knowhow of its consultants.

The book ends with “30 ways to get social”: great practical advice.

Other Meetups
Learning Technologies really does seem to be the place where all the British e-Learning people come together. It was chance for me to meet a lot of people that I had only met virtually before. I had a good chat with David Wilson from Elearnity, talking about innovation processes and about his research network. I met some of the people from Brand Learning and The Chartered Institute of Marketing with whom I have been working in the last couple of months on a marketing curriculum. I got to shake Rob Hubbard‘s hand and talk to him about his excellent Rapid eLearning Development Course. The only appointment I missed was the one with Jane Hart, maybe next time!

Bersin Executive Roundtable
The day after the event I joined Josh Bersin, Allan Keetch, Donald H. Taylor, Barry Davis, Ghassan Mirdad and Christina Tsirimokou for a corporate roundtable organised by Bersin & Associates. This was a diverse group of people with very different problems, so occasionally it was hard to find some common ground.

We did manage to have a good discussion about integrating talent management and learning. Doing this from a system’s perspective seems to be the holy grail for many organisations. Bersin thought the overlap between these two things is not as profound as most people think it might be. There really isn’t that much integration to do. On the other hand he has seen many organisations crumble under the weight of their completely systemised and integrated competence management systems.

Allan Keetch noted how good talent management systems are important and useful when an organisation is restructuring. I agreed partially with him. We all know that nowadays it is not only what you know, but also who you know that is important. There are barely any talent management systems that take this into account. My employer just went through a restructuring exercise and I am quite sure that my hiring manager had a good overview of my formalised competencies (and those of my competitors for the job), but had no insight into the network that I would bring into the job. As organisational network analysis (ONA) will mature I imagine we will see more and more tools that creates these social graphs automatically based on existing communication and collaboration patterns. (Remember O’Reilly’s quote, earlier in this post?).

Josh Bersin had keynoted on informal learning and it was therefore fitting to have Barry Davis at the table. He works for Creganna Tactx Medical and he believes that learning is working (or is it the other way around?) and that everybody in his company should be a trainer. His organisation is just the right size for his ideas to have a lot of impact. For example, he has managed to “formalise” (“organise” or “facilitate” would probably be better here) the 70-20-10 rule of Charles Jennings.

Finally
I am not the only who has written about Learning Technologies. Jane Hart had some good comments (with a post by Jay Cross in her wake) and Mark Berthemely wrote an extensive post which is very worthwhile to read.

http://www.youtube.com/watch?v=JJh464LEDac

A Design Concept For a Mobile Moodle Application

Arjen Vrielink and I write a monthly series titled: Parallax. We both agree on a title for the post and on some other arbitrary restrictions to induce our creative process. For this post we agreed to create a design concept for a mobile Moodle application. The concept should include screen mockups. You can read Arjen’s post with the same title here. This month we are delighted to have two guest writers writing about the same topic. Marcel de Leeuwe (read his post here) and Job Bilsen (his post can be found here).

Mobile applications have taken off. This is largely due to the trailblazing work that Apple has done with the iPhone and the App Store. If you have been watching my Delicious feed, you will have noticed that I too have succumbed and will be part of the iPhone-toting crowd (I will write more about me losing my principles later).
Nearly every web service that I use has a mobile application. Examples are Last.fm, Flickr, WordPress, Dropbox, NY times, Paypal and more, the list is endless. Moodle, the web application that I use most often, does not have a mobile app yet. There have been a couple attempts at creating themes that display well on a mobile (such as here). These mobile themes usually try to deliver all of Moodle’s functionality, which often limits their phone specific interaction and their user friendliness. Other applications use JAVA applications that gives people access to specific Moodle functionality (examples here and here).

It would be great to have a true mobile Moodle application. Here are some initial thoughts for a design.

Audience
The audience for this Moodle application would mainly be students/participants. I want the functionality to focus on things that are easily delivered on a mobile platform. I don’t think grading and reporting interfaces lend themselves well to a smaller screen. The things that people like to do with a mobile device are usually: seeing what has happened/is happening, plan and communicate. This Moodle application will enable the users of a Moodle installation to do exactly those things.

Getting rid of the course paradigm
Moodle is extremely course centric. I have always thought that this has some great advantages, mainly that all the learning is very contextual. Students, however, often have to “multi-course” (doing multiple courses at the same time). A mobile application should make the most urgent or current events, actions and resources bubble to the top. This requires the application to get rid of the course paradigm and show a personal page per user.
People that have used Moodle for a while might know of the “My Moodle” page. This page also tried to pull up the most relevant information for a particular user, but would still display this information on a course by course basis.

This application will consist of four main screens. Each screen has its own icon at the bottom of the screen that stays available at all times. Each screen could of course lead to other screens that take you deeper into the Moodle installation.

1. Recent activity stream
Facebook and Twitter have really taught us the use of activity streams. These pages display short status messages about what is happening in reverse chronological order. Moodle has had an activity stream since its inception: the recent activity block. This block shows what has been happening in a particular course. Examples are forum posts, work being handed in or materials being added by the teacher.
This screen will work in a similar way, but will include all the courses a user is participating in. I would imagine that each update on the screen would include a date and a time, would link to an extended version of the update and would include a user image if the update concerns another user, or an activity icon if it concerns a particular activity. The newest updates would be at the top of the screen and the user would be able to scroll down to see older entries (very similar to Twitter). See below for an example:

Recent Activity
Recent Activity

You would have to think about each Moodle module and decide what a status update would look like for that particular module. Some examples of events that could trigger a status update:

  • A forum post is added to a course of which the user is a member.
  • An activity becomes available (either because it was added or because it had certain time that it would become available, like the choice or assignment activity) or a deadline has passed.
  • An entry is added to a database activity or a glossary that the user has access to.
  • A topic or week has been made current by the teacher/facilitator.
  • A message has been sent to the user.
  • The user hands in work for an assignment, fills in a choice, starts a lesson, gets the results for a quiz or starts a SCORM object.
  • A change is made to a wiki page that the user has access to.

These status updates could announce themselves on the home screen in a similar way to how the mobile platform shows that you have new email messages: by showing how many new updates are available.

2. Upcoming events
This screen is also an extension of existing Moodle functionality made course independent. Conceptually it is what you would see if you would scroll up on the recent activity screen. Upcoming events that can be displayed are:

  • Anything that is in the user’s calendar.
  • Activities that will become available or that have a deadline.
  • Courses that will start and that the user is enrolled in.

This screen would look very similar to the “Recent Activity” screen as shown above.

3. Social: contacts, interests and messaging
A mobile device is used for communications and a mobile Moodle application should facilitate that. This screen is an alphabetical list of all the users that a student/participant shares a course with, combined with an alphabetical list of all the interests that a user has put in their profile and all the courses the user is enrolled in. See example:

Social
Social

Selecting a user will take you their profile page. This page will focus on the ways that the user can be contacted. You can message the user from here, call (or Skype) them, send them an email and click on the links to their external websites (a blog, Twitter, Facebook, etc.). See this example:

Profile page
Profile page

Selecting an interest or a course will apply a filter to the alphabetical list. It will now only show users that share this interest or this course. It might allow the user to contact all these users in one go (if this role has been given the permission for this capability).

4. Browsing courses, activities and resources
I really like a side scrolling drill down navigation (examples are the way that email works on the iPhone or the “Slider view” on Grazr). A mobile Moodle application should allow the user to navigate to activities and resources in their course by constantly drilling down. This can be done it two ways: course centric or activity-type centric. The application should probably support both.
The first screen shows a list of all the courses the user is participating in and below that a list of all the activity types that exist in Moodle.
Clicking on a course will make the previous screen slide to the left and display a new screen. The first option on this screen will be called “Course overview”. If you click on this you will see all the section/topic summaries, all the activities and resources and all the labels in their correct order (blocks are completely ignored in this mobile application). Below the course overview are links to the overview pages of each activity type. Clicking these will display all the instances of a particular activity or resource.

If you click on an individual activity or resource you will be shown that activity (again by making the screen slide to the left). What is shown here and what interactions are possible is dependent on the activity module. The minimum it would show is the title and the description. This would probably be the case for SCORM modules for example or for “upload a file” assignments. You would not implement a mobile SCORM player, nor will people likely have files for upload on their phone. The one activity that would benefit from being a bit richer would be the forum activity. It should be possible to follow and contribute to a forum discussion from the mobile Moodle application.

Technical considerations
The (start of a) functional design that I describe above will certainly have technical consequences (not to write obstacles). Below some of my first thoughts:

  • What platform? The nice thing about web applications is that you only have to develop them for one single platform: the platform that the server is using. Of course it would be possible to create a mobile version of a Moodle site, but this would negate some of the great things that a native application can do. We are now in the unfortunate situation that we have multiple mobile development platforms. The two obvious choices for mobile development would be an iPhone app and an app for Android. But what about people who use a Blackberry, or a Symbian or Maemo phone? I have no knowledge of how easy it is to port an Android app to the iPhone, but I do know that multiple platforms will be a reality in the next couple of years. You better write portable code!
  • Where does the code live? It is easy for Facebook to create an iPhone application. They run a single installation and can have server-side code and client-side code to make it all work. Moodle’s install base is completely decentralised. That means that Moodle installations will have to get some code that will allow a client to talk to it. In the client you will then need to be able to say what Moodle installation you want to connect to. This poses a couple of questions. Will a mobile Moodle app require a special server module? Will Moodle 2.0 expose enough of itself to an external API to make a client like I describe above possible? Should one client be able to plug into multiple Moodle installations at the same time? I am not a software architect, so I would not have any answers to these questions, but they will need to be resolved.
  • Performance? Moodle’s data structure is course-centric and not user-centric. Moodle currently does not have internal functions that deliver the data in a format that the Moodle client can use. I think that the query to deliver a recent activity feed that is cross-course and has the perspective of a single user is very complex and will create a huge performance hit on the server. Again, I am not an architect, but I would imagine that this requires a special solution. Maybe more push and less pull? More database tables? Server-side pre-caching? Who knows? I certainly don’t!
  • Roles/permissions/capabilities? Any new Moodle client that uses existing Moodle data (as opposed to new modules) needs to be very aware of any existing capabilities. All of these need to be checked before information can be shown to the user. I am sure this has further performance implications.
  • Online/offline? A lot of mobile applications cache their information so that a user can continue to use the application even if an Internet connection is not available (e.g. the New York Times app). Even though it might be useful for a Moodle application too, I wouldn’t put any initial effort into solving that problem. Smartphones that have decent application support function well in a context where there is persistent mobile broadband. It is therefore okay for the first version of mobile Moodle application to assume that it is online.

A note on prototyping/mockups
I used the excellent Balsamiq to create the mockups that go with this post. This easy tool delivers quick static results, although it lacks a bit of precision that I would like to have added. Moodle has Balsamiq integrated into the Moodle Tracker, making it trivial for anybody to add a user interface mockup to any issue. There are other tools that could be used to do iPhone prototyping. This blog post gives a good overview.

Continuing the dialogue
I would really like an application like this (or something similar) to come into existence. I look forward to working with other people with a similar interest (bored developers? Google Summer of Code students?). Let’s make this happen! Any and all comments are welcome…

A SnapAsk Widget for Symbian S60

Answers in a snap
Answers in a snap

My favourite gadget of all time is the Psion 5MX. EPOC, its operating system, was sheer genius. It had a great interface and was a joy to use. EPOC became Symbian S80 and when the lack of Internet functionality of the Psion became too bothersome I decided to switch to a Nokia 9500, then to a Nokia E90 and now I own a Nokia E71 with Symbian S60 3rd edition.

Suddenly I find myself stuck with a smartphone that has an operating system which doesn’t leverage the keyboard of the device and is in many ways quite clunky (some options are hidden more than five layers deep). However I much prefer Symbian to the other available platforms: the iPhone is extremely nice but married to iTunes and locked down, Palm hasn’t been resurrected yet, Windows Mobile is a joke (using a pen is ridiculous in this day and age), the Neo Freerunner is too experimental, Maemo doesn’t allow me to use a SIM card and all the phones running Android that currently exist have no battery life.

I like to get the maximum potential out of all the technology that I use. I have spent quite a bit of time setting up my phone exactly the way I like it, so that I have quick access to information on the go (see for example the custom mobile start page that I created). In due time I will write a post about the programs that I use on my phone. In this post I want to focus on a small widget that I developed yesterday evening.

A couple of months ago I read a post on Lifehacker about a great service for people who own a mobile device with email capabilities: SnapAsk allows you to send an email to ask – at – snapask -dot- com with a keyword and a query in the subject line. SnapAsk will then reply to your email with an answer to your query. So “wiki Symbian” will return the Wikipedia page for Symbian and “news economic crisis” will return an email with relevant news articles. Some of the keywords are a bit US centric and don’t return proper results for me in the Netherlands (e.g. weather, traffic or flight), others are quite innovative: Know some words of a song, but can’t remember the name or who sang it? Send an email with the subject “lyrics A full commitment’s what I’m thinking of” to Snapask and you will be textually Rickrolled.

Using SnapAsk on my phone proved more difficult than I had hoped. I had to either type in the email address in the To: field or select it from my contacts, remember (the hardest part!) and type the keyword I wanted to use and finally type the query. I also learnt the other day that Nokia has decided to support widget development on their Symbian platform. So I gave in to my tinkering spirit and committed to trying to write a little widget which would make it easier to use SnapAsk on my phone.

I set the following criteria for the widget:

  • It should require the least amount of possible clicks
  • It should be as close to self explanatory as possible
  • I would have to be done with it in a couple of hours
The UI of the widget
The UI of the widget

At first I thought I would create links for each keyword and an input field for the query. The user would first click on the link with the keyword, then write the query and finally click on a link or press a button to start the email application. Later I realised that I could eliminate one step by making the keywords buttons. This way the user would only have to type in the query and select the correct keyword.

This idea required some Javascript. I have been wanting to try jQuery, so I wrote the initial implementation using that library. When I tried loading the page on my phone I learnt that jQuery seemingly was not supported by Nokia’s built-in browser. I then decided to try and write it with normal Javascript code and this worked perfect. With some CSS I managed to get the input field to be the full width of the top of the page (where the cursor is likely to be). I also made the field higher by increasing the font-size property, so that it is easy to get your cursor on it, in case it isn’t. The only thing I couldn’t manage to do was get the field to auto-focus on load. It seems that Nokia doesn’t want to support that function.

All I had to do, after finishing the HTML file (with inline CSS and Javascript), was create an XML file called info.plist with the name of the widget and its version number and an icon.png file of 88×88 pixels. I then put these three files into a folder, zipped it and changed the extension to .wgz.

The widget as an installed app
The widget as an installed app

The great thing about these widgets is that they install like any other Symbian program and can, by default, be found in the Installations directory on your phone. Ajax can be used and apparently some Javascript methods exist that allow you to map certain functions to the softkeys of the phone.

I really like how standardised web technology is becoming. This widget should run on any other device with a standards based browser and if you keep the structure of the page simple and clean you can expect each individual mobile browser to display the page optimally.

My employer has standardised on Symbian smartphones for all their consultants. It should be relatively easy for them to develop a highly relevant widget that will enable me to do my work better and more efficiently. I have to say I am bit puzzled about the fact that Nokia is not pushing this concept a bit harder. Where is the Nokia Widget Store?

I would love for people to use the widget and give me some feedback on whether they like it:

Download the Widget
(or try in your browser if you don’t have a Symbian phone)

If you know of any other interesting widgets for Symbian please let me know!