Software development is a very peculiar industry. If work is not fun for those doing it the products will be mediocre at best and so will be the company – it can make money but it will never be a great company attracting talented people.

This is so because software development is not really engineering – it only looks like it because it is so technical. If done right it is in fact a fusion of art and technology – very much like a craft only requiring mental, not manual abilities. If people are not emotionally attached to their craft (like those who code&test solely for the money) they will not care if they produce a mess of spaghetti code rather than an elegant solution, they will not care what the user experience will be and they will not really care what happens with the product after they no longer work there. The only way to make them care is to make sure work is fun for them and they see a reason for the product’s existence other than the revenues it will bring.

Of course, this rule is more universal – happy people work better in general. For example Southwest Airlines’ happy flight crews deliver a better passenger experience, happier dialysis providers at DaVita provide better treatment etc. However, in software development the difference has a more profound effect – an unhappy flight crew will get you from A to B as effectively, keeping development teams unhappy will in the long run ruin the products/systems they create if not the whole company. This is so, because the less fun their work is the more technical debt there is (of all kinds: bugs, low code readability, C&P programming, suboptimal ad-hock solutions limiting scalability etc.) – and technical debt is as lethal for a business as any other unpaid accumulating debt.

Why it is so? I could bring up some theories, but I think it is less important than realising it and taking notice. Big players do. Take Google for example. They go to great lengths to make the experience of working there as fun as possible. The most visible aspect of this is their offices (each is different, BTW) but it goes way deeper – the way they treat their people, the way they allow them to access all of their code for example, all of that shows that people running this company have a profound understanding of what makes development teams tick. And they are not alone in this, almost every leading business now goes to great lengths to ensure the work itself and environment make the experience as enjoyable as possible for the employees.

Just to be sure – “fun” means a lot more here than just a nice working environment, cool perks and good atmosphere. It also means a shared sense of purpose in what you are doing as a company and as a team. And it also means dedication to technical excellence – a policy of zero tolerance for makeshift solutions and lack of craftsmanship. This mixture means people working in such a company can be rightly proud of what they do, proud of where they work and want to continue investing their time&energy there.

The notion of seeing the workplace as fun is sometimes dismissed as childish. It is so because there are many jobs that simply can’t be made to be fun (think of garbage collectors, people working in slaughterhouses or on assembly lines – by now mostly Chinese – assembling over and over again same parts) and historically practically all work was “serious” – not fun at all. Luckily for us that idea is slowly eroding as people search for self-fulfilment. Spending at least 8 hours a day on a job you hate is definitely not self-fulfilment.

Globalization and shortage of talent, especially in software development and other high tech sectors, make it very easy to run away from jobs where the “fun” part is gone (or wasn’t there ever).

Therefore one of the key duties of executives in an IT company is to make sure people working there have fun at work. And that means not that they can play computer (or traditional) games in a special room or have fancy office furniture – this means ensuring they are having fun doing the actual work as I’ve already explained above. I’m joking sometimes that there are companies that badly need a CFO – Chief Fun Officer – to shake the boat and bring some fun back. But seriously I don’t think one such guy can make a difference – I think that rather this attitude must be at the very core of company’s culture.

How this looks at your current place? Is working there fun? If not – take my advice: don’t waste your life, move on.

The title of this post basically says it all and I could leave it without any content. But this being a blog etc. I feel I should explain further. So here you have it:

It dawned on me today that most of the time we are not thinking, we are merely processing incoming information, in most cases redirecting it somewhere else. For example I get an e-mail and I decide what to do with it, then I send it to someone from our team with a short comment. Or I read a bit of news and I decide to share it on Twitter – copy, paste and it’s done. Or I might decide to share it with friends via e-mail. Or maybe even write something about it.

All this activity – even though it happens in the mind – is not thinking, but processing – reacting to outside stimuli coming in. Thinking is a much deeper thing, which takes time and concentration. Those, in turn, usually require relatively large chunks of time without interruptions from new stimuli firing up the whole processing scheme. Those chunks of time seem to be harder and harder to get these days.

Let me explain.

As anyone who did anything close to meditation will tell you it takes time for the mind to settle – that is for the frantic activity of thought to subdue enough for the mind to regain some clarity. Only then one can do something with it – meditate or pray – or think. That time varies but for me – as for most people – it is somewhere between 10 and 15 minutes. This is – to be clear – not the time needed to think of something, but to get ready to start to think. Then you need some more time to think of anything that has any deeper meaning, sense or value.

But today’s world is full of buzz and staying fully connected all the time hurts this process immensely. The worst is of course when one sits at a computer connected to Internet – then this whole thought-killing processing not only has endless supply of data fueling it, but also can grow and expand to consume all mental energy. For example, an e-mail might contain a word you don’t know, you search the web, find a Wikipedia page on it, read it, in it find 4 more interesting links, open those, read some of them, find new links, then another e-mail comes, then phone rings, then someone types in Skype chat, you read, reply, turn back to e-mail, then someone comes in to your room to ask a question – bam! two hours have passed and you don’t how!

Sounds familiar? Seems today many struggle with exactly this. Huge overload of incoming data and interruptions that doesn’t ever allow mind to even begin to settle. This is why many people get their best ideas now while traveling, because it is usually when their thought process has a chance to go on uninterrupted longer. But portable Internet devices (like the iPhone) and cell phones do all they can to ensure we stay connected even while on the move – and keep on processing.

One more thing worth noting here is that processing is quite pleasurable – you get the feeling you feed info to your brain, and for some of us – me included – this is way way more addictive than any other pleasure. Our advantage is our mind, our edge is our ability to process quick, we win by knowing things sooner and better than others so we get high on sucking info – but we must not forget to stop and think sometimes.

Processing is not inherently evil – it gives us the data we need to come up with ideas or solutions or serve as inspiration. However, to make any use of this data we take in all day we must learn to switch all the incoming lines off – and think. Realizing what you do most of time is not thinking even though it looks similar goes a long way towards consciously finding chunks of time our minds need to think.