Why is contact management implemented so poorly in every software package I've ever encountered? It's almost as bad as the all-time worst application, voicemail. Outlook, Gmail, KDE Kontact, MS Entourage, Mozilla Thunderbird; they've all been carefully pessimised to incorporate every possible pain in the arse. For a start, file formats and vendor lock-in. There is a perfectly good, easy to parse, free standard accepted the world over: the vCard.
But still, so often, it doesn't bloody work. Most Microsoft products will only import them one at a time from individual files, which is useless if you have any number of contacts. I recently finished digitising and re-checking a huge pile of business cards accumulated from my journo days, and I finished up with 348 contacts classified as "business". Now, Kontact will happily export them as a vCard file of version 2.1 or 3.0; but Nokia devices will only read the first contact.
And the killer detail? They store the contacts files as a multi-contact vCard! But this is an implementation detail. I have never seen any contacts app that doesn't have a horribly ugly user interface, that doesn't organise your contacts in hierarchical directories - because people are always part of zero or one groups, right? - and that doesn't imagine that friends are alphabetical.
Social network sites are no solution. I hate them with a passion. They are closed-minded data sinks, whose business model is either "spam the buggers with ads" or "sell the company and all the data to someone who will spam the buggers with ads". And I have yet to see one that doesn't have most of the antifeatures I just described. And I want one copy of the data to be on my local machine, thank you.
Now, I think part of the problem is that all the applications I named are either e-mail clients or they incorporate an e-mail client. Perhaps we ought to disassociate the ideas of "contacts" and "e-mail"? Perhaps a contacts app should handle all the possible means of communicating with the contacts?
And too many of them confuse the task of searching through the contacts with displaying the details of each one. Search is good, but why is there no visual interface for contacts? Can't we display them in a way that lets you see relationships between them? This relates to the organisation issue; I don't want to select categories, I'd rather give a list of tags, or perhaps have both groups and tagging, or maybe tags and related names, and let the groups emerge.
That implies that the backend will have to be a database, rather than a flat file or a directory of vCards. SQLite would do perfectly well (Apple uses it for your messages in Mail.app). I'm aware that KDE is working on a common database backend (Akonadi) for these things, but at the moment it's a waste of space, and the related project Nepomuk has the dread word "semantic" in it (i.e. a lot of stuff which we're not really able to define in a meaningful fashion let alone implement).
The UI? I like the idea of plotting the contacts by their similarity or difference, maybe on a half sphere centred on the user, so their relationships become apparent. In KDE you could make this a .part for Kontact, so you could flip between the detail view and the graphical overview.