Google   web blog

Tuesday, April 29, 2008

We Know Better

How many times you were in a situation when salespeople told you how to develop software? Or how much time you need to complete an application. Or how easy it is to implement an integration interface.

OK, I have another question. How many times you told salesmen how to sell your software? Or how much they should charge for your professional services. Or how they should talk with the customer.

One of wisest things one of ex-CEOs said was “developers always know better how to sell and salespeople always know better how to develop.” Since then I try to catch myself each time when I tell our friends from sales team how they should do their work. Although I’m not completely successful at that I think my awareness has grown much. As the side effect I’m also more aware when others tell me how we should produce our software.

Anyways, my observations aren’t very optimistic. I can say we generally think we know better how others should work. And we rarely stop to think why the heck we’re spending all our days writing some code in Java instead of selling software if we’re so darn good at that. Or the other way around.

Thursday, April 24, 2008

Consistency Is the King

Whichever technique, habit or task you’re trying to invite, be consistent. No matter how poor you are on the beginning consistency will most likely make it work.

It can be new system managing tasks from other departments. Just force yourself to use it always, for every single task you receive. It can be a simple training you try to exercise to learn new things. Just start every day doing that. It can be code review you’re trying to implement in your team. Just have the code reviewed every time you submit it to the repository.

Even when a starting point is far, far away from whatever you’re trying to achieve consistency will give you a chance to succeed. With each day the task will be a bit easier. Just be consistent.

By the way if I consider this blog as a success the only reason is I am consistent with my writing.

Monday, April 21, 2008

Ugly UI

We use to say user interfaces we create are ugly. And in many cases we don’t care.

When I’m a user I complain every time when I work with unintuitive application.

Where’s my consistency then?

A little difference is within target group of users. When a target group for an application are typical Internet-eaters, like you or me, you need to give more. It’s not enough to have every single feature user can think of. You need to have it intuitive and nice. Other way people will go away choosing either ease of use or beautiful façade of competitors. By the way I’m still struggling with Office 2007 – it is way nicer than its predecessor but for biased user of a series of older version new interface isn’t very intuitive. That’s definitely not a sure shot when talking about GUI.

Fortunately you can have another group of end-users. System administrators are great example. They need to be able to do as much things as they can with their UI. Flexibility is a number one here. Intuitiveness is important too but usually users are far too experienced to allow your application to defeat them. But nice GUI design? Who cares? As far as it allows you to do what you want you don’t give a damn how it looks like.

On the side note I’m not a complete hypocrite. In our internal timesheets application I don’t care about GUI design as far as I have reports I need and my team doesn’t cry whenever they need to fill in monthly data. And that interface is ugly indeed.

Coming back to GUI we develop, most of them are either for administrators or for maintenance teams. Then we don’t have to focus much on UI graphical design. No one would really pay for it. Ugly can be good enough.

Wednesday, April 16, 2008

Do People Need Procedures?

I had a discussion with Simon a couple of days go about procedures in a company. Do people need them? When they need more RAM in their machine or they’d appreciate a new chair would they prefer having written instruction telling them what to do or they’d choose just to say about the problem to someone, possibly their supervisor.

In my opinion people don’t need procedures. Companies do.

When organization grows it’s harder to keep everything in order as more people mean more issues and more chaos. Over time it appears no one can handle this and procedures come to save the world. I mean company. And that’s perfectly OK.

But an average employee needs just to have his issues resolved. Nothing more. I think most people don’t give a damn about procedures unless they’re forced to do that.

And what do you think?

Monday, April 14, 2008

Great Companies

Do you like your team?

Can you ask your colleagues freely whenever you feel like it?

Would you feel supported if you wanted to change your profile within the organization?

Do you feel comfortable when you go talk about work issues with your superiors?

Do they listen to you?

Does your boss say simple “sorry” when he screws something up?

Did recruiters were completely honest during your interview?

Is there “one for all, all for one” kind of environment?

Have the most annoying thing changed over the past year?

Would you recommend the company to your friends?

