Kaz Software Blog

Blog about Kaz Software and topics related to the software industry. We are deeply interested in the factors that make a work space better for the making of software and a lot of our articles would be around such topics. But we are big into having fun - and some of the topics would be just about what we are up to!

You are walking around the shopping mall with your shopping list but something weird is happening. Every time you change an aisle your phone seems to come alive beeping away cheerfully! You look at the screen and see a list of products that has magically appeared all of them vying for your attention “buy me”, no “buy me” “ I am going at discount”, “Try me out for the best experience” etc. While you are wondering how these products found you out and how they know what you are looking for, you realize that the world has changed after all, and that the Internet of things (IoT) is knocking on your door.

The Internet of Things (IoT) is going to change how you experience your next shopping spree. How? Well all the objects and devices with their sensors, connected through the Internet will relay a lot of information about how you are using them, where you are using them, when are you using them. All this data will be mined by the products manufacturer and marketing companies who will compile it into information that enables them to design, contour and make improved products that are better able to meet your needs and wants. Advertisers will be able to build profiles based on your preferences and reach out to you in unique and personalized ways. They will ultimately convey messages or content that is in line with the consumer’s mindset, targeting people at optimal times and places through nontraditional media. Sound incredulous? It is already happening as many of the products around you like your smart TV, cellphone and console are “listening” to you and gathering data on what you are doing most of the time without you even realizing what they are up to imagine what would happen when you have a home full of IoT enabled devices.

The brands we use will become our life long acquaintances as they have a continuous dialogue with us through continuous interaction. Imagine a device that reminds you to replace a worn out part or tells you a newer version is out with improved features and you might want to try it. Advertising will become in a sense crowd sourced as the creative impulses are tempered with information made available through the IoT. New models of marketing will develop that move beyond the legacy methods opening up completely unharnessed horizons for companies.

Digital Marketing will move beyond customer relationship management as the information gleaned becomes more personalized allowing customized and targeted approaches to reach consumers. E-commerce will become ever-present and pervasive in every aspect of our life; sometimes maybe even intrusive.

Making sense of the IoT is going to be challenging for marketers as the influx of devices will require them to consider context and apply methods and skills differently from traditional techniques. Turning big data into information will require advanced statistical models and software to make sense of all the information flow allowing them to create highly accurate profiles of the consumers. One of the best benefits that will come is from the unfiltered nature of the information that they can get making understanding consumer behavior just a little bit easier. Marketing will become more about excellent content, emotive appeal and more device and platform neutral as a multitude of IoT enabled devices make way in to our lives.

Remember the next time you go shopping if a carrot calls out to you saying “eat me”, or if you find the milk cartons “mooing” away, or if the latest perfume says “smell me” or a t-shirt calls out “I want to be all over you” don’t think that the world has gone crazy, it is only the world of the Internet of Things calling!!!

Have you ever felt that pang of anguish while visiting a friend’s house when he proudly displays his new 80 inch OLED smart TV connected to his 1 Gbps connection, which is in turn connected to his new iPad projecting Apple TV on screen, as he goes on lecturing about the benefits of the latest tech? You look around his room to see the latest gadgets all there; making it impossible to keep the “green eyed monster” at bay, while at the same time you fumble to your pockets to hide your 3 year old smartphone. If you have experienced something similar to this situation then you have had a small taste of the “Digital Divide”.

The reality of the Digital Divide (DD) of course is much larger, access to the highest bandwidth and latest tech can make huge differences in people’s lives. The DD can be between men and women, rich and poor, different ethnicities, even between the developed and developing countries. The advantages that the latest tech offers simply does not percolate everywhere at the same time, creating disparities that can leave behind large segments of humankind in a kind of “digital dark age”.

Now you may kind of wonder why does this Digital Divide happen? Well there are quite a few reasons this happens let take a brief look at few of the major ones (for convenience let’s use country comparisons as these are the areas where the largest differences occur).

If you remember the example above, the friend who has bought all these gadgets seems to clearly have the cash to purchase them maybe he inherited millions or made it big, it doesn’t matter, he has enough money to get the latest stuff. This situation unfolds on a much grander scale when we compare countries. If we compare developed countries to developing countries we find great disparity between them when we start using the right metrics like internet penetration, cost per mbps, cost of capital for buying ICT stuff like computers, smartphones etc. just to mention a few, a clear yawning gap appears. So economics does play a big role in the digital divide and the unfortunate truth is that it is in the developing world, where getting the latest tech can make the most difference in alleviating poverty and creating empowerment.

The next thing is access to technical knowledge, research and development this is an area where developed countries have the complete edge. If you look at the number of patents filed in developed countries vs developing countries it will give you a good idea where the next tech is going to come from. For example if a country lacks software designers it will have to import software or buy licenses for it or if they do not have backward linking companies that produce hardware for the ICT then they will have to rely on imports again this can quickly add up to a significant portion of their foreign exchange being drained or funds being curtailed from development projects. Developing countries do not always have the infrastructure, funds, and know how (brain drain happens the most from developing countries) to cultivate and deploy the latest tech leaving large swathes of their population deprived.

Infrastructure or lack thereof can hamper the ICT projects. If a country suffers from chronic power shortages or if a significant portion of the population lives in remote areas where there is no power grid then the power to use devices becomes more complicated and expensive. Similarly if a country cannot deploy fast fiber optic or cellular communications then information cannot disseminate properly rendering ICT projects inefficient.

So what can we do?

Simply placed we can start using the internet of things to start overcoming traditional barriers to ICT deployment. The Internet of things will open up unique ways for countries and people to enable devices to enhance their lives. As the Internet of Things comes to be and matures we can hope that companies will be able to achieve economies of scales that were previously unheard of bringing down production costs. Also the IoT can enable people to design develop and customize products for their own needs. Imagine what an ingenious student in a developing country could do with a 3D printer. IoT might enable decentralized manufacturing of customized products suitable for each countries situation. IoT enabled devices will increase efficiencies in everything that they are used in creating net saving for everyone and opening up more resources for other uses.

