finally{}

all will be well finally

Now you can create cases via Twitter

with 3 comments

Traditionally, customer service was provided via phone, email or web. In the age of Twitters and Facebooks, those options seems so old age practice. Since youngsters spend so much time on the ubiquitous Twitter, they would eventually bring customer service to Twitter and other social media.

Here is how YATSY (a simple case management system for Google App Engine) is integrated with Twitter.

twitter

Isn’t that simple? Follow @yatsy; once yatsy follows back, send a direct message to yatsy to create a case. YATSY system will read this DM and create a case & will respond back.

Having Twitter Integration is a double edge sword. If you provide a fantastic customer service it will be known in the social media. On the other hand, if you do a lousy job, it will spread like a wild fire. Yet, if you monitor Twitter Streams, you’ll be able to improve your products and customer service too.

Now for the techies. How did I implement Twitter Integration? YATSY itself is written using web2py, a web-framework in Python. Twitter streams are parsed using python-twitter, a simple & efficient Python wrapper for Twitter API.

Steps Forward

  • Use Google App Engine Cron to initiate twitter parsing & case creation (now one need to explicitly execute the function)
  • Using the same Cron facility for auto-follow
  • Use a message queue for IN/OUT messages (if you know a good message queue implementation in Python, please leave a comment)
  • Integrate (case) notes with Twitter

If your hands are itching to test this, go ahead and follow yatsy & once yatsy follow you back, DM your case text.

If you are interested in checking out the code or want to do a code review, head to Google Code page

Written by Joseph Jude

May 2nd, 2009 at 7:57 pm

Posted in Programming

Tagged with ,

Why I chose web2py for developing YATSY?

with 5 comments

Non-functional features are as important as functional features in determining the success of an open-source application. Users should be able to download and try most of the functionality, without complicated installation steps. Equally important is the ease with which it can be deployed.

While striving to keep these boundary conditions for end-users, developers prefer a language (and framework) that enable them to transform their brilliant ideas into working code quickly.

With such a thought process, I searched for a framework to develop YATSY – an open source helpdesk application for small businesses. As the title says, I settled on web2py because of the following reasons:

It is on Python: If you didn’t know, Python can be learnt intuitively. In the recent years lots of Python-based frameworks have evolved improving developer’s productivity drastically. Python places minimal constraints on the developer; hence development is generally quick.

It adapts to Schema Changes: Schema changes are an inherent part of development; especially if you follow the open-source mantra of ‘release early; release often’. Web2py automatically changes db schema if it detects a change in the underlying model. You don’t need to drop and recreate schema or issue alter table commands. One less head-ache for developers.

Its a self-contained Framework: web2py is based on MVC pattern and it comes bundled with most of the components needed for web-development – authentication, authorization, form generation & validation,  internationalization, admin interface, ajax (jQuery) and so on.

Its well documented: Yes it is a pity that the official manual has to be bought but Massimo, the lead developer, seems to have a justification for it. I went ahead and bought the manual and I should it is fantastic – he explains each component of the stack pretty well.

It can be installed easily: It is based on Python,  but it is not a pre-requisite to run web2py. Download, Unzip, Execute are all that is needed to get started with web2py development – on any OS.

It can be hosted on AppEngine: This is a big plus for me. Google AppEngine is the only cloud hosting that I am aware of that provides a free hosting for Python based applications. So potential users of YATSY can try free GAE hosting before moving to paid hosting. Deploying web2py application to AppEngine is a one-click affair.

It can be hosted elsewhere too: Web2py provides the flexibility to host the developed application anywhere Python can be installed. This means that users are not tied to GAE. If they want to install in their own servers, it is no problem.

With web2py providing the basic blocks for non-functional requirements, I find it easy to develop YATSY. You can check out the code at Google code and try it at Google AppEngine.

Written by Joseph Jude

April 7th, 2009 at 7:53 am

Posted in Programming

Tagged with , ,

Are we demanding too much out of customer service?

with 2 comments

In a recent article in a leading online magazine, the author recounts his ‘bad’ experience in a five-star hotel and then compares that with a supposedly ‘good’ customer service at another equally starred hotel. He says that the ‘bad’ hotel didn’t extend his check-out time (they said that if he pays extra it would be possible); but the other hotel gladly did so.

I have my own experiences of bad customer service. But we need to differentiate between bad customer service and annoying customer demands.

Travel Bookshop

I remember a scene from my favorite romantic comedy – Notting Hill. In that movie, William Thacker – the protagonist – runs a travel book shop. One day a well dressed customer walks into the shop and the conversation goes something like this:

Customer :  Do you have any books by Dickens?
William :     No, we’re a travel bookshop.  We only sell travel books.
Customer : Oh right.  How about that new John Grisham thriller?
William : No, that’s a novel too.
Customer : Oh right.  Have you got a copy of ‘Winnie the Pooh’?

What is expected of William Thacker? Should he do something to attract this customer again? Should he send his assistant to get the latest John Grisham thriller and hand it over to the customer as a show of exemplary customer service? Isn’t that what we – customers – demand so often?

Before you complain next time about a bad customer service, think again. Were you an annoying customer?

Image courtesy: Webshots

Written by Joseph Jude

March 29th, 2009 at 4:12 pm

Posted in General

Tagged with ,

A byte of apple

with 4 comments

I wanted to own an Apple MacBook for long. Very long. Since I turned an independent consultant, I thought why not go for a MacBook?

