Posts Tagged ‘flempo’

It’s been time. We are called Livispace and will be doing both consulting and our own products. The idea is the more successful we are going to be with the products, the less we can work for clients. The scheme is now 2/3 (products/clients), but it might change in a few months.

The idea is to have a “Living Virtual Space” of business applications that will integrate well with each other and will provide founders and employees of these companies to have more freedom. We are focusing on the Czech market, although we are going to have English versions of our products pretty soon after releasing the Czech versions (if not immediately).

Flempo has become a first member of the Livispace’s product suite, another one is coming up very soon. Telfa will be a virtual telephone exchange (VOIP PBX, a call center) which you’ll be able to set up in a day or two by simply going to a web page, sign up, and configure your number and dialplan.

Had the chance to pitch Flempo at the Prague Techcrunch/CrunchGear Meet-up. Except no one could hear me (just like all the other presenters), it was a good experience and another step for me to improve my (so far quite poor) speaking skills. Here you can see all the pitches of the night (mine starts arond 12:25).

I worked with many programmers and most of them were able to produce working code. But only the code of the superstars was easily readable and looked simple although it did complicated things.

If someone works in a sort of complicated field (who doesn’t these days), it is very easy for them to confuse you within the first ten seconds of his explanation of their job. Although it is quite hard to understand these complicated things, it is much more difficult to explain them simply.

Flempo is mostly about people assigning tasks to each other. The idea seemed simple: You distribute people in teams and let the teams assign tasks to each other. The two teams represent a provider-customer relationship. Great. Now it turned out to be very confusing when implemented. If you want to assign tasks within one team, you need to set it as its customer or provider. When someone from a provider’s team wants to assign a task to someone for the customer’s team, it is not possible until you create the relationship in the other direction. (And you have to communicate this need to the users somehow). When setting up the relationship in the first place, you need to think which party is which. And so on. Although this was a very powerful and flexible concept, in practice it was too complicated to follow.

OK so the second step was making the relationship bidirectional. Instead of customers and providers, you just had partner teams. Partner teams could assign tasks to each other. Better. The need to create a team a partner of itself was still here, however. Now I didn’t mention that you can actually configure the attributes a task can have when created for certain team-team relationship. This is very powerful: you might require a deadline from someone, while only an affected component from someone else. However, when creating a task, this creates the need to explicitely state as a member of which team you are creating this task. Because if you create a task for the team C, it might have different attributes depending on whether you’re a member of A or B. This made the new task form confusing. Also, if you send a message to the team’s e-mail address, it creates a task for that team. Very neat. But which would be the team you created this task on behalf of? Unless forced to put something cryptic in the subject, no one knew.

Final step (at least for now): each task belongs to only one team. There is no two parties relationship, tasks can be assigned only by people within one team. This is enough for a project-oriented teams, but not so great for customer-provider relationships (people from both parties need to be in the same team “Providing services for C”), but reduces the complexity so much, that it was worthy of the change. I’ll need to come up with something that will support this kind of relationship better. But it needs to be.. yeah simple. And simple is what.. yeah hard.

When I released the first version of Flempo, I had this naive idea about user feedback. You just release something (anything) and people will tell you what to do next, right? No. Here’s a few observations I made (not only based on my experience with Flempo):

If people find something annoying, hard to use, or confusing – in other words something is not clear enough for them – they won’t run to tell you. They just go away or work around the problem. Even if they’ve invested a lot of time or money in the product, the fact that they have a problem with it might not get to you at all. They don’t care about you. They care about themselves.

Feedback buttons don’t do much. If you go talk to people (or run a survey, perhaps), they’ll tell you what they think about your product, what they do or don’t like. They don’t bother submitting any feedback though, unless they can significantly benefit from it.
If you have thousands of users, maybe ten percent of them might give you some feedback. But are the loud ones a good enough sample to represent the whole user base? I doubt it.

The main thing you’ll hear from users are feature requests. People will have a lot of ideas about what to add to your product. Your job is to find the right reason they want that particular feature (Paul Buchheit has some interesting thoughts on that ) and think how you can help them do that without adding anything to your product. Right?

The only real feedback people give you is in using your site. That is the feedback you should use to improve it. Watch what people do and try to understand their needs and problems. Measure. Improve. Repeat.

To summarize, don’t expect your users to tell you what you should do. They might give you pretty good hints, but it will always be up to you to figure out where to take your product. But otherwise it would be far too easy, wouldn’t it?

It’s come to me again. A while ago I wrote a few posts about Amazon S3 including how it gives you more freedom. Recently I’ve seen Jeff Bezos’ talk from Startup School 2008 where he shows how 300 years ago, if a company needed electricity, they had to have their own electric power generator. I can imagine that not so long ago, if you wanted a server connected to the Internet, you wouldn’t just rent one from your ISP and leave it in their hosting center, but you had to have your own DSL (or whatever) line and make sure it never goes down.

Now it would seem crazy to generate your own electricity or try to build your own hosting facilities if it’s not your core business. However, it’s not yet so obvious that you should outsource more than that. Any “heavy lifting”, as Jeff puts it, that is not your core business (and someone else can do it better and cheaper), should neither distract nor slow you down.