While we can perhaps argue about the risks of IoT deployments and maybe they will create their own set of issues as the popularity of IoT enabled devices grows, but this always happens whenever new disruptive technologies come about, leaving room for the next generation of thinker and doers to innovate something new, to solve those problems.

Getting back to our story, now maybe you have just barely managed to control the Green Eyed Monster of jealousy or maybe you have allowed it to take control and are contemplating whether selling a kidney will get you the latest must have gadgets. Then know this the Internet of things is coming and just maybe with it, the vast deprived humanity might get some parity in their lives.

OK so we’ve been hearing all the hype about the IoT. Everything around us is going to become smarter and they are going to “talk” with everything else including us. It makes you kind of wonder when you see nations, governments, large corporations, small companies’ even individuals taking serious interest in the Internet of Things about where all this is really going.

If we look at the following graphs the first from the MIT Technology Review and the Second from Gartner it will give us a clearer picture about what is really going on:

The first chart gives us pretty good idea about what is happening we can see that as we approach 2020 that growth in PCs & Laptops, Tablets and Mobile phones is tapering off near around the 16 billion mark but devices or things is shooting from about 1 billion devices in 2010 to over 12 billion in just 10 years that is a staggering 12X increase!!! The report by Gartner shows that connected PCs smartphone and tablets are actually dropping with IoT enabled devices reaching a staggering 25 billion!!! No wonder everyone wants a slice of this IoT pie because it is a growth driver where the slices are getting bigger really fast. No one can afford to miss out on this.

Miniaturization and nanotechnology are quickly allowing us to make small computers that can be placed on almost anything coupled with smaller cheaper radio chips, capable software and more efficient micro sensors the potential for diverse product design and development increases almost exponentially. Meaning we can start to place these radio enabled computers on almost everything. Who knows with more advances we might even be connected directly to each other someday creating the Internet of You and Me (Check out the book Nexus by Ramez Naam)!!!

If you look around us the average car in the US since 2007 has 60 microprocessors’ some connected by radio links to the central computer of that car and these electronics make-up nearly 40% of the cost of the car itself. Think about the number of networking devices that will be needed to cater to all these Internet connected devices. Think about all the software coding needed to get the products to “reason” with each other. Think about all the marketing companies rubbing their hands together mining all the data produced from these IoT enabled devices. Finally just think about the sheer number of microprocessors needed to be manufactured for each individual smart product and the sum total of everything needed to create the IoT and the number quickly become mind-bogglingly huge both in sheer volume and value.

The IoT has now become a concern of everyone because it will create greater economic value for the global economy. Gartner believes that the value for the IoT enabled economy will be 1.9 trillion USD by 2020 or for comparison about the size (GDP wise) of the tenth largest economy in the world today. The Internet of Things enables companies to develop customized solutions that are optimized for each individual customer which will in turn enable companies to adapt new innovative business models creating new markets and a new economy.

Countries and International organizations have started fostering and promoting the IoT. The US Government has started promoting the IoT as the “Cyber-Physical Systems” hoping to improve safety, sustainability, efficiency, mobility and the overall quality of life. The EU hasn’t been hanging back either in the EU Commission Digital Agenda for Europe report they say “ it could generate billions of Euros that easily translate into growth and employment, provided it ensures trust and security for the European citizens and businesses. At the same time, the IoT will bring hyper-connectivity to a global society, using augmented and rich interfaces” while in the upcoming Sixth Annual Internet of things Summit EU stake holders are coming together to discuss what is happening and what is going to happen. China has already invested 800 million USD for the IoT and Chinese Premier Wen Jiabao identified IoT as an “emerging strategic industry” in an interview on state media. The UN itself got into action predicting the IoT back in 2005. Other countries are each gearing up for the coming IoT world.

So in the future if your shoes suddenly say your foot smells and asks you to change your socks or your toaster rebels and says that the doctor has ordered you to cut down on carbs or if your girlfriend says she is too busy talking to her flower pot to meet up with you don’t be surprised. After all you’ll be living in the world of the IoT. Rather let us say “May the IoT be with you”!

Imagine This

You wake up in the morning to the alarm of your smart phone, yawning, you speak to the phone “run routine 3”. The windows to your bedroom turn from opaque to clear as sunlight from outside floods in. Automatically the coffee machine switches on, the 3D Food Printer comes alive printing your breakfast according to the preprogrammed menu. While your breakfast is being prepared to perfection, you get up to go the toilet to wash up and well do the stuff a lot of people do in the morning, your toilet reads your health situation from sensors built in to it monitoring uric acid, albumin and sugar levels. The Bathroom mirrordisplays some of the breaking news and any messages you might have received at night while your smart shaver reads the contour of your face using a small laser to read your skin condition and deftly control how close a shave it will give you. You eat your breakfast while your fridge details the state of your groceries. You get ready to go out. As soon as you close the door the home maintenance system shuts down the air-conditioning and all non-essential appliances.

You walk to your garage place you finger on the security sensors that reads your finger print and along with a signal from your cellphone, disengages the lock on your car. You get in and your car greets you and asks where you would like to go. You say “to my office” the cars computer goes to a database to see what the road conditions are including weather and traffic situations. It plots the optimal route, prompts you for the go ahead and starts on its way while you recline in your seat and review the 3D holographicpresentation that you had made on your smartphone. You reach your office without even touching the steering wheel.

This is just a small example of the way the world is evolving around us. Much of this might seem to be nothing but some excerpt taken from a science fiction novel but many of these technologies have already been developed or are in prototyping stage and will be around us over the next few years. This will be the World of the Internet of Things (IoT).

“Internet of Things” What is It?