Coming from ‘Microsoft Windows’ platform, the first impression wasn’t that impressive – after all even Windows has GUI, dock & task bar. But when I started using it, I realized why Mac is superior. In less than two weeks, I’ve come to like MacBook. There are at least three features that make Mac to stand out  (I’m not sure even in a decade such features can come to Windows based laptop; same holds for Linux too):

  • Install & uninstall experience – Drag and drop into ‘Application Folder’ for install; drag & drop into ‘Trash Can’ for uninstall. Just as simple as that. No registry; no clean-up of messy folders. Mac OS folks have done really good design and it is simply superb.
  • No shutdown - Okay, not necessary to shut down. Close the lid and its off; Open and start working. Cool, isn’t it?
  • Spotlight – something like desktop search. It is quick and precise (only once it didn’t return what I was looking for).

Mac Applications

A concern that I had was that I may have to spend quite a lot on applications. Not true. There are lots of open source and free applications for Mac too. And most of them are elegant in UI and efficient in what they are supposed to do. Here are some of the applications that I’m using:

Picture 1

Web Browsing : Mac comes pre-installed with Safari, which is a fast browser. I am also using Firefox.

Email : Mail, the pre-installed email program doesn’t have a provision to download only the headers. I’m using Gmail with offline feature and it is more than sufficient for me.

RSS Feedreader : Again I depend on Google for it. I’m using Google Reader with offline feature.

Office Suite : I’m using the Apple iWork. Might give a try to NeoOffice.

Games : I’m surprised that Mac doesn’t come with pre-installed games pack. There is only chess. I’m searching for some good free games.

Chat : My chat buddies have grown old (no I’m still young ;-) ). Everyone in the current friends circle use Gmail chat and so I go with it too.

Programming : I’m using TextWrangler for coding. But couldn’t find a decent SVN client. I tried SCPlugin, but for some reason it didn’t work.

Photography : I’ve been using Adobe Photoshop Elements and it worked in Mac too. Still to edit any photo in Mac but I’m sure the experience is going to be good.

Note Taking : Voodoopad Lite is a desktop wiki for Mac and it makes it easy to takes notes and organize within a single physical file.

Personal Finances : I tried mmex. But it kept crashing, though it works fine under Windows.

VirtualBox : I couldn’t find a decent Desktop Blog writer than Microsoft Live Writer; also I already bought SmartDraw. So went with VirtualBox to run Windows inside Mac. I am also using MMex for personal finances under Windows.

Others : iSync for syncing addresses & calender from Nokia E71; TweetDeck for tweets; SLife for tracking hours spent on applications; Books for cataloguing; Grab for taking screenshots.

Are there any other interesting Mac applications (preferably free) that I should try?

Written by Joseph Jude

March 11th, 2009 at 8:23 pm

Posted in Tech

Tagged with ,

What is your learning model?

with 5 comments

In the competitive software industry, if you don’t keep yourself updated, soon you’ll be outdated. Yet when swamped with hundreds of concepts, methods and techniques, it is impossible to be updated continually. There is also a risk of, being updated in a soon-to-be outdated area.

Whether lucky or smart, I’ve always worked on challenging, well-paying and emerging concepts & tools. Having reached a certain stage in my career, I’m preparing for the next stage. I’ve followed ‘learn-do-refine’ model which has worked pretty well so far. With that foundation, here is my learning model for the next stage.

My learning model is of two layers – a core layer, domains in which I want to be an expert and a support layer, domains which will help me to practice my expertise effectively.

image

Enterprise Architecture

Many-a-times, those in software industry asks, ‘I have an answer. Do you have a relevant question?’. But successful (read profit making) companies are those that solve a business problem by engaging technology. EA brings this success story as a practice. I’m excited to learn about EA and possibly apply those concepts in the coming years.

Customer Relationship Management

CRM covers topics such as finding new customers, selling more to existing customers, and retaining customers. Now-a-days, CRM is considered relevant even for government organizations. I’ve been in CRM domain for the past 8 years and I’ve enjoyed both functional and implementation sides. I would like to continue to learn how CRM concepts help companies (and even governments) to be profitable.

People Skills

Executive educator, Marshall Goldsmith, says in ‘What got you here won’t get you there‘, that most of executive’s challenges are ‘people related’. To achieve anything significant, there needs to be a team (composed of seniors, peers, and juniors) and it is important to develop people skills to work with and with-in teams. Having been a asocial introvert, I find that this part of the pie is the most frustrating and emotionally draining; yet a critical part to be successful.

Project Management

I would broadly term this part as ‘Getting things done’ – the execution part of the deal. I’ve worked with some of the brilliant minds who are able to place best ideas on the table, but lack what it takes to get it done. Though I like to conceptualize a solution and communicate it with enthusiasm to others, I find it satisfying to get it executed – not really bothering about who gets the credit. You know what? When you get into that attitude, you almost always get the credit!

Financial Management

This is one area where I need to start from scratch. Executives translate every action in the organization into numbers – either profit or loss. It is poor financial management that has gotten the erstwhile famous companies into bankruptcy.

…and some fun

Another critical piece to continue enjoying other pieces. Though I don’t expect to be Ansel Adams or Mark Twain or Michael Phelps, I like to pursue photography, travel, writing and swimming as they joyfully refresh the soul.

Do you have a learning model? Do you think it is worth having one and pursuing it? Feel free to share your comments.

Written by Joseph Jude

March 10th, 2009 at 3:05 pm

Posted in General

Tagged with ,