Archive for the ‘Kaizendo.org’ Category

Moving Perl up the value chain

Wednesday, July 21st, 2010

The last year or so, there’s been a serious discussion in the Perl community about “the M word” – marketing. About visibility, making good impressions and making more people consider Perl as a good programming language for their tasks at hand.

Lots of good things have happened, including the establishing of the TPF marketing committee, volunteer stands at non-Perl conferences, and more focus on the brilliant parts of what the community and it’s software can offer. It’s been great watching all the goodness unfold, and being part of some of it.

But in the meantime, something else has been bugging me.

All the time, there’s been a focus on tools and people. When it comes to solving actual and real life problems, not much has surfaced. Instead there’s an unspoken focus in the Perl community about making tools that help people make tools.

What we do at the moment is marketing tools-for-making-tools. We tout the obvious superiorities of Moose, Catalyst, POE and all the other goodies in Task::Kensho, but when it comes to solving actual and real problems that “normal” people care about (you know, the people that don’t care about the details in computers), we blissfully ignore it while silently hoping for some big company to choose Perl for their next public project – so we eventually can get a new website to link to.

I propose we do something about this. Let’s pick a few real and significant problems, and see if we can make an impact on those while using and showing off Perl software, the Perl community and all that is good about it at the same time.

To kick this off, let’s ask a few basic questions.

  • What are “real” problems? – Read the news! You’ll find people complaining about education issues, lack of clean water, political turmoil, misuse of power, corruption, closed “power clubs,” democratic deficit in government, etc. etc.
  • Also, consider the prevalence of a problem. Local < Regional < National < Societal < Cultural < Global < Biological. – There’s nothing wrong with a little ambition!
  • And finally, is it a particular or a systemic problem? Is it short-term (critical) or long-term (chronic)? Can you find similar problems in other areas?

Picking a good problem to play with is very much up to you. Pick something you care about that you know is difficult, and pick something that lots of other people care about too but that can’t be solved trivially. Maybe you want to make a quick risk assessment matrix to figure out if your issue is “real” enough? (and even if not, it’s probably useful to remember that $risk = $likelyhood_of_failure * $impact_of_failure; anyway.)

Next, you have to make figure out a way to improve on the situation. Keep in mind that $influence = $visibility * $impact; – meaning whatever you do, you have to both think about execution and telling people about what you’re doing. Make a plan, and tell people about it! The rest is “just” hard work. ;)

With that said, if you’re going to make Perl part of any solution, it might be useful to have an idea what role Perl can have in the process. Here’s one possible (and quite generic) value chain:

  1. Perl
  2. ➜ CPAN
  3. ➜ $USEFUL_FRAMEWORK (A tool for making tools) # This is where we code today
  4. ➜ $TOOL_THAT_INCREASES_AWARENESS  # This is where I think we should code more
  5. ➜ Discussions and awareness building, eventually in media
  6. ➜ Discussions among politicians
  7. ➜ Some kind of funding in order to improve issue
  8. ➜ Someone tries to actually do something
  9. ➜ Success/FAIL/Meh.

Also, keep in mind that Perl is useful in places where data, information or knowledge is the main currency or “item of value.” Perl tools might not help directly with “physical” matters, but I’d say it’s much better suited for improving communication and knowledge-related issues.

So, you ask: How about an example?

I’m so glad you asked! ;)

My attempt at this is called Kaizendo.org, and it’s purpose is to enable people to create textbooks that can be customized to the individual needs of the reader.

To make this happen, we’re creating a Catalyst-based tool for discussing and improving texts that have aspects – texts that have alternative representations of themselves, each telling the same story but in different ways. If a pupil is struggling with dyslexia, then choose an aspect where the story is told with simpler, shorter words. If a pupil is bored because the rest of the class is slower at reading, then choose an aspect where the story has more details and depth, so the pupil can keep the same pace as the class while getting more interesting content out of it.

What would I like to influence with this?

  • Make textbooks more interesting for kids, so they can effectively (and motivationally) compete with professionalized entertainment like games, social networks, television and other kinds of procrastination. (How? By making it possible to write aspects that appeal to different fields of interests, and improve these based on reader feedback.)
  • Give teachers the opportunity to use their textbooks more actively in the way they teach their classes. Textbooks are today for homework, why not make the homework more relevant for what’s going on in the classroom? (How? By making it possible to write aspects that support different styles of teaching)
  • Make the textbooks a conversational item, so pupils, teachers parents and other enthusiasts can not only figure out the best ways of telling a story, but also learn and improve their own level of knowledge by allowing them to discuss and improve the contents of the textbook. (How? By allowing anyone who cares about the textbook content to give contextual comments to the text itself, discussing these, and finally make it easy for the authors to update the text based on those discussions.)
  • And quite a few other things. ;)

The project is up and running now, and we’ve started writing the prototype, we have a mailing list and wiki, and I’ll even be giving a talk about Kaizendo at YAPC::EU in Pisa. But we’re still far away from our goal, and we need plenty of help.

So, if you like what I’ve written here but don’t want to start your own Big Project That Matters, then do consider joining our project. In the meantime, tell me what you think!