A collection of thoughts related to the challenges of software engineering

stay connected

Archive for the ‘business’ Category

March 28th, 2011
Silence

Few are agreeable in conversation, because each thinks more of what he intends to say than of what others are saying and listens no more when he himself has a chance to speak.
-François de la Rochefoucauld

You’ve certainly experienced reunions where you told yourself "This person isn’t saying anything interesting and this meeting is going nowhere.".

In my case it's not really a problem since I'm the boss and I can punch people in the face and get away with it (you probably can't). By the way being allowed to kill people is one of the top reasons why you should start your own startup, provided you keep the death toll within the limits allowed by the law.

But I disgress. What can you do to help the meeting go somewhere?

As strange as it may sound talking less is part of the answer. This is because silence alleviates stress and forces oneself to actually listen. When you listen, you communicate better. Better communication means better meetings.

An experiment

At Bureau 14 we're pretty awesome scientists. And I'm not talking about all the computer science we do all day (C++ is more black magic than science actually), but more like the one that confirmed that interns can't survive without oxygen.

The one you can do is the following: the next meeting you attend, do not talk at all.

It’s highly likely you will notice the following things:

  1. Every attendant is saying the same thing over and over with a varying degree of eloquence;
  2. The amount and the distribution of information is unchanged by the meeting (unmodified entropy);
  3. What you could have said wasn't that useful, intelligent or unique (ouch!).

Problem ? Solution ?

You might tell me: "I'm going to enforce some rule during meetings to fix that":

Unless one has a genuine question, needs information or has something valuable and related to share there is absolutely no reason to speak.

That sounds like a pretty obvious rule on which everybody could easily agree. But that would not change a thing.

Let's be realistic for a minute.

We all think that what we say is pretty clever. Actually what happens is that our overinflated ego makes us believe it's ok to reharse what the person next to us just said because, really, it's important to participate and it's less boring to spend one hour talking than listening and by the way it's probably a good opportunity to disgress and talk about the latest Family Guy episod.

Newsflash: we're not that intelligent and what we have to say doesn't matter that much. Actually most of the time it's completely out of topic.

In other words, we may have the feeling to genuinely contribute when we aren't.

Stop creating rules

Stop believing that every problem must be taken in your own (capable?) hands and needs to be addressed. Stop "managing issues". This is something much more complex and inherent to human nature than just a "problem". It needs education.

The education process is a simple matter of forcing yourself to speak as little as possible, as if you were underwater and you had to keep your precious oxygen for mundane things such as staying alive. Everytime you want to speak, double check that it is relevant and new. Once you've double checked, check again, and again. Listen more, observe.

After a while, you will talk less, be more relaxed and listen more. You'll be a better participant and people will look after your presence. This is the moment when you will realize that contributing to the success of your company is more a matter of listening than a matter of talking.

September 27th, 2010

I thought I took enough care of myself to further postpone this day...

I have a balanced diet. I exercise at least four hours per week. I don’t smoke. I certainly do not fry my brain with illicit substances. I sleep regularly, well and enough. Well except when I have to wake up at three in the morning to catch a plane back to Paris and lose my bag in the taxi. Ah! The stress! That reminds me I’ll have to buy myself a G550 when Bureau 14 rules the world.

For the record, Zeus tried to strike me with lightning several times out of jealousy. I had to climb the Olympus for a private “exhibit” of my Wing Tsun. No wonder I don’t have time for programming with all these delays. For the record the game God of War 3 is based on my story.

Well, guess what? Despite all of this, I’m obviously a brain-dead old man as I reach the extremely advanced age of 33.

What the hell am I talking about? Google Instant! I mean what the Hell?! I feel like I’m using software for hyperactive kids drinking liters of a homemade mix of cocaine and caffeine.

First of all I don’t think the spider is crawling the web according to my search requests, so don’t call it real time search thank you very much. In the finance industry we call the stock streams real-time although they have at least 15 minutes of delay, but we have the right to because we’re bankers and bankers have no soul.

Second Google Instant is extremely confusing. I'm not a designer, but I’m pretty sure it’s a big design mistake to display partial – and potentially unwanted – results in the same place as normal results.

Last but not least, I don’t understand how this is supposed to “save time”. All it does is request searches for items I’m not interested in. Despite me being an old crank, I’m quite able to press the enter key when needed! It’s a waste of bandwidth and CPU time if anything. Visual feedback gives you the illusion of speed, like a progress bar reduces the impression of waiting, but that’s all it is: an illusion.

The heart of the problem is that it’s not just an illusion, it’s also a distraction. It’s not real time search it’s real time advertisement. It feels like watching American TV: there are so many commercials that after a while you forget what you were watching in the first place.

It's pretty clear to me that the purpose of this feature is not to ease my searches it’s to tease me with links. The purpose of Google instant is to increase Google’s revenues.

To that I say: fair enough. Google isn’t a philanthropic institution and as an entrepreneur I fully understand they do everything they can to maximize profits. As an user however I’m dissatisfied.

The feature of Google I like the most is accurate and fast search. As long as they keep improving it that keeps me happy. Although to make me really happy, I’d love them to stop that data-based design nonsense and hire top notch designers to make something of their websites. I'll be 100% honest however and admit that it would only be ice on the cake (That being said, there is to me a market for a web application that does a better job at presenting Google’s results than Google).

In the end, I really don’t understand Google Instant. What am I missing? I am just too old to get it? Or is Google Instant just too nerdy?

September 13th, 2010

When was the last time you laughed at work? Yesterday? Last week? Last month? You don’t even remember?

Do not make the mistake of thinking that a place where you regularly laugh is a place where nothing gets done. Quite the contrary.

Serious work requires – amongst other things – concentration, cohesion and fluent communication. Laughter is an outstanding catalyst for all these things.

If you want a spark of creativity to light a team of competent and intelligent people, mirth is what you need. The thrill and energy that fills you when you shared a good laugher is an incredible creativity booster.

Amusement is very good for bounding as well. Is there a need to demonstrate you like to work with people with whom you have fun?

Finally, humor encourages direct communication. You’ll feel more comfortable to discuss mistakes and errors without unnecessary ado when the mood is joyful.

If we were pirates on a ship we would sing merry songs to achieve this result, but geeks in an office prefer to crack up dark jokes.

When I interview people, I do my best to pin down their ability to get along with the rest of the team and to be honest with you, I test their wit.

Using humor during interviews has got the incredible side effect of detecting flexibility and (some sort of) cleverness. For example, asking a candidate if he tends to stab colleagues with whom he disagrees opens the door to a very unusual but effective test of personality. You might even add that a past of serial killer is generally a recruitment’s deterrent.

We’re looking for competent, bright and insightful people that will resist pressure and are fun to be around. Of course we’re not hiring comedians as we want – first of all – people to be able to write outstanding software.

When the team is under pressure because of an angry customer, that a flurry of bugs magically appeared in the repository (really, it can’t be me!) and everybody is working too much, being around people with whom you can blow off steam is a much better feat than free gourmet food or complimentary massages.

To be completely honest with you, there’s also the thing related to the fact that we can’t afford the free gourmet food.

When I order software online, I'm always surprised to see my confirmation email and my registration code come without an invoice.

Invoices are generally useless for individuals, but they are a necessity for companies.

They are required because your local doom kommando fiscal administration will ask for them as a proof you did indeed spend the money. And before they ask for them, your accountant will because if you want him to put his John Hancock on your anual report, you better make sure it's pretty clean of vague, non-business releated entries such as "DB9 leasing" and "Casino losses".

The invoice must have the name of the company, its registration number, an address (including the country), the name of the customer, the name of the customer's company (if any), the items list with a clear and consise description for each - don't scratch your head as long as the word "software" is in the description, the accountant will understand what it's all about - a price and finally the taxes and a grand total. Export that in a printable format (PDF is a de facto standard) and attach it to all your confirmation emails.

What I just said might sound extremely silly, but for ten software licenses I bought I received a valid invoice only three times. Generally speaking I'm more inclined to do business with companies that make my life easier.

Make sure you have all the details of your business process straight.

By the way, Hi! How are you doing? Long time no see! Here, we're going great and are working very hard on our first product!

March 16th, 2010

The BoostCon is a Boost centric conference, but it's actually much more than that. It's probably the best C++ conference in the world.

A bold statement?

Contrary to what the name of the conference might imply, it's more C++ centric than Boost centric. A lot of talks revolve around the boost libraries, but there's also content related to the language itself and the challenges we all face.

The advantage of the Boost tropism is that the topic stays on "real world issues". No endless debate about how to phrase a new feature in the C++ standard, no endless theoretical speech about a problem that only exists when you program in a zero gravity environment on a computer that might be invented in 2030 if LSD gets legalized.

I was at BoostCon 2009, not only the content was accurate, advanced and of high quality, but it was extremely relevant.

"Spot on" is actually the term that comes to my mind.

Would it be only for the keynote by Andrei Alexandrescu and the introduction to software transactional memory I would have been happy to do the trip.

You know these conferences where you have some days filled with "so-so" talks, and you go to that talk about optimizing memory usage on a system you've never heard of because all the other talks look horrid, and the guy just read his slides with a vocoder tone, and you start firing up your laptop and suddenly the conference room becomes a very expensive WiFi spot.

Well BoostCon is nothing like it.

What's more bound to happen is that you're going to regret you still don't master mitosis, because you'd really like to learn more about smart pointers and Spirit, and both talks happen at the same time, and they are both given by really great people.

You'll fly back with the head full of new ideas to tackle the issues you've left at home (I'm not talking about how to get the exoskeleton in S.T.A.L.K.E.R.: Зов Припяти, because it's really just a matter of harvesting artifacts like there's no tomorrow), rested and energized by the intense intellectual maelstrom.

The conference is located in Aspen, Colorado.

I'll nitpick and say although the site and the city in itself are really a great, great place to have a conference, it's a bit inconvenient if you live outside the USA. From my European point of view, American conferences located in Boston or New-York are be more convenient.

If you're serious about C++, fly your team to the BoostCon. It's an outstanding investment.

Registration is just one click away