Paid Flempo plans have come with e-mail integration for quite some time. What does it mean though? Two things basically:

Replies to e-mail notifications Flempo sends you don’t end up in a black hole, but rather create a new task comment.
Thus if you receive a notification with someone’s task comment, you can simply reply to it and the text will comment the same task. If you attach any files to the e-mail, they will be attached to the task as well!
This is incredibly useful for your customers that are not that much used to use web applications and e-mail is their primary communication medium. Especially if they use Flempo only to create a few requests a week to you, this feature enable get started with Flempo easily from their e-mail client.

Each team has a Flempo address assigned and any e-mail sent to the address will create a new task for the team. This is great for forwarding e-mails you receive to your other addresses. Did you get a request by e-mail and want to make sure it gets done? Just forward the e-mail to the right Flempo address and voila, there’s a new task. Forwarding can even be automated and then all your customers’ e-mails sent to support@ and info@-like addresses can become (easily trackable) tasks in Flempo.

These features have been in Flempo for quite some time and worked great for users already registered in Flempo. Answer a task comment notification from the address you are registered in Flempo with and the created comment will have your Flempo user as the author.

The thing is that most of the time, e-mails to support are sent to you by people who are not your direct colleagues or current customers (yet..). Here’s where the recent improvements come in. The task is created with a “dummy” Flempo user based on the address the message came from. Moreover, any activity on this task can now be “filtered” so it is not longer the case that everything you do with the task will send an e-mail to the creator.

Let’s say you received an e-mail requesting some information about your product. You might want to assign the created task, comment on it to clarify something with your co-workers, or report spent hours for your internal billing. However, these events could confuse the person who sent the request. Now you have the option to skip sending the e-mail:

Checking the check-box will cause a notification e-mail not to be sent about this event. Pretty useful.

Moreover, if the person signs up to Flempo with the same e-mail she or he sent the e-mail(s) from, they will be able to see all their tasks and comments created from their comments! Of course except for the events when you checked the magic check-box.

I’m pretty excited about these features, not only will they be useful for many Flempo users, but they also simplify my own e-mail management.

Amazon S3 was inaccessible for a few hours last week. Although this was the first major problem of the service during the last two years and no data was lost, it wasn’t much fun. I did get a complaint from a Flempo user not being able to access their files (Flempo tasks and documents attachments, profile pictures, and custom logos are stored on S3).

Although it is very unlikely such a thing will happen again any time soon, I did think about an emergency strategy for such situations. It might be surprising, but I didn’t have local copies of the files stored on S3. I mean S3 is redundant and highly available service, so what would be the point to back them up, right? And no one is doing this (I’ve asked people using S3 for quite busy web applications and they said they have their files only on S3). But here you go, the reason to have such a copy is that you have a place to serve your files from when S3 is not available. And there is a very good second reason: Say a customer accidentally deletes an attachment and asks me to recover it from the backup. Oh, but there’s no backup I would have had to say, too bad.

OK so now there is a backup. All the attachments, profile pictures, and custom logos are synchronized with a Flempo server hard disk folder three times a day. I’m not running out of space there any time soon and even then I can always compress the stuff or something. I’ll figure it out when the time is here. If you’re interested in how I did this technically, you only need to read this tutorial.

I just added a neat feature to Flempo: You can save your task filters. If you set up a filter and follow the “Save filter” link next to it, you’ll be prompted to provide its name. Once you do that, the filter will be saved for you under that name. It’ll appear in the menu under the standard filters. Click here to see the example of saving a task filter in Flempo.

Note that the standard filters apply together with the custom ones. It means that if you go to “Current tasks” and then to your custom filter that filters assignees on Joe for example, Flempo will show Joe’s current tasks. This way you can display To-Do lists of your team members, so you can easily see what they are up to. Also if you work on multiple projects and/or for multiple customers, you can use the custom filters to switch context with one click. (That is why I made this in the first place, I’m in “Current tasks” or “Your todo list” and then I only click “Tasks assigned to Flempo”, “Tasks assigned to ProjectX” etc.)

Feel like hacking today?

Now to the hacking. I thought it would be nice if I could further filter on a custom filter. I’d be in Current Joe’s tasks, but I’d like to see Joe’s current tasks for a customer X. I didn’t really figure out how to keep the UI simple and provide this functionality at the same time. But then I realize the UI is there, but only in your address bar.

If you follow the filter link, you’ll see the URL will end with something like this:

filter=164&list_type=current.

If you set up a filter that shows tasks created by a customer X, the URL will contain

search_by=customer_id&search_for=5.

So if you want to combine these two filters, just concatenate the two parameter lists to

filter=164&list_type=current&search_by=customer_id&search_for=5,

go to that URL and bookmark it.

So yeah, this is my way to provide an advanced user interface without bothering the less advanced users. Hehe yeah I’m crazy

Hi there! I’m Jan Kubr, mainly a Ruby/Ruby on Rails developer from Prague. See my professional summary or my LinkedIn profile. I write about Ruby and RoR at jan on ruby and here about everything else. If you want to know more, feel free to contact me via Flempo. Cheers.