Tuesday, August 26, 2008

Use Twitter wisely


Lifehack wrote some time ago about Twitter, giving some hints on how to use it productively here. While the post contains a lot of interesting and nice tips, it is recently that I came upon a free web service named foamee which extends social interaction with Twitter in an ingenious and fun way: keeping track of beers and coffees you owe to people.

Check out the How-To page to understand how it's working. I wonder how they came up with the name foamee. Foame means hunger in Romanian.

We recently started to twitter (is this a verb yet?) here. If you have a Twitter account, please follow us. If you don't, why not?

You may find a set of valuable advices about presence and behavior on Twitter at problogger.

Monday, August 18, 2008

Diacritics starvation

A big part of our development on Teamness is centered around internationalization. This includes many factors and one of the most important is translation. At the moment, we only support Romanian besides English, so each word that appears on the pages or in the emails sent from Teamness must be translated in Romanian.

A particular aspect of Romanian alphabet, which is also common for a lot of languages around the world, is that there are some special letters, aside from the ones present in the ASCII encoding. These letters are: ă, î, â, ş and ţ.

Sadly, I noticed that a lot of Romanian websites lack the diacritics. In my opinion, not using the special Romanian letters in writing is acceptable for some personal blog posts, comments on other blogs or posts on forums, due to higher speed of typing. But it's completely unacceptable for online businesses. Besides the fact that it's harder to read and follow the text, sometimes the meaning is changed, like in this examples: peste (over, beyond) vs peşte(fish) or vina (guilt) vs vîna (to hunt).

I think most of the Romanian speakers use an English input language on their keyboards. This makes it easier to type Romanian words that contain the special letters mentioned above using their counterparts in English: s for ş, a for ă, i for î or â and t for ţ. I also find it easier to write the text without diacritics in the first place, but if that text needs to appear on a presentation page or in a document or sometimes even in a comment, I make sure I put the special characters in place.

Recently I found out about diacritice.com, via dinfotoliu.ro, which makes this task even easier. You give it a Romanian text without special letters and it gives the text back featuring diacritics.

I won't list here any Romanian website that doesn't write properly in Romanian (cause in the end this is what it is), but I have to mention ComunicateMedia's website. We recently sent them a press release about the Teamness website in Romanian. The press release was written with diacritics, but they were stripped off. It's one thing not to be willing to use them, but at least don't modify the text submitted by your users.


Friday, August 15, 2008

Passwords and security

I use different passwords for different websites. It's a good security measure.

Today I tried to login by mistake on a website on which I don't have an account, using some of my credentials. After the login failure, I realized that now they have my user and password combination for one of my accounts. I logged into that specific account and changed the password immediately. If I would've been using the same credentials on all my accounts, this would've been a hassle.

You may find some nice hints on the web for picking strong yet easy to remember passwords and at the same time different for different websites, like this one or this one. I also made an easy algorithm for my passwords:
  1. Pick 2 words, not too short, not too long, easy to type and preferably in different languages. Let's say: hacker and frumos, which means beautiful in Romanian.
  2. Count the characters present in the name of the website you're trying to login. In yahoo's case it's 5, for blogger is 7.
  3. Count the characters in your name. 14 in my case.
  4. Form the password by joining all the above. The password for yahoo is hacker5frumos14.
The login incident reminded me of one of our users recent inquiry on the support address, asking if we store the accounts passwords in Teamness. The answer is, of course: No way!

This is a high security risk. I get annoyed each time a web service that I had registered to, emails my password in clear text.

In Teamness we store hash values. A hash value is a sequence of characters obtained from any kind of data, in this case, from the password.

The knack is that transforming the password into the hash value is a one way operation. This means that no one can obtain your password from the hash value. When you login, the application computes a hash value from the password you provided in the login page and compare it with the one stored.

Because we don't have your password, when someone forgets hers or his, Teamness doesn't send the credentials on email, but a link to a page where the user can reset it.

Thursday, August 14, 2008

The survey for people who make websites


There is much hype on the web for the second annual survey by A List Apart for "designers, developers, information architects, project managers, writers, editors, marketers, and everyone else who makes websites".

I like surveys, so I took it and now I feel better. Try it yourself. There are 44 questions on 18 pages. Sounds like a lot, but it only took 15 minutes to complete.

A nice thing I noticed is that it was far less US centric than I was expecting, and more employment centric.

Anyway, I wonder how will they give me the prize, since they didn't ask for contact details.

Wednesday, August 13, 2008

Teamness reviewed on KillerStartups.com

Teamness was featured on KillerStartups.com.



The review is nice, but it seems it's not very clear for our users that Teamness is not going to be free forever.

The current plan is offered for free, but it will not remain like this, except for the ones who subscribe until we introduce paid subscriptions.

We're not adding payments right now, because we first want to build a solid product that many will find satisfying, so we need to focus on gathering feedback and developing.

Tuesday, August 12, 2008

Teamness and CMS costs

Paul Boag writes about The 5 hidden costs of running a CMS. I found the article interesting and I think it's challenging to see how these costs relate to Teamness.


Cost of training
No matter how well designed the application or how good the documentation, some level of training is normally required.
I agree that a certain level of training is required for any product. However, self training is more preferred than the costly training provided by a consultant. Self training is easier in the case of project collaboration if the product uses a natural work flow close to how people interact in a project.


Cost of quality
Enterprise level content management systems have complex workflow tools that prevent new content from going live until it has been checked and double checked.
Teamness is not designed to be used at an enterprise level. It's meant to accommodate small teams, in which the workflow doesn't have to be "standardized", but comes as a natural way of interacting.

On one of my previous jobs, I used to work in a small team of 3 persons and our project manager implemented a transaction solution for the workflow using Aegis. The workflow was based on changes, each change going through 3 stages: development, review and integration. For each transition, a designated person from the team had to check the conditions for going into the next phase, which included code formatting, code style, compilation warnings and errors, unit tests, regression tests, integration tests and so on.

The whole procedure was dropped eventually, because instead of working on the project, we morphed into problem hunters. The tools were good, the flow was good, but the context in which they were used and applied was wrong. Quality control should be inherent in a small team.


Cost of redundancy and complexity
Unless you have a bespoke content management system, developed to your exact requirements it will probably contain functionality you do not need. That is because off the shelf solutions are designed to appeal to a wide audience.
Teamness offers simple and generic type of items which my be used for a broad range of situations. A good example for this are the whiteboards.

We use whiteboards for various functions, like editing emails, but another usage we found for a whiteboards is to record a summary of the changes we make in the source code. When a new build is deployed, we easily see the changes made from the last build in that whiteboard. Simple and easy to digest, without the complexity of adding custom plug-ins for such a task, which would probably be used only by a small group of users.

Complex systems like Team Foundation Server manage this task automatically, but a consultant or a TFS/Sharepoint expert is probably needed to set up the system to map the changes made in a changeset to a list probably defined in Sharepoint. Not suited for a small team. We're happy with our solution and we find it quite flexible.


Cost of commitment

Content management systems demand a high level of commitment on many fronts. These include:

  • The upfront financial investment in implementing the system
  • The cost and time involved in training staff
  • The substantial amount of data entered into the system
The user isn't trapped in Teamness. The data may be exported at any time in an XML file, which may be used in any way the user wants. The user owns the data. Given that the cost of training is detached from the cost of commitment, I might add that there is no commitment cost when using Teamness.

Aside from this attempt of finding the abovementioned costs in Teamness, I would add that one of the biggest advantage of Teamness is the fact that you don't have to host it, maintain it and upgrade it. For a small company this is huge.