Google   web blog

Wednesday, November 28, 2007

Avoiding Hiring Mistakes: Dig Deep

When you start an interview you most likely have a list of questions. You write pluses and minuses or give points for every answer, but what do you do when the candidate shoots all the good answers? You just go to another point on the list?

I prefer to do it the way my mathematician did in the secondary school. “Well, that’s the right answer, how about going a bit deeper? Still correct... Do you know the law you’ve used here? You can... Can you prove the law? Oh, you can’t. No A this time. Sorry.” When you check one’s knowledge in specific area you won’t really know how deep the knowledge is unless you touch its borders. It has nothing to do with looking for holes in interviewees’ knowledge or trying to point their place. You just want to know what you’re going to pay for.

When you just go through standard questions prepared for average candidates you’re going to end with hires just a bit above the average if you’re lucky. You should rather seek for far better than average.

Whole avoiding hiring mistakes series.

Monday, November 26, 2007

Usability is Made of Small Things

How usability is made? It is made of small things. Think about scenarios your users will use. Then improve them one after another. Think in categories of:

• ambiguity of operation

• clear messages shown to user

• speed of operation

• number of clicks needed to complete a operation

• possibility to work without a mouse

That’s not a rocket science. What more, thinking about small things, you can improve the application step by step. That’s completely different scenario than with for example performance improvements, where you often need to redesign big chunks of architecture to move out from a dead end. Usability improvements can be done easy in your next development cycle. Almost all you need is enough will.

The reason of all that evangelization lays in a list of usability issues I experienced lately.

• Error messages in Facebook. That’s so easy – hide your SQL messages, they tell nothing to most of your clients, they confuse users, they look unprofessional and they give out information about structure of your database, database engine etc. Give one of those funny error messages instead. Unfortunately, Facebook crew has still this step on the roadmap. Sin: unclear messages.

• Synchronization with Windows Mobile. I wanted to copy some music to my Windows-based Samsung i600 phone from the notebook. Should be easy: Ctrl+C, Ctrl+V, issue resolved, case closed. No so fast. ActiveSync which works as a middleman here can possibly want to make some encoding here, that’s why copying is so darn slow. First time I used it I thought the progress bar shows progress of copying the whole album. Shit happens – it was a progress of copying a single song... As a bonus the application you’re copying files from freezes until the process is completed. Sin: speed of operation.

• Playing music on Windows Mobile. OK, I’ve uploaded mp3s to the phone. I’ve started Media Player and found none of new music there. Ops, forgot to use the update library option (as it couldn’t be done automatically during synchronization). I’ve updated library and all music was gone. Ah, forgot to switch back default source for library from my device to storage card (as if it couldn’t remember how it was set before updating the library). And than finally I could start to listen to my music. Thank you Mighty Microsoft for your generosity. Sins: ambiguous operations and number of clicks.

• Setting up an internet connection via mobile phone. You want to connect to the Internet from your laptop through GPRS/EDGE/UMTS/HSDPA/whatever connection of your mobile phone. You configure the connection and finally you have to type “number” which will be called every time you connect. I mean some cryptic chars like “*99#” which I virtually never remember. Sure, you do it once, until you’ll be forced to repave your machine, but even then it should be darn easy as mobile operators charge you for using the service (and flat rates still aren’t as obvious as you’d think). Sin: ambiguous operation.