If the answer is 10 times “yes” you probably work in a great company.

Sunday, April 13, 2008

Calm Down

You get an unfair email from the customer addressed to you. You publicly hear an opinion about you which you definitely don’t agree with. You face negative feedback which has to do much more with the “negative” part than with the “feedback” one. You are accused of something you don’t feel responsible for. I guess everyone was in those kind of situations. And it hasn’t happened only once.

Then you want to express your whole indignation. You want to answer immediately.

Don’t.

Calm down. Don’t let emotions to play first fiddle. If you can talk face to face about the situation wait until you can discuss merits, not emotions. If you can’t talk don’t rush to reply the email instantly. Wait. And don’t do the whole thing publicly.

Other way you won’t get what the other persons wanted to tell you. You won’t move closer to a problem solution but rather keep it where no consensus can be achieved and no one can learn anything.

Calm down, unless you keep your emotions boiling on purpose, which should be very rare situation by the way.

Wednesday, April 09, 2008

Recruitment in Small Companies

I’m just after 7 hours of interviews in a row. Exhausting. Don’t try that at home. I know I should use smaller chunks. It would be better both for me and for candidates. Anyway I made it on purpose and I don’t regret although my brain is dead today.

I had some time to think about the way we interview and how it is connected with small size of our company. When you’re small you recruit much different than when you’re big. You don’t have evil HR team organizing the whole thing. Sometimes you struggle with not enough resumes. You can’t afford to make 6 interviews before hiring a person. It’s different.

How to deal with that?

1. Many to one interview model.
I usually take a colleague with me to have numerical advantage over a candidate. OK that’s really to have better coverage of merits on our side. And we sometimes ask similar questions so it limits redundant answers. After all we still can cross check our opinions. It also limits our needs when talking about meeting room reservations, which can be quite a pain in the ass.

2. One interview is enough.
We don’t have enough time to make numerous interviews so we stick with one meeting although we’re not religious when talking about interview time. We don’t pack it into an hour. Standard plan is hour and a half although, depending on the candidate, we can go longer. One interview is enough, one hour is not.

3. Do look where others don’t.
People suck at writing resumes. Yes, they should learn that but you can’t force them. But you can find real gems among poorly written resumes. That’s a hard work and most of poor papers are followed by poor candidates but that can be your chance.

4. Don’t waste the time.
As you don’t have your HR army recruitment takes your time. Time you could have spent on other tasks. Don’t waste it then. When you see there aren’t even a chance, end quick and go do something more useful. I can’t force myself to just end interview at the very moment I realize I waste the time. Instead I just ask a couple of finishing questions, which takes just a few minutes more. If you went out from my interview after a quarter, I’m sorry but your chances aren’t good.

5. Make it tough.
Make it nice, but tough. You have way less chances to evaluate a candidate, so make the test difficult. Other way you’ll be guessing, not deciding. And you don’t want to guess whether the candidate is worthy, do you?

6. Be honest.
You’ll probably get some questions from a candidate you’d rather not answer. Sure you have the choice. You can say the truth, color a bit the reality or just lie. Choose the answer number one. Be honest. You can lose a person who will go to another company but you won’t lose your credibility. And if you lied about important things he’d leave soon anyway. Personally I wouldn’t like to work for a liar.

7. Exploit your strengths.
Remember you’re small and you’re proud of that. If you don’t believe in that repeat it to yourself until you believe. Small companies are cool. You can always find a solution for any issue as far as you want it. You don’t have strict corporate rules. For some people it is a great plus. And for you having people who like your organization is even bigger plus. You won’t be big, but nothing should stop you to be cool and fair. You’ll find people who appreciate that.

Having said that, if you like to work in a small and cool company, remember we’re recruiting like crazy now. Feel free to ruin my day being one of those people who steal another couple of hours from my schedule and kill my brain during days like today. Hopefully your approach and knowledge will stun me and the day will be rescued. I will be more than happy. You can be sure.

Tuesday, April 08, 2008

Don’t Be an Orthodox