The easiest way to understand the Internet of things would be to look around us at all the object or “things” that we use most of these objects are inanimate or more simply dumb, they cannot operate without human decision or intervention. The Internet of Things IoT will change how these objects are used by allowing them to not only communicate with each other but to share relevant information over the internet, allowing them to make decisions autonomously. These smart objects or things will be embedded with electronics, sensors, software and connectivity to enable them to achieve greater value and service by exchanging data with the user, manufacturer, operator or other connected devices. Simply placed the Internet of Things will allow us to have person to machine (or device) communication, machine to machine communication (or device to device communication) and machine to person communications all enabled through the Internet.

The Internet of things is set to change our journey in to the future. The way we interact with world around us and how it interacts with us in turn will transform our mundane lives into something more interesting for sure. That is why I will be gradually publishing a series of articles for you all related to the Internet of Things (IoT). So stay with us for our next parts it’ll be fun.

One day whilst at a museum showcasing art by a very famous artist a 7 year old boy stood in front of a painting showing a single brown dot, a blue sinuous line and nothing else. The painting was apparently of a woman sitting by the riverside. The child turns to his parents and says “hey you know I could draw that” much to the laughter of the surrounding patrons. Then what exactly made this painting by such a famous artist so special? Was it the simplicity of subject, idea and form? It was design.

Design is all around us whether natural or man-made. We always try to differentiate something by comparing designs. Whether it is a simple cellphone, a piece of furniture, the home we live in, the food we present and eat, anything we do has aspects of design incorporated in to it. So when it comes to a website that is actually our way of declaring “hey I am here this is me” design plays a pivotal role in capturing the attention of our intended audience as well as communicating your message.

Website design is an art and a science. Why? Well if you look at the millions of websites on the internet all vying for attention it is easy to realize why so much effort is placed into design. Starting from statistics, consumer behavior, psychology etc. elaborate attention to what processes get the largest audience and readership have become a science for website design. If we look from a different perspective attractive websites are no longer simple pictures or texts jumbled together, they contain audio, video, stunning images, and are increasingly interactive all making website design an art.

“To Be Or Not to Be” A Great Website:

So how do we design a great website? Well the first thing to think about while designing your website is what you want to communicate and who you want to communicate that too. That is targeting your audience with the right message. Most people will not spend a lot of time on a website browsing through material so it is important to keep your message concise. Think in terms of branding how do you want your audience to remember you and design your website accordingly. List out the main things that you do or want to express, make sure you do not drift from your main functions as this will dilute any message you wish to convey.

“Emotions Are Good” for Website Design:

Good websites are designed to have a personality of their own. It may have humor, be serious but it should invoke in the visitor some kind of emotional response. Employing images, animations, audio or video can easily grab and retain the attention of the audience as well as make it more attractive at an emotional level. Websites with images of faces and people also help to make your visitor feel more at home using sentimentality gives your website a much more personal appeal. Check out the Moto G Website

Simplicity Equals to Sophistication

A great way to really loose the attention of a visitor to your site would be to cram it full of needless information and have a cluttered design that would quickly exasperate any visitor as they tried to navigate the site. Often the simplest designs are the most attractive so don’t go overboard by adding too many elements to your website. Clean designs are something Apple does very well

Interactive Website Design

People love to interact with their environment. Adding interactive elements to your website increases its appeal significantly. The user experience becomes more personal leading to a richer more memorable experience for the visitor. Adding elements like sound, or other audio visual stimuli that appeal to one or more of the human senses lead to a positive experience for any visitor. Keeping the visitor involved doing something on your website means that they are bound to spend much more time going through it. Here is a good example... try out their fidgety menu bar! http://rog.ie/

The People and Process of Website Design

Bringing together the multifarious elements of designing a website can be a daunting task. That is why it is important to have a team who know exactly what needs to be done to get your website up and running. The team should be able to cover all aspects of website design including coding, art, prototyping, customization, testing and validation (etc.) just to name a few. The ability of a team to create responsive designs, inspirational outlooks and looking at issues from a different perspective all contribute to the designing of a great website.

That is why we at KAZ software have the some of the most experienced professionals from diverse backgrounds dedicated to give you the best website you can have.

Sorry for the show of the bad taste in the title. It is however not completely done for the sake of sensationalism. The idea for the title comes from a trip by the sea that we at Kaz software went to. We did a big barbecue of a whole lamb spit roasted on top of an open fire on the beach. Somehow someone claimed that it could easily pass on as a barbecued dog and that phrase caught on. So in the folksonomy of Kaz a barbecued dog party is where we do a barbecue under the open sky - something that we do at every chance we get.

So why is it good?

It's good for different reasons. But at the core they are all the same - it brings people together and creates a bonding. There is something in making food together sitting around the open fire with smell of burnt meat in the air that brings out a very innate human bonding. Maybe it's the left over traces of a hunter gatherer tribe, maybe it's the psychological security and assurance we feel in the act. Whatever it is, it works like magic in making friends. And as we are all aware, a gelled team is the biggest factor for a successful software.

Don’t know about it? You must read up all about it from our article about the power distance in software teams. Here is how I define power distance in the software teams:

How likely is a junior programmer to tell a senior about an error in the latter’s code?

Teams with large PDI will end up with those errors not discussed and resolved and thus with a buggy and at the end of the day a failed software. Thus it is of utmost importance that PDI be reduced in a software team.

The big question is: is it possible to reduce PDI? A valid question since PDI has been shown to be tied with cultures. But it has been shown that with the right effort and plans the cultural hard wiring can be overridden and PDI can be reduced and lives saved as it turns out: in the case of Korean Air in late 90s.

Korean Air had more plane crashes than almost any other airline in the world for a period at the end of the 1990s. This trend was finally pinned down to essentially power distance in the Korean culture which makes co-pilots very deferential towards the pilot and effectively cutting off the check and balance in the cockpit. Korean Air completely changed the trend by recognizing that PDI exists and taking steps to counter it. The success can easily be seen by the sudden reduction of the air disasters from the early 2000.