• Logging into ticket reservation application. I travel a lot between Krakow and Warsaw. Almost always by train. I’m not sure how it looks like in your country but here in Poland we still need a ticket, as Poland isn’t so wealthy to sponsor free train rides (at least not for me). Anyway, I use Polish Railways on-line application to buy tickets at least once a week. I could write about its (lack of) usability for hours but for now just one simple thing. Every time I log into the application I have to confirm I agree with the terms of use. No information if something has been changed or not, just “confirm, don’t ask” approach. As you can guess the terms of use is quite a long document (16 pages actually). As I can guess no one is reading it every time (and most of users don't read even once). If you see any reason to leave that feature there, tell me please. I see none. Sins: number of clicks, lack of thinking.

• Navigation in Google Docs. A couple of days ago I was working with Google Docs, editing very simple document. As you write text you probably use the keyboard unless you can steer the computer using mind powers only. When you want to mark the whole paragraph you don’t want to switch to the mouse and than back to the keyboard. In Google Docs you have to, because Ctrl+Shift+Arrow combination doesn’t work. And that’s not a sophisticated advanced operation – just everyday bread of word processor user. Sin: no-mouse navigation.

Every of those issues could be resolved in a very simple way. Neither of them requires much development or testing. On the other hand fixing any of them would improve user experience. You just need to think for a moment and have a bit of will to change them. Nothing more. Usability is made of small things.

Friday, November 23, 2007

Doubts Mean No Hire Supplement

I’ve just started a new recruitment series and my friend Piotr (who I’ve learned a lot from, especially when talking about management) has already started complaining that I’m wrong. I think I should add a disclaimer to the last tip (doubts mean no hire): this relates to standard full-time job offers. When you think about internships you don’t have to be so strict, although if you have a comfort of choice, keep your standards high.

Thursday, November 22, 2007

Avoiding Hiring Mistakes: Doubts Mean No Hire

I think that’s one of the most important rules. When you’re in doubt if the candidate suits you fine it does mean no hire. I believe there are people out there who are valuable although they aren’t able to sell themselves during an interview and after all they’d appear to be great hires. Unfortunately I met none of them. On the other hand I met dozens of people who were hired despite doubts and they’ve proven the decision to be wrong.

It doesn’t really matter which area doesn’t suit you well. Maybe the guy is perfect when talking about his technical skills but red lights appear when he becomes overly curious before even the decision is made. Maybe the girl doesn’t show much will to unwind herself. Possibly the candidate is willing to learn but the starting point is, well, way too low. Or you just feel under your skin something is wrong with the applicant. When in doubt say no.

It sounds harsh but it works.

Whole avoiding hiring mistakes series.

Avoiding Hiring Mistakes Series

You can already find here recruitment tips series and a description of hiring mistakes types. I guess it is good time to share some advices how hiring mistakes can be avoided. I’ll post a new tip every week and they all will be listed here.

Doubts mean no hire
Dig deep
Flow with interview
Trust your intuition
Internships stupid!
Avoid time pressure
Prepare to the interview
Read between lines
Be ready to break schemas
Listen to questions
Plan recruitment ahead

Tuesday, November 20, 2007

Improve Flow of Information

When you work in a big organization or for a big organization you are familiar with that. All the politics, office games, minor and major squeezes etc. When a client wants to increase a vendor’s stress level. When a boss wants to encourage his team to work after hours. When two different teams try to delegate thankless task to each other. It’s always a game of half-truths and basically-no-lies.

How to do deal with that? Shorten information chain in your organization or part of organization. Encourage openness. The more you know the better are chances you’ll detect those games, which actually makes them useless. When you improve flow of information you can easily cross-check most of news you gather and categorize them among “let us blame you, please, please,” “typical minor squeeze” and “Houston, we have a problem” levels. As far as everyone passes information to all interested people organization can act better both when it’s time to call it a bluff and when serious problem in on the horizon.

It’s just so easy. And if you asked me, I strongly prefer to tell just a truth instead of playing office games. Unfortunately usually it’s not me who sets the rules and I have to dance like others play. When I think about it I know just a handful of people who don’t play their games in business and (what a coincidence) our cooperation was always good, no matter what issues we had to resolve.

Think of it next time you’ll be about to try all those old tricks.

Sunday, November 18, 2007

The Way You Say Goodbye

We were discussing a vague point about our remuneration in the contract. It could be interpreted two, significantly different, ways. One was agreed among interested parties (including us), but reading the point literally we could request better terms although it would most likely end the cooperation.

The outcome of the discussion was:

It’s important how you say hello, but it’s even more important how you say goodbye.

When you end cooperation with someone, even when emotions play the role, it should be done even more professionally than you had started. Everything should be crystal clear. Even when the other side will reject to keep it strictly professional and you know it (sometimes you can be sure). After all, reputation of your company (and yourself) can be monetized better. Always.

New Features in Wrike

Some time ago I received a message from Daria from Wrike. They’ve fixed one on major issues I’ve pointed in my Wrike review. When you use email integration long threads won’t multiply tasks any more. It is called intelligent reply function. When another email is created in the thread (using reply all function which keeps wrike@wrike.com address on the recipient list) a description of the task will be updated instead of duplicating the task.

Unfortunately another issue appeared. After a couple of answers with standard company footers and multi-line signatures description is cluttered and you don’t clearly see where the useful information is. There should be either text formatting kept form original email or some kind of intelligent and configurable mechanism which allows cutting off needless trash from emails automatically. Or better, both of them.

It's quite typical example of situation when you can’t say that adding a feature invited a bug, but users using the new feature have to face some new problems. When you design new functions, you should always think how users will interact with the application. Think about the whole process user executes, not only about the part which is directly influenced by the new feature.

Thursday, November 15, 2007

All Flavors of Project Management

When talking about project management almost always you have to consider two sides: customer and vendor. On each of the sides you can find a lot of techniques which not necessarily lead to successful and quick end of the project.

Customer side

• Ass-protection project management. Main goal of project manager is not to finish the project on time, on budget and within agreed scope but to cover own ass. Nothing against procedures. Forget about common sense. As far as no one can prove you did something differently than it was stated in procedures you can’t be blamed for anything, right? You just wanted to do it correctly. As a side effect a lot of blame game can be detected in that scenario.

• Never pay project management. Force the vendor to agree to deadlines impossible to meet. Then move the project into production before it’s stable enough. Then start complaining about all issues which can be found. When they’re fixed find another. When they ask about money tell them you’ll pay when all the issues are cleared. Avoid making hard commitments. As a side effect you hear a lot of “We haven’t bought a piece of software but system which should cover our business needs” or similar statements.

• Clueless project management. Start a project first and then think what the scope is if there’s any. Throw in all new features you can think of and force vendor to propose some implementation or something. Change scope. Much and often. Don’t go into details when you talk about solution but go into the smallest and the least important details when you talk about business issues. As a side effect you’ll see dramatic time and budget overrun.

• Overactive project management. Call them. Mail them. Get them on meetings. As often as possible. Expect they’re all fully and exclusively dedicated just for you. Make them cry whenever they see your number on their mobiles. Become their worst nightmare. Expect the same intensity of communication from the other side. As a side effect PM will have a brand new set of haters. Paradoxically sometimes it leads to successful project management.

• I know it better project management. You pay and you expect. You actually expect everything will be done exactly the way you want. No matter if the idea is good or not. Don’t even listed arguments of adversaries. You just know everything better. As a side effect ego of PM will be boosted and you’ll hear a lot of golden thoughts in type of “It is so because it is so.

• Marketing project management. Leave the role of the project leader to marketer. Possibly the one who always has those crazy ideas. Let him decide what, how and when things are done. Vague requirements with no feasibility study whatsoever. You’ll end up with a bunch of impressive products. Unfortunately they’ll be solving wrong problems. As a side effect developers will scream whenever they’re forced to do another great thing before even being halfway done with the previous one.

Vendor Side

• No one cares project management. Or no project management at all. What for? All that project management is overrated anyway. Suppose everyone know what to do and will do it correctly. As a side effect you end up with project which solves wrong problems but exploits all cool new technologies or without a project at all or with some unusable monster. Who knows?

• Wishful thinking project management. Close your eyes. Relax. Suppose there’s no issue. No time overruns. No bugs. Now, go tell it to the customer. Hey, that’s something they want to hear. Don’t tell them about anything bad as long as you can. It will be time for that... later. As a side effect you’ll have an occasion to deal with really pissed off customer at the end. What a great lesson, don’t you think?

• I know it better project management. It happens on both sides of the barricade although reasons are usually different. In that scenario you’re the boss and you expect. No matter what is reasonable. Don’t let them even think you can be wrong. Effects as above.

• Methodology zealot project management. You know the best project management methodology in the world (whichever it is). That’s the best choice because... just because. You switch off common sense and thinking and you apply your religion... I mean methodology exactly as it was described in the books. Absolutely no exceptions. Often seen, but definitely not limited to situations, when new sexy agile techniques are applied. As a side effect you’ll learn when the new sexy methodology can be applied with good result and when it is useless.

• Almost done project management. Your only stress is to reach the point when you get the money. Then you lose interest in doing anything for the customer. You just move to another project until you get the money and so on. As a side effect you’ll hear a lot of excuses in type of “Hey, customer makes a lot of money on the system, so they shouldn’t complain when it crashes from time to time.

I’m sure you can find more. Feel free to add.

Monday, November 12, 2007

The Power of Shortcut

Shortcuts are typical user’s best friend. Imagine you use word processor and there is no Ctrl+C and Ctrl+V. Imagine there’s no Alt+Tab combination. What a painful situation it would be. For example copying highlighted paragraph between documents. Instead of: Ctrl+C, Alt-Tab, Ctrl+V you would do: [mouse move to] edit menu, [click], [mouse move to] copy, [click], [mouse move to] taskbar, [click], [mouse move to] edit menu, [click], [yawn], [mouse move to] paste, [click], [time for a nap] and voila.

OK, I guess I don’t have to convince anyone keyboard is faster than mouse and using shortcuts is essential when you want to be quick with keyboard. But when you think about shortcuts in your application you should look deeper. A new invoice icon in sales module of ERP system. A wizard simplifying creation of a new project in IDE. All those mash-ups which are sets of shortcuts of different type. Yes, these are shortcuts too.

The deeper you think the smarter options you can find. One of our local taxi corporations in Krakow (Barbakan for those who live around) greet calling clients with IVR application with TTS-ed prompt. I hear (translated to English):

Hello, this is Barbakan Taxi. If you want to order a cab to 16 Kuznicy Street, waiting time 8 minutes, press one. If you want to order a cab to Central Railway Station, waiting time 4 minutes, press two. If you want to order a cab to 44 Jasnogorska Street, waiting time 12 minutes, press three...

Best possible shots for me indeed. Kuznicy Street is my home. I travel often by train so Railway Station would be another obvious choice for me, and Jasnogorska Street is my workplace. My wife asked me if I have created those list. No, not me. These are my most popular orders sorted by frequency. Shortcuts for the most frequently chosen options. What a nice present.

Of course, I have no illusions about reason why the system was implemented. Neither for my pleasure nor for my convenience, but to save dispatchers time. Anyway I don’t really care. As far as I can use those shortcuts to make the operation quicker and more convenient I like it.

There’s one important factor why I think this shortcut is valuable. It improves path I use very often. Above locations cover more than 90% of all my orders. If I had on the list several random locations or top 10 combined from preferences of a group of users it would be useless.

It is very likely that you have to think about your users individually when thinking about their shortcuts. That’s not so easy as paths beaten on the lawn by majority of walkers.

By the way, when talking about user experience, Barbakan's website is, well, tragic. You don't really have to understand Polish (yes, no English version) to see how dramatic it is. Definitely the worst website I've seen for months. Anyway, I wouldn't check it if I wasn't writing about new great feature those guys implemented in situations which are actually used by their clients (unlike checking the website).

Thursday, November 08, 2007

Positive Feedback versus Negative Feedback

Positive Feedback

When you praise someone (and you do have reason) do it publicly. As often as possible.

Negative Feedback

When you disapprove of someone’s actions do it privately. As often as possible.

As far as you expect some positive impact of course.

Monday, November 05, 2007

Blame Game

Something is screwed up. Once again. What happens next? Usually the witch hunting also known as the blame game. If there is a problem there has to be the source of the issue – something, no, someone who will be blamed.

There are many flavors of that ancient business game. During board of directors meeting when they look for someone else to be the victim that day. In everyday situations between support engineer or tester and developer when they prove each other who has invited the bug. In boss to subordinate relation when another time the same crappy thing happens which should not be here any more.

And that’s all completely wrong.

OK, sometimes it isn’t your choice. You dance as others play. However usually you have the power to stop that. Blame game doesn’t have winners. It doesn’t support people in changing attitude except of growing their frustration and hate.

Yes, from time to time you’ll find it very hard leave the blame game, especially when you’re the boss, but no matter how hard it is, it doesn’t worth you nerves. Ever.

Friday, November 02, 2007

TenForce Review

When someone asks me about project management software I automatically start to think about different scenarios I’d like to have covered by that kind of application. They aren’t limited to project manager’s tasks. When you want to see the whole project team working effectively they have to use the same system and in the team you have not only project managers but also developers, quality engineers, support engineers, designers, analysts etc. Even when team is small and used scenarios are fairly simple there’s quite a bunch of them.

Most of vendors of new cool web-based project management software tend to forget about that fact, trying to cover only project manager’s routine tasks. That makes their software, well, much less interesting, as that way your team would end up working on multiple systems to have all their tasks supported. TenForce, which is yet another project management software, has chosen other way. They call it pragmatic and I have to admit there’s some truth in that.

General

TenForce is, what a surprise, web-based tool covering all the basics of software project management. Scheduling, calendaring, task management, risk management and bug tracking – these all are on the board. Actually, TenForce passes my test: I can have all processes used in 15-person team working on software projects supported with the system. Sure, another thing is asking not only “if” but also “how” these things are supported. As you can guess some of them better, some of them worse, yet still many of others applications doesn’t even get to this point.

Issues

I’ll be so very boring here. Small usability and functionality flaws which, when combined, frustrate you and lower your opinion about the software.

• Usability. The all-time number one in web-based software. Extensive usage of TenForce is a pain in the ass: forget about using keyboard, it doesn’t work in many drop-downs (e.g. choosing a person), Tab key brings you somewhere to the end of the screen instead of to next control etc. When you edit something on the list (edit-in-place model) you expect Excel-like editing scenario, but here leaving the cell doesn’t really confirm changes, you additionally have to click on the OK button. Entering the edit-in-place mode has some latency which ends up having impatient user clicking multiple times on the list and opening multiple records as the effect. There are more of those small issues, which you can live with, but after all using the software shouldn’t be tiring or frustrating.

• Small functionality flaws. Another category where neither one of single issues is really significant, but at the end of the day you feel there is a big problem there. Adding attendees to a meeting is unintuitive. You can quickly add a meeting from a sidebar, but later you go to a list of meetings, edit the meeting, switch to attendees list and then, 10 clicks later, you can finally add another person. My calendar is stateless and it is always set on the current month. When I want to do some mess with next month’s meetings the calendar just sucks forcing me to switch the context every time. There’s no impact/probability values on the list of risks which makes risk assessment really frustrating. Alerts lack “Acknowledge all” button and sometimes you find there trash like “Creation Alert on ''.” Another time this list of issues could be much longer, but I guess you already see the problem.

• System under development. OK, every web-based system is almost always under heavy development, but users shouldn’t see that. When it affects basic tasks like possibility to submit a bug or invites new “I’m drunken but I can still design lists” look it will be considered as a problem with application. And it is.


• Weak security model. For every scenario which isn’t hermetically closed within the team you need a decent security model. E.g. when you want to give your customer an interface to submit bugs, you don’t automatically want to allow them to see your administration panel or to see project risks. Security model implemented in TenForce is way too simple.

• Oversimplified risk management. Risks aren’t assessed by a single person and if you flatten the process to setting two values (impact and probability) by the PM you can do it in Excel sheet or on a piece of paper and you don’t really need project management software. On the other hand when you want to do risk management right way engaging the whole team you could use some help from TenForce if there was any.

Cool Things

• Range of scenarios. Scheduling? Positive. Simple task management? Positive. Bug tracking? Positive. Risk management. Almost positive. I don’t need much more. I don’t need very complex options here. I just need those things to work smoothly and to be integrated into one inbox per user. When things mentioned above (risk management and security model affecting every scenario where you have to consider limited trust) will be improved TenForce will be a good choice for teams which need end-to-end project management support.

• History. Every object in TenForce has history of changes. History is one of those features which are often omitted, but so very often are essentials in that kind of software. It happens everyday. You want to check what happened with that bug or have all details of “conversation” with the customer available in seconds. Having history as a generic attribute for every logical object in the system is a great idea.

• Sidebar. I ranted about usability, but sidebar is a big plus in that area. It allows you to add quickly different objects to the project (task, meeting etc). That’s a nice shortcut which is always at hand.


• Collaboration. Definitely better than in MS Project, which isn’t a great achievement especially for web application, but still it’s worth mentioning as Redmond product is still considered as market standard.

My opinion

Path chosen by TenForce is a good one. Wisely selected set of functionalities without going deep into every single of them is a good point to start. Many teams (especially smaller ones) don’t need more than just basic features but on the other hand they don’t want multiple systems either. To summarize issues I was pointing: I could live without improvements in risk management features but security things are essentials. Fortunately Bart Stevens from TenForce told me they’re already working on that. I think some improvements in MS Project integration would be also nice, as for now it’s not very intuitive.

Before TenForce suits bigger teams well there’s more work to do. Especially all those small issues have to be cleaned, because other way users just get frustrated with the application and I guess that’s not user experience which is expected. More advanced functions are definitely on the roadmap as I haven’t seen vendor who is unwilling to add multiple not-so-necessary features to their software.

Anyway, if you have rather small team and you don’t need very sophisticated scenarios, the chances are good TenForce will be soon a good choice for you. As people from TenForce have pragmatic approach you can also expect they will be solving right problems in future.