Lately I had a chance to observe a discussion about using agile methods. The problem which started the discussion was how to apply agile when we work in a fixed budged scenario. It wasn’t much later when I heard arguments like:

You can’t estimate effort needed to complete something which is done during nth iteration. It’s a fiction. Does client want a fiction? I don’t think so. You can explain it.

Then another great idea followed:

When the client changes requirements after they were approved we change the price. You shouldn’t be tricked. If you are it’s better to find other clients.

Nice. So simple. Your methodology tells you to work exactly that way so you do it. And when your client doesn’t accept that, sorry, you just leave. They aren’t worth to waste your time.

Oh, on the side note I think it’s time to declare which side I’m with. Neither against nor for agile. I just try to find the most reasonable way out in every situation.

Coming back to the discussion. Yes, the clients quite often want “the fiction.” They want to spend specified amount of money for specified amount of features. A surprise? It shouldn’t be. At least as far as you deal with people who doesn’t spend their own money.

And if your answer to scope creep is to leave the customer I wouldn’t invest my money in your company. Yes it can work that way and it can even bring money, but telling the customer they’re wrong isn’t the best strategy I’ve ever seen. Neither is rejecting to adjust your approach to the environment you work in.

Don’t be an orthodox. When something doesn’t suit your vision of software development and project management it doesn’t automatically mean it’s wrong. If you believe in your methodology go, convince the customer to use it. But don’t cry when they say they want it other way. They pay, they decide.

We are usually closed in our small niches. We usually don’t see all sorts of choices around. And we believe we know better. Until we see we don’t. For me the eye opener was moving to another company with different team, different processes, different products, different clients, different everything. And now I can’t say that one or another approach is better. They’re just different.

Thursday, April 03, 2008

Great Teams

How to measure if the team is great?

Two perspectives.

Team member: When emergency comes will you join and add some more from yourself? Will you meet your colleagues there? The more people on board during tough times the better is the team.

Manager: How many people left lately? How many of them were key players of the team? The lower rotation ratio the better is the team.

Best teams I’ve seen were on the better end of scale in both points. I’m lucky enough to be currently a part of one of them.

And when we talk about my team in Wind Mobile, we have some positions for great people willing to join small, flexible company where people are important. If you have an open mind, like to learn and will to develop yourself as developer, support engineer or project manager in Krakow check our website or contact me directly at pawel.brodzinski@windmobile.pl. We have internship program too. Let me know you found the information here.

Wednesday, April 02, 2008

Make PM Work a Bit Easier

Everyday work of project manager is, well, interesting. You talk with clients. You manage your team and organize their work. You work on schedules. You prepare reports. You deal with different issues. You supervise everything. You prepare a thousand of different things. You create hundreds of documents. Phone calls, emails, instant messengers and meetings. Quite diverse job. And quite complex.

It requires specific type of people, that’s for sure. But you can do more. You can simplify a bit project manager’s work. How? Actually that’s the question for you.

Range of tasks done by PMs differs. There are companies where PM is one man army and is responsible for almost everything, sometimes even getting a deal. Unfortunately the more tasks are assigned to a project manager the less time he has to spend on the most important thing – managing a project.

If you can safely take off his head anything with no significant impact on business do it. Maybe budgeting can be done by someone else? Possibly presales team can take a bit more of work with preparing offers. Definitely someone should isolate PM from office wars and let him do his job. Nice idea is not to force project manager to think if he has enough office space for the team.

Sometimes when I talk with fellow PMs I’m surprised how many strange things they have to do. Typically these are things which PM will rather easily deal with although I can hardly say it’s typical PM job. Unfortunately it takes the time. First it takes time to do those things and second it takes time to switch threads. OK, PM will often switch threads anyway and unlike developer it’s rather normal situation but still, the less switching the better.

The recipe for each organization can be different. If no one else can prepare a budget for a project or there’s no sales force to work on new deals you can’t just cut out those tasks. But I guess there are things you could easily switch to more appropriate people. Just think about it.