Although no study has been done in Bangladesh on PDI, but I can tell just by knowing our culture (and also looking at PDI scores of neighboring India) that the story is bad. So we’ve been very careful to take steps to reduce our PDI here at Kaz Software. Over the years we’ve tried lots of things but I can distill them all down to 5 steps that I know works likes magic. Here you go:

1. Make your team aware about the risks of power distance.

The great thing about software team members is that they are uber smart. If you can make them aware of the risks of power distance and how it affects their work product it immediately has an effect. This is something we do at every chance we get – starting from the day someone joins us and continuing at almost all the team meetings and brainstorming sessions. The awareness gives the team members to speak out when they worry if speaking out against a senior might be being rude. Which takes me to the 2nd step.

2. Train your team to be rude!

Well at least train them to speak out. Being nice and well behaved is the worst things that a developer can do to his team! Train them to have a strong voice of dissent, of being not nice when it comes to reviewing code or software design. A big tradition at Kaz is to “introduce” a newbie to the fine art of saying “you are dumb” in multiple ways!

3. Make self-deprecating humor common

This is slightly more difficult. But if you can plot this with the seniors in the team this becomes the easiest way to break the ice. A common joke at Kaz is that seniors can’t code that well because they are slowly losing their grey matter. It’s brought up at every chance we get when we worry about code – and soon enough the juniors in the team start to use it.

4. Do events that break down the barriers

These could be during the ubiquitous “team building” events or events specially designed to reduce PDI. The aim is to create a feeling that we all make mistakes – so the goal is different from the usual team building event’s goal – different enough to make special plans for them. The idea is simple, setup a situation (in a game, a show, etc.) where juniors have an edge over the seniors or where the seniors intentionally make a fool of themselves for fun. At Kaz the team leads dressing up as dodgy looking ring masters of a game are a good example.

5. Make team structures as flat as possible

This is the most important one. It’s the strongest message that you can send to the team about your intentions of keeping the PDI low. The whole gamut of hierarchy and respect just doesn't work in software and the sooner you kill it the better.

It all started with a Geert Hofstede, who in the late 60s did extensive experiments to prove that how we operate in a corporate environment is very much a function of our national culture. He measured responses of 117,000 IBM employees (he was working with IBM at the time) across different countries and showed that there are distinct biases about our reactions based on where we are from. He grouped the attitudes he was measuring in four types and called them the cultural dimensions.

Of these dimensions Power Distance index (PDI) is the most interesting, I think, for software companies. Power distance is in simple terms how submissive (or not) is someone to his superiors in a hierarchy. For a software company it boils down to a simple question:

How likely is a junior programmer to tell a senior team member when he spots an obvious error in the latter's code?

If he is likely scream at the first chance then the power distance is low and if he is more likely to not raise an alert the power distance is high.

Hofstede showed that PDI is directly correlated with the country you are from. And this makes perfect sense - some countries have culture of strict hierarchy where are elders are honored without question. These cultures imbibe its children with that value of respect and submission to seniors that obviously shows up in work culture. Countries with high PDI include India, South Korea, Malaysia (sadly no data for Bangladesh, but it is without doubt a high PDI country). Countries with low PDI are US, UK, New Zealand etc.

So what is wrong with high or low PDI?

Well, it depends I guess in which work area you are in. I'm sure high PDI is great for families (oh how I wish my word be the law for my two unruly sons - high PDI is definitely welcome at my home!), high PDI is probably good for places like the army (when you tell your soldiers to jump in front of machine gun fire you don't really want them to point out the futility of war, e.g.) but for some industries it's downright a disaster (literally). In 1994 Boeing published safety data showing a correlation between a country’s plane crashes and its score on Hofstede’s dimensions. And it is easy to understand why - in such a complex operation as flying a modern aircraft the chances of error are high for the captain. The first officer's major role is as a second pair of eyes for error detection and mitigation. Yet in high PDI countries the first officers (much lower in the hierarchy of things compared to the captain) finds it difficult to voice their concerns. And when you have that over millions of flights you start getting statistically significant effect of the high PDI causing crashes to happen.

And so it is for software. One of the basic facts in the game of software is that everyone (including the uber geek who has been programming since the 90's - well specially him!) will make silly mistakes. The only way to save a piece of software from these mistakes is by constant double checks. Software QA is a double check for sure, but that as we know is way down the path. The earliest double checks are the screams of team members during the design sessions and coding. And this is why a software company craves (or should crave) for ultra-low PDI. This leads us to a simple statement:

Software can only be made faster and less buggy by having low PDI.

So the most important question for a software company then becomes

Can PDI be lowered?

And thankfully the answer to that is

YES!

The important thing is to recognize that there is a need for lower PDI and then there are many things that can be done to lower it. There are documented proof of such efforts and the resulting wins in the airline industry. We at Kaz Software have been doing that for the past ten years in our little niche!

You must've got that irritating message popping up when you log-in to your windows where it says there is a new version of Java available (or even worse the windows UAC pop-up with the worrying question of "Do you want to allow the following program to make changes to this computer?" ). Well take solace in the fact you are not the only one in history - Java has been irritating the humans with this for quite some time. Joel even wrote a small article in his blog as far back as 2009 and came up with the wise words

"...This whole damn dialog could read

Java Loves You—Please Wait

without any loss in functionality..."

Well nothing has changed in the intervening years. The message is exactly the same wildly pompous message of

“By installing Java, you will be able to experience the power of Java”

Actually somethings have changed - Java is now Oracle and the UI has managed become even worse (how they managed this feat is amazing though, extra brownie points for the red java.com hyperlink).

Then ...

And now ...

PS. Just a quick disclaimer- we are no Java hate group, actually we love it. Kaz Software has a very strong Java team (it has always had one right from our humble beginning). We work and have worked on all sorts of Java based web applications and love the robustness of the platform.

Kaz revolves around the word happiness. It’s around everything we do. We continually ask ourselves: “are we happy?”. We have a rule of thumb about failure that says: if one day we wake up and think of going to work as a pain then we will know that we have failed.

Many question our principle of happiness as the core business philosophy. Many are clearly baffled that this can be true. And many just laugh it away as a triviality – not believing it to be true. But if you think about it it’s the most obvious thing, it’s amazing that so many companies in the world miss something so basic. The pursuit of happiness is inherently a human endeavor. We spend most of our waking life at work, a significant number of modern human relationships are connected with work – given these facts isn’t it obvious that we need work to be based around happiness?

So what does the pursuit of happiness entail at workspace? There is no sure shot formula – you just have to go by your feelings. But if you were to ask us, what is one thing we must do as the first step in the pursuit for happiness – we would scream:

Say NO to cube farms

Cube farms are evil. They are inhuman. They were made by some alien droids that had no concept about being human and living a normal human life. If you want to achieve anything close to being not sad – burn those cubicles.

So if not cube farms then what? People have to work somewhere. Well we believe that the most natural space in our lives is our homes. So if we can mimic anything about our home at workplace that will bring happiness. So that is why we love our office that is not a purpose built open space for cubicle animals. We work in houses built in the 70’s that we have converted to offices ourselves. They are not inhuman multi-storied building but human two storied buildings (amazingly the two building we are based in are exactly the same architecture because they belong to the same family!). They have open space in front with large trees that have real fruits in the summer (an amazing thing by the way in the concrete mess of Dhaka). They retain old mosaic patterns that were very popular in Dhaka during the 70s and 80s.

Our seating is as asymmetrical as possible – almost chaotic. We try to give large tables that all look a bit different from each other. We sit with the wall at the back – so that it feels safe and we don’t feel watched. Our monitors are kept in a way so that the screen cannot be viewed by someone approaching us – so that we have our privacy. As un-cubicle like, as possible.

So once again, do everything you can to your workspace to stay away from the cube farms. Be happy!

We are ten years old this month. We started out on June morning in 2004 as a “company” where we had no rules, no goals and no clear plan of what we would do to sustain ourselves – we only knew that we just have to make it a place where people are happy. Over the decade we have learnt many lessons on what to do and what not to do in the business of software. And today I want to write about the lessons we value the most. It would have been great if someone gave me this list ten years ago, but I also wonder if I would have believed it enough to follow it!

Creating a company based on a single vision works

For us it was the vision of: “work should be place of happiness”. It sounds nice, it sounds right but is it good enough to carry a company to profit and permanence? I honestly feel it is – in these ten years a lot of things have happened, many business decisions had to be made and many a crisis had to be overcome, but it was always this single vision that guided us in all our thoughts. Having a single vision meant we could easily decide among multiple options that we had in front of us. It gave us the road to travel and the strength to walk that road fast.

I am not sure if our particular vision is important, it was for us and it worked great. But I think any overarching simple vision that you truly believe in, that everyone in the company can understand and embrace would have worked. Having a simple vision is important. Without it (or with too many of them) I feel we would have been lost.

Software business is all about the right people

Selecting the team members in any company is important. But I feel in the business of software this one thing can make it or break it. You could have the lousiest idea about a software product in the world, but if you have the right people they change it into something amazing – and obviously the other way round. I think in no other modern world business is the product of the business is so malleable, so sensitive to the craftsmanship of the people building it.

So, hiring decisions are the most important decisions in a software company. We learnt to be patient, to be more exact and to be more careful when hiring new team members. If this meant that we lost important business we learnt to live with it – that’s how it is in this world.

Think only in the long term

All our decisions that have been based on short term thinking have failed or have haunted us. Somehow this very ephemeral world of software requires a very non-ephemeral structure to stand on. So we learnt that buying this server “just” for this six month project doesn't mean we can compromise on the quality. We learnt that bending the rules “just” this once to meet this deadline backfires pretty soon. There is nothing short term in software business – it’s hard to believe that this is true given how software projects work.

If you are not hiring a great C++ guy now since you don’t have any projects right now, it’s probably a big mistake. If you are saving a few dollars on a server you’ll probably regret it next month. The list is really long and scary – but if you do want to be successful you just have to believe that you will be around for a very long time.

Only thing that works is an environment of trust

Software is so inherently a collaborative effort that only if people feel safe in trusting others that the whole thing works. Otherwise you spend all your energy trying to force external systems and rules to make that collaboration happen – and it keeps failing. Only an environment of trust can achieve software products that are on time, relatively bug free and usable.

An environment of trust builds up primarily from the actions and policies of the company. It builds up from the actions that people in positions of power take and how those actions are perceived. Any system or rule that you bring that has an impact on that perception has to be considered carefully before it is put in place. So if you thought that nifty time tracking tool you just bought will turn the company around, think again, it might be the first nail in the coffin.

Never, ever be “set in stone”

Software is always a moving thing. And no wonder that a software company should also be like that. What works today, what worked so well last time, has every chance of failing to tomorrow. You will always have to adapt your rules, policies and business practices. If you are doing great as a business now, beware tomorrow the technology might change or the customer’s need for a certain feature might evaporate. That’s how it is in this game. And the only way is to be able to adapt.

If you are curious about the title (and you should be!) the explanation is easy:

The blog is about Ms. Meow the cat - the official Kaz Software mascot. The blog is also tangentially about the importance of making a place of work, particularly a place of creative work, feel like a real human habitation (as opposed artificial "corporate" one). And last but not least the title is a shameless attempt to push a picture of Elizabeth Taylor and Paul Newman in of their finest moments :)

The mascot

Ms. Meow is a cat with a strong personality. She knows what she likes (techies and food) and she knows what she doesn't like (admin droids and banana). She is very conscious about her career improvement, as can be seen below - she learning the art of SQA with full dedication. (I'd like to point out that she is far from an ornamental mascot - she is the savior who protects us from the clutches of the evil mice :)

The workplace like a real human habitation

I agree, this paragraph looks suspiciously like a weak attempt to bring credibility to this blog post. But I assure you it is not. From the day we started ten years ago, we made innumerable decisions to make sure that our place of work feels, as close as possible, like home. This is not an easy task, mind you. It is not as easy as putting some pictures on the wall or setting up a comfy place to sit, etc. Well I should say it not just those things - there are many reasons why home feels like home. The visual aspect is only a small part of this big story.

But why make it like home at all? Well that is a long tale with no definite story-line. But it is really a point of view (amongst many) about workplace. But it is a view that we at Kaz subscribe to very passionately.

I can't do it justice, so let me quote something I read recently in a book review (and I quote without credit - in the world view that in the post Google world there is very little need for such a thing):

Understanding that humans biologically evolved to cooperate and that leaders emerged to protect the group, organizations that create environments paralleling those early conditions will bring out the best in us. This means taking steps to avoid the allure of abstraction in modern life by keeping it real and avoiding the perils of scale by keeping team sizes that mimic those of human tribes.

The picture

OK, cutting to the chase, here is the picture. It is from the movie Cat on a hot tin roof made in 1958. When the monochrome was at its best in human history and when nothing could beat the sizzle of Elizabeth Taylor and Paul Newman. (As a last attempt to justify it, I'd like to note that it goes with our theme in this blog of putting up old b&w pics of movies that are notionally connected with the content of the blog).

Adventure activity and software - not the best combinations those two you'd think. People in software tend to be less the "adventure sort", if I am allowed a sweeping generalization (once a month is ok!).

There is a lot of folklore about what happens between team members in the stresses of an adventure. There are countless stories of old friends fighting it out and separating because of a tough trekking trip. About people changing into very different personalities in the extremes of environment and physical strain. Gurus claim that a group only works in such stresses if the personalities match or complement each other and when there is strong pre-existing bonding between the members. Many have warned that in the dry and lifeless corporate work groups such a strong bonding is not possible and thus it is not advisable for such groups to undertake extreme activities.

We are not famous for listening to sound advice. So we wanted to test this out - as part of our philosophy of experimenting with culture to find that Nirvana of software.

We wanted to see what really happens when a group of techies with the famous pre-existing bonding of Kaz go through physical stress of a relatively difficult adventure trip. Today's blog is about that experiment.

The Goal

See how techies function as a group in a physically and mentally challenging adventure. And see how that experience effects their work relationship and team bonding.

The Monkeys

We wanted to test with a diverse group. So we chose a team of six who are:

Software Developers

SQA Engineers

Systems Engineers

The Setting

The trip was to be a 3 day camping trip in Nijhum Dwip - an island at the south of Bangladesh.

The island is, very unusually for Bangladesh, nearly empty. Most of it is forested and there are a lot of deer. No dangerous animal except some dogs who moves around in packs and attacks the deer!

The camp was at the southern-most tip of the island.

There was no road transport to the campsite - the only access was with a boat from the nearest bazaar and then walk across a very muddy path.

To reach the dwip from Dhaka the route involved a 18 hour trip via an overnight ferry (called লঞ্চ locally) and then an unknown route of reaching the southern tip (the unknowns where intentional parameters in the experiment).

The Parameters

The team will not be able to stay in a roofed building (they were given tents).

They need to stay far from any inhabited area.

They will have to cook all their meals while at the island.

They cannot research the area too much for before going to the trip - to bring in an X factor.

The Results

During the trip:

No noticeable fights erupted (sadly!), there were occasional friction between the team members which were at a magnitude higher than the usual workplace friction. We saw the effects of the professional diversity of the team in their roles during the trip. Systems, for example, took up the responsibility of arranging battery power (via solar cell panel they carried their).

After the trip:

The team came back to Dhaka with a great sense of achievement. This sense of well being has continued and has had a noticeable effect on the bonding between the team members. So none of the warning about possible long lasting effect of friction happened - quite the reverse actually.

Samuel Beckett's words "Try again. Fail again. Fail better." are one of the best mantra in a software career.

It may seem counter intuitive, after all doesn't "fail" equate to "crash" or something similar in software? It does, but that crash if timed right (preferably early on in the development cycle and early on in the developer's career :) ) may prove to be the best thing that happened to the software or the person who wrote it. A crash, you see, tells a developer what not to do. It gives her a chance to find a solution in a better way, it teaches her the invaluable lesson of things to avoid the next time she writes her code. The more fails she has, the more experienced she becomes and the more robust her code becomes.

The value of experience in software is not in the fact that this person spent that many years in front of a computer, it is in the fact that this person knows that many ways of not doing something. So if you are in the career of writing code for living, welcome the mistakes you make, learn from them and make sure you avoid making that mistake the next time.

S. A. Andrée and Knut Frænkel with the crashed balloon on the pack ice, photographed by the third expedition member, Nils Strindberg. The exposed film for this photograph and others from the failed 1897 expedition was recovered in 1930.

I was recently reminded of this when reading about an Arctic expedition that had failed a long time ago.

It was the Andrée's Arctic balloon expedition of 1897 - where three people attempted to fly to north pole on hydrogen balloon and thereby by passing all the dangers and difficulties of a trip by the seas.

In theory great, but they failed in their planning and their safety precautions. They never returned and for a long time nobody knew what happened to them. At last in 1930 their last camp and remains were found in an island. They left detailed log of what they did and many pictures. From these we know that their balloon crashed on the 3rd day of the trip and they tried to walk their way back to civilization. They may have failed, but they taught future explorers about what not to do, about survivals in the extreme cold environments and, of course, not balloon out to north pole with late nineteenth century technology!

I'll finish with a definitive quote attributed (sometimes) to that great inventor, Thomas Edision, in the context of his failures with creating the light bulb: “I have not failed. I've just found 10,000 ways that won't work.”

Every year we do a trip outside the country to celebrate our anniversary.

This year we went to the white sandy beaches of Krabi, Thailand. For eight blissful days we forgot all about computers, null pointer exceptions and presentation layers! Soaking in the sun, kayaking in caves of the limestone formations that jut out in the crystal clear waters in the Andaman in that region and snorkeling over the corals.

The value of such a retreat is huge - especially for a software company like us. The retreat relaxes and refreshes us, forming new bonds and strengthening old ones. When we come back we seem to take on our challenges with a fresh burst of energy. The stories and pictures of the retreat form conversation topics for a long time - creating relief and diversion from our daily grind.

We've been doing these trips for the past nine years, and here are some things we are mindful of to make a trip great:

Location

A retreat has to be in a place where there is something for everyone (including family and kids). Beach resort towns are big winners (our biggest hits have been Goa, Phuket and Krabi) but other places like mountain resort towns such as Pokhara (Nepal) has also been a success.

Activity

There needs to be a variety of activity available so that people can choose. Some of the easier ones we arrange beforehand (e.g. trip to a nearby sight) but others we leave people to decide according to their taste. So some of us do Kayaking whereas others go to a nearby museum.

Food

This is ultra-important - especially because we are Bangladeshis (who are known to live to eat). We aim to be in a spot where there is a great variety of restaurants available. We make sure dietary restrictions such as halal meats, vegan food are covered by some of the places.

One thing we get asked often is how we train our junior coders. And the answer is never an easy one, since we don't have a set training program for this. But we follow some principles, which over the years have worked remarkably well in creating top professionals. Kaz developers are highly valued in the industry - a sure sign that our principles are working. Here are some of the basic principles we use for developing our younger technical staff.:

Charlie Chaplin - The Kid

The master and the apprentice

Coding is a craft, and it needs to be learnt just like how any other craft in this world is learnt - through working as an apprentice to a master craftsman. Using this as the guiding principle, we put our new recruits into a team where there is a guru lead to guide them through their work. The freshers are put on real projects as soon as possible, typically starting with back-end tools working in a pair with a more senior resource - usually the lead. The pair programming model works like magic and we have noticed that within the first few weeks we can transform a not-so-sure person to a very confident coder who can contribute directly to our code. This master-apprentice approach is really a long term process and as the junior programmer works through a wide range of challenges the professional skills improve greatly.

A Swiss knife

One of the first thing we ensure about freshers is that they are not put in a single technology for too long. The idea is to give them a taste of various technology/programming languages/domains/problem sets so that they can have a balanced view. Our fear is that if a fresher is stuck with a single thing for too long, she might try solving every problem with that single tool rather than choose the correct one (or look for a correct one that she doesn't know about). The aim is to create a Swiss knife rather than a single blade knife. We think after two years of experience in this mode, a resource can be put in a technology where she can start being an expert - by that time she has gained enough experience to know that there are other things out there.

So our freshers go from doing a .NET based auction site this month to a Javascript heavy social app the next month. They may be doing xml conversion the month after. With the wide variety of programming skills available at Kaz this is easily achieved.

The art of disagreeing

A major skill in a life in software is the ability to argue well. It is a skill that has to be learnt, practiced and perfected daily. We teach our freshers to be fearless in putting their views across. We teach them to overcome their worry of being wrong - which is typically the biggest block for new comers. We try breaking the ice in every way we can so that they feel comfortable in voicing their disagreements to seniors within the team.

The loss of ego

Ego kills a great software career - it as simple as that. Ego pushes a person to make irrational decisions about technology. Egos also mean that technology meetings never come to a compromise. Since great coders come with great egos this is a huge problem in the professional software space where teams need to make decisions together and work in harmony.

It's also one of the hardest thing to get rid of! We try breaking the ego by examples. Our senior resources make a show of displaying that they can be wrong. Saying "Oh I see your point now and I was totally wrong" is something that is pretty common in our culture - and this helps freshers a lot. In some cases individual counseling may also be given - always by someone who is respected for her technical skills.

Creating a tech addict

A life in software is also a life of constantly staying in touch with the latest developments. We take active steps to motivate our freshers to keep reading up new technology and try using those in their work. We move our new recruits into projects that uses new platforms that will challenge them and make them read and learn the new API sets or new paradigm of coding. Our culture of technical excellence also brings in the peer pressure for staying on top of new things - which soon becomes a habit, an addiction! We think this addiction is a must for a great career in software.

So those in short are our secrets for creating great developers. Are we missing anything?

We've been arranging trips and other company events for the past nine years. And we think we are experts in this field now - at least in arranging events for software companies.

We do our yearly anniversary trip which is usually a 8-10 days' trip outside the country, we do a 2-3 days' trip, called the picnic for some long forgotten reason, every year. Apart from these big regular ones, we do several weekend trips to various places within Bangladesh and dozens of smaller events like the borderline insane "hudai party" (see our fb page at fb.com/kazsoftware for more pictures and stories) or more mundane stuff like release dinner parties, training workshops, various sporting events, brainstorming off-sites, etc.

We know pretty well when an event is far from perfect, and we've learnt a few things about what makes a company event approach perfection.

While planning and finalizing the Thailand trip for this year's anniversary party (Yesssssssssss.... its going to be super cool with 8 days of fun in Ao Nang Beach Krabi) I remembered some of the things we have learnt and thought it would be good to share with my readers. So here goes:

1. Think BIG

It's best to think big. Because if you don't your plan keeps getting budget cuts and will start losing it's charm. Budget will always make things difficult for you whatever the size of company you are - but if you don't aim high the trip/event plan will never be great. So we think seriously big, I mean HUGE and then cut things down one at a time to fit with the money in hand. For example, the moment we thought we could do Thailand this year the first thing we said was that we would never do the old and tired Bangkok-Pattaya thing. It's just not us, 2 days in a crazy city and 2 days in a crowded dirty beach. We searched for the most pristine beach out in Thai coast, found the most expensive looking resort and said we wanted to stay there for 7 days (since 2 days is just too little and saying 8 days would have killed our boss). The resort seemed very happy that about 40 nerdy guys wanted to stay over there, and gave us the cost - a figure which can easily be the deposit for personal jet to fly us out there. So we googled again to find the next best one out on the beach... and the cycle went on.

2. Never underestimate the power of a group

Group travel or group booking does wonders to bring the cost down in any place. Use the group's number to bring down hotel prices, make the bus company give out free seats and make the restaurants give out extra special menus. The power of the group does amazing things to an event plan - use it and over use it.

3. Have a high up champion

Make sure someone from the management (or any decision making group) is a strong supporter of the event. Having a powerful champion will solve your problems of fighting the enemy within in the struggle to organize that perfect event. You'll need her support for sure. Since you are thinking big all the time - you will run out of budget, ideas that are real fun may not seem all that good for the company to powerful people, and the list goes on. Your supporter will help you sail through the red tape and make things possible. Without a champion at the right place, you will compromise at all levels and soon end up with an event that is just plain boring.

4. Involve everyone in the group

All decisions should have a feeling that it came from the group. This is vitally important to break the "us and them" feeling that creeps up in company events. The group should be consulted at every point of decision making like venue, things to do etc. This makes the group feel that they are part of the event's planning and that feeling helps them overlook a lot of issues that might otherwise sour the event and draw criticism from the participants. So run surveys, impromptu meetings or just plain group discussions on email to ask for ideas or help.

5. Have an element of surprise

Obviously company events need to be formal to a certain degree. There would be memos describing the event in as boring a way as memos describing appropriate dress code in a business meeting for the nudist resort's website :) But an element of surprise as in the sentence before (hopefully there was one) help liven up the actual event. A surprise could be as simple as ice-cream that wasn't in the menu or a little gift - but it should be done around the beginning to have the right effect.

No longer that much of surprise these days, since we do it all the time, but we did a branded T-shirt for our trip to Goa a few years back and gave that as gift.

6. Create hype

Hype is probably more important than the event itself. The right kind of hype when mixed with the right kind of planning can make a very low budget event a great success. A great thing for a company is that most of the hype can be done for free. Free hype could be as simple as a group emails describing how good the event would be or some aspect of it which is likely to be exciting for the group ("we will see the new VS from MS - still in secret beta!") . Posters in the hallway or even whiteboard screaming out messages can create a lot of hype. But one thing to remember is that hype should be matched somehow in the event itself - or it would be a disaster! So only hype things you know will happen.

For example, for our Anniversary party at Thailand a series of amazing pictures of sights around Thailand does a great job at building up the excitement which makes the party much more fun.

A picture of the reclining Buddha at Wat Pho in Bangkok, circulated over email or FB page does a great job an creating hype for the upcoming party.

7. Create an icon for larger events

Iconography is something people understand. Using a theme, wording and icons help promote an event, makes it more interesting and easier to talk about. For a custom software company like us creating icons, posters and themes is relatively easier since we have our own design teams. Here is our banner for the Thailand trip this month...

Maurice wrote and illustrated amazing children’s books. And his famous “Where
the wild things are” is a classic – if you have read it as a child (and actually
even as an adult) the images of wild things and the little boy’s reactions to
them leaves an indelible mark on you.

Where the wild things are is about a boy (Max) who fell asleep in
his room and his dreams. He dreamt that he travelled to a land far away where
the wild things are. He conquers the wild things with his look and becomes
their king. But he starts missing his home and decides to come back home. When
he wakes up he finds his supper waiting in his room.

So what’s the connection between a custom software company
in Bangladesh and the children’s picture book? There isn’t a lot really, but I
really wanted to introduce Maurice (many of my readers are based in Bangladesh
and may not know him that well) and made up my own little connection.

The land of the wild things represents our fears. For a software
company like us, that hires the best in the market, the biggest fear is the
fear of loss. Our fear of losing our talents to other companies locally is not
that great – because we are genuinely a great place to work in Bangladesh and thus
represent a top choice for people to work. Thus we rarely lose our talents to
other Bangladeshi companies. But those wild software companies in far off lands
in the West are a different thing altogether :(

The West has a magical hold on the imagination of people living
in developing countries. We tend to think of the West as the fairy tale land where
every wish comes true. Our constant exposure to western media from movies to
songs to news enhances that magic every day. And in the tiny world of software,
is there any other monster more awe inspiring than the likes of Google or
Microsoft or thousands of other fabulous software companies that we read about,
hear about and watch pictures of everyday?

So where the wild things are for us is the West – those
beautiful magical shores of California or fiery autumn forests in New England.
And the wild things are those monster software companies that live in that
land.

See that’s a good connection! And to extend the connection
even more, I hope that our children will one day come back from the land of
wild things again to their own little rooms in their own land where their
supper waits for them.

Side note: So how many of our talents have we lost to the
wild things? Too painful to answer accurately, so let me just say “many”. We’ve
lost so many to the wild things like Microsoft, Amazon or LinkedIn that I keep seeing their logos on Maurice’s
drawings every time I turn open his book to read to my sons…

The boy in the picture (second character with the crown) is Max who goes to where the wild things are in the story and he represents our lost talent.

Our annual Kaz Carrom League is in the offing. Carrom is a game we love to concentrate our passion on during the rainy months of June and July. If you know anything about Bangladesh's rain you'd know why :)

With the carrom fever coming up we've been in search of the perfect carrom board since our old ones are dying out. But one of life's lessons was the fact that there are no perfect carrom boards out there.

Just as some problems in this world just needs a custom software, we needed a custom built carrom board.

So work is in progress for that perfect board. I list some of the spec items for this perfect board for your reference.

Varnished sides with grains that contrasts well with carrom men

Did you know that the carrom disks are called men? They are are and they deserve the proper varnished sides to settle down.

Extra wide sides

Because you need need your hands to relax while you wait for your turn. Basic primal requirement.

Smooth rounded edges

There is no insult in life greater than being pronged by the sharp edge of the board when you've just missed your chance to grab the queen.

Strong joints to last a lifetime

Some people say that the strength of the joints transmit to the spirit of the game.

Extra strong back support

These boards will last a long time as will Kaz and we want to make sure posterity remembers us.