Life is too short for bad software

Great title, isn’t it? Not original, of course (what is, these days of Google?), taken from a talk given by Lew Cirne, founder and CEO of New Relic about his journey about software entrepreneurship. But it’s just too good a line to be stuck to just that, so I’m repurposing for my topic today about bad UX design in software and how that destroys people’s lives.

“One guy’s bad software is another guy’s full time job”

“One guy’s bad software is another guy’s full time job”

We had a poster up on our social media page today that seems to have hit a nerve of a lot of people. I’ve copied it here, for those of my readers who don’t speak Bangla the text just says something like: “One guy’s bad software is another guy’s full time job”. The expression on the guy’s face says it all.

It’s an easy picture to relate with. With most of our work these days tied with working with one software or another - a bad software - which usually just means a bad user interaction design - really is a hated thing. Us, developers of software, are definitely the ones to take the blame for the bad software but a fun fact is that we too face the same problems. We use clunky IDEs (integrated development environments) to code, we use numerous “wannabe” issue trackers and “agile” project management tools to manage our work. Some of us even have to rely on time tracking tools that are always misbehaving for some reason.

Bad UX is a real problem and life is really just too short for it.

The cumulative cost per year of lost efficiency because of bad software design must be some humongous number enough to buy a thousand Jeff Bezos (erm.. maybe a hundred of him).

However, bad software can kill, too.

Tragic Design: The Impact of Bad Product Design and How to Fix It
By Shariat, Jonathan, Saucier, Cynthia Savard

We learnt this the hard way in the recent software glitch that led to the 737 Max crashes or when when an Ebola patient was sent home because of bad UX design

The sad truth is that good UX isn’t rocket science. Anyone can get to a state of learning the basics - common sense level basic UX in a matter of days if not hours. A simple google search will lead you to a hundred good pages that tell you most of the tricks. There are books after books piling up on good design. Here’s one that caught my eye recently for making the point very drastically and then showing the way out.

And no discussion on UX design goes online from me without a mention to the guru whose book About Face taught me that there is a thing like interaction design!

So let us, software people say once and for all that bad design is our public enemy no. 1. And we will get rid of it wherever we find it!


MVP to Startup Success

Relax with TeamWorkS.png

MVP stands for minimum viable product and making an MVP is the only real way a startup can succeed. Making it saves both time and money and let’s a startup find it’s path to a product that the market needs.

What is an MVP really?

An MVP is simply put a cut down basic version of a product that is designed to test the market and get feedback. As a concept it’s been around for a long time, with people trying on “0.1” or betas, but it was popularized as startup process, a survival strategy by Eric Ries and his superb book Lean Startup. Let me let the guy explain it to you himself in this video.

The MVP is based on the concept that early adopters can test and provide feedback to improve the product. Not only the feedback but also test the business viability of a product can also be tested before a founder invests too much on a product.

Here are some things to think about when you as the founder are thinking of making an MVP.

Build the Core Idea

An MVP focuses on one idea and one idea alone. It does not include any other features. The goal should be building a product with a minimal budget in the shortest possible time. So the focus needs to be on the main features that solve a single pain point of the target users. Nothing more. So leave out those export functions and those customizable reports that all products seem to have but very few people seem to use.

Test Early

Even within the small scope of the MVP, the testing early concept is very much needed. Have a plan to start testing from the first day of development. Don’t think that just because you are building a small scoped MVP you can wait until the developers say “it’s done” - that defeats the purpose of the MVP which is a purely experimentation and try things out way of doing things. You as the founder and your team should have the mindset that you are just testing the water as you are building out the MVP.

Have a User Group

The MVP offers the possibility to find out your potential users’ opinion, and how they want to see your final product. So although your own feelings matter and should be the first round of test on the MVP the main goal is to let real users try the product. It’s difficult to find that user group, so start working on creating a group of ideal users. You’ll need them soon enough!

Validate the Demand

An MVP helps you understand whether your app is right for your target market. It should present your brand well to the users, and show them how your project is unique as compared to others in its category. Test out the market viability. Ask users how much they are willing to pay for it, how much time they would spend on the app, would they refer it to their friends and family, etc.

Test the Marketing

Run small digital marketing campaigns, see what the click through rate. This will test how much traction you’ll get with the product. This is the time to test variations of the marketing message. Find out what message gets the best results. This will not only tell you what works for marketing but may also tell you what your users are really looking to buy.

Here’s an example of an ad campaign run for a project management tool, targeted at exactly same demographics both on social media and direct feedback. The one one left got much less traction than the one on the right. The difference is very unlikely to be the imagery or attention as the same graphics same fonts etc. was used. What can this tell the founder? One possibility is that people aren’t looking for project management they probably want team planning (although both were in the feature list). Maybe a little more testing will help, but if this proves to be true the MVP should focus more on the team planning aspects?

1.png
2.png

Test the Burn

MVP is also test for budgeting and the burn rate. Use the MVP to test how much it costs to do a feature, how much it costs when you pivot on features. A very close monitoring of costs both financial and time is absolutely necessary to give you a good data with which you can predict future costs.

Test the Team

Last but certainly not the least, the MVP is a great way to test the team and it’s collaboration. Whatever happens during the MVP will happen (and happen at a greater scale) during the real product development. So test the teams abilities, collaboration skills and communications. Find out what works and what doesn’t. Use this finding to plan fixes, figure out what you can do to improve the known issues. Try testing the improvements too if possible during the MVP.

That’s it for now! Have a great weekend!

The Quality of Software

fix your software now.png

When Oneplus co-founder Carl Pei appeared in a video with American Tech guru Marcus Brownlee, he showed off the prototype of the Oneplus Nord design, spoke honestly about the choices they made and broke kind of a fourth wall between the accessory makers and the consumers of the brand. Among the many aspects they discussed one hit me home, the fact that they are cutting about forty dollars’ worth of testing to get the ip68. This seems to have become the norm in the outsourcing industry. The customers want an Airbnb looking site and they can get it affordably.  It is a good deal. But just like the Logo, homepage or product catalog is important to the business, similarly important quality aspects which may make or break the business remain less understood and not well communicated from the provider’s part. It is because the frugal entrepreneurial handbook guides the business to be economically lean from the beginning and the provider is in a competitive market that often prioritizes agreement over proper counseling. There is a case to be made for quick business solution but as an engineer concerned with quality nearly half a decade it is incumbent upon me to try to inform both the solution provider and the valued customer about the pitfalls of the treaded path.


Sacrificial Testability

The first victim of removing the quality concern is the architecture is then designed with testability in lower priority. Even for the moderately tech savvy customer it will seem like a matter of no concern and it will therefore be reflected in the quotation. But what they should know is that it is the first step for the application is taking towards failure in case of success. It means for them that the application while look as pretty as any of the best looking sites but will not preempt failure in case the business application is as successful as it hopes it would be. Succinctly said, software written with non-testable code means that, failures/bugs will be an ever increasing problem and will reach the threshold only when you know enough to rue the problem.

The Performance Quicksand

A successful delivery of a Share market live information site, a betting app or a simple e-commerce site is something the valued customer would accept, applaud and give a glowing recommendation too. It certainly checks all the boxes of the SRS. But then it might be outdone by the competition, failing to retain users or get user reviews concerning slowness that they can’t seem to put a finger on. A performance engineer would point out the fact that the average response time is of the Share Market info is way slower than the competition, or the betting app is becoming unresponsive at a certain peak time or the e-commerce sites various modules are performing inconsistently. He might plan out a way to identify these issues before the development phase and help the dev team solve the issue when they arrive. It might not seem like a good investment to the entrepreneur looking to cut development cost but it would be incumbent upon the solution provider to inform the hidden costs to actually performance tune after it has been launched. Which, I have to add, is a lot more than addressing them in the first phase.

sqa post.png

The Tested Software Fallacy

Again with the idea that software development should be in tuned with the business, I will propose that not all of the features have critical business aspects. For example a E-commerce site can live without the Wish list feature but will sure face huge losses if the purchase feature is broken or the search is not returning the right results. Yes, the manual tester might be expected to catch these errors but at the time the product is in production it might be too costly to handle. This is particularly important when a live product is under maintenance or is getting enhancement. So an experienced QA would suggest a business critical (risk factor driven) UI automation process to be integrated in the software development cycle which basically ensures that the new toy doesn’t choke the baby.

Hypothetical usability

Those with better accumulated focus group data could easily identify the core desire of the customer and use it against the next competing product. User Acceptance Testing does something similar; it gives a reaction from the end users about the site. In the book “Hooked”, Nir Eyal points out the importance of returning customers. Plenty of Software with technological advantages are failing because of the lack of emotional response from the user.  Even in the case of blue ocean market ideas every business not getting the edge by collecting real user based data will be outdone by someone who is going to use it. But the customer often overlooks the fact that this kind of testing might be way cheaper than to hire a focus group while the business is running.  What they don’t know might just hurt them in this case.

In the end Oneplus did what they do best to break into a saturated market, they did it not by doling out fancy new technology but assuring quality where it mattered. The part Pei was mentioning was actually a smart move considering they prioritized the software experience over durability which makes the device popular. It took some time but they edged out their place in the pantheon of high end smart phones. By making informed decision of assuring quality of the business critical aspects of any solution both the software solution providers and the potential solution seekers will be benefited with better business outcome. That I think is the writing on the wall we finally need to see.

Can a software company be 100% WFH?

Can we be 100% WFH_.png

The global pandemic has pushed us all to working from home (WFH). And overall across all industries WFH is proving to be a viable way of working. For the software world WFH was very common anyway, but now will complete WFH for months is showing to many that WFH works and this could be the new way of working with or without a global pandemic.

This has led many to ask:

Do we need to work at an office space at all?

We see a reflection of this thinking in big software companies already. Facebook and Shopify has already put out clear strategies for this change mindset about office space. A recent tweet from Tobi Lutke CEO of Shopify puts this succinctly:

Mark Zuckerberg did a longer version of the same thinking in Facebook post (of course)…

Our experience - WFH is great

At Kaz Software our experience has been extremely good with the 100% WFH mode. We posted recently about what we’ve learnt after two months of full WFH. Going by where we are we know that 100% WFH at all times is something that we can sustain very well. The time savings merely on the journey times on Dhaka’s infamous traffic itself justifies the WFH move.

But…

However, we also feel strongly about the need to be together as a team, working side by side. There is something in nature of work, nature of us being human that makes face to face interactions inherently better for some type of tasks. Here are some tasks we know we’ll have to revert to working together at the office.

Brainstorming software features

Brainstorming just doesn’t work the way it should in a virtual environment. There is something in the energy and enthusiasm in face to face discussion, something in the hand gestures of an excited colleague or heated argument about what is a good software and what is not, that is completely missing in the video calls. You just cannot do great brainstorming session without bring the team together.

Software UX/UI design phase

When you are designing UX as a team the constant to and fro between the designer and product manager or the developer is what drives the design forward. You take that out, move that into regulated video calls you will lose the creative spurts that happen in those face to face interactions. We would never want to take that out from our work, and this would be another phase of work we would always keep as a time to get together at the office.

Technical planning and architecture

Technical architecture and planning is something that can be done fairly well on the WFH mode. In fact some part of, it where a single architect is designing the overall blueprint, are best done alone and WFH works just fine for that. But when it comes to discussing the pros and cons of an architecture, debate out technology choices video conference calls fail miserably.

QA cycle

On intense QA and testing cycles of a project the constant need of the SQA team members to talk with developers, show them in action what is wrong, articulate their emotions of frustrations when a bug reappears or happiness when a bug has been fixed is something that can’t be done remotely. An intense QA cycle is very much like sports, where the developers are competing to create a bug free product or fix the bugs fast and the SQA team is working to find the bugs. The pace, the excitement, the mechanics of such a phase of the software development cycle just falls flat on remote teamwork.

So WFH is great. It’s here to stay. At Kaz we are prepared and committed to work from home as long as it takes. But we are also thinking of changing how we would work beyond the pandemic. WFH will be part our practice for sure, but we would also ensure that we work from office too. If you are in business of creating great software, as we are, there is no way but to meet and work side by side sometimes.

Stay safe!

Work from home: Our experience so far

After 2 Months of WFH.png

We’re hitting the two months’ mark for working from home (WFH). It’s been, overall, an excellent experience for us. We’ve turned, overnight, from a fully working from office to a working from home company. And thanks to careful planning and great execution by our systems and facilities teams we did not miss a beat in that transition. We wrote about the steps we took to move to home in this blog, today’s post is a summary of what our experience and learning has been over the two months that we’ve been doing it.

WFH is great

Working from home worked very well for us. We have not lost a bit of our usual efficiency, in fact sometimes we feel we have gained more with more focused work and collaboration. The time we save everyday by not travelling to work through Dhaka’s horrendous traffic is by itself a great win. Add to that the convenience of working in familiar environment and ability spend more time with family - WFH is a winner. So much of a winner that we think WFH will stay beyond this pandemic (yes there will be a time when will have no coronavirus!), we are planning to make WFH part of our regular working procedure when things get back to normal one day and we get to go back to the office again.

Work environment is important (even at home)

This was expected. As we went through the motions of WFH we realized over and over that having the right work environment is important even when you working from home. So having a table dedicated to work (rather than using the dining table), in a space where you are not disturbed is very important. Over the first week this realization meant many of us adjusted our work computer setup at home. Some even moved their furniture around, moved to a different room or opened up an unused space at home to setup a relatively noise free working environment.

The chair needs to be just right

The other big realization is that the chair that we sit on needs to be just right. Many our us had chairs that was OK to sit and play game for a few hours at home but when you are spending longer hours of work that chair becomes extremely important. We arranged to send emergency support missions to provide the work chair from the office to the home of some.

System support is essential

Our technical support team has been playing a very important role during this WFH period. As we went through the weeks of WFH new issues came up on home PC, work environment, access to resources at office etc. that needed direct support from our technical support team. Our systems guys have been busy providing Kaz developers spread throughout the city with technical help over phone and online, even risking a trip to the house to support on site with cables, monitors, internet troubleshooting, VPN setups, hard disc installations, etc. They also worked with our facilities team to switch on developer machines, coordinate access to resources available at the office.

Office needs to be accessible

However well you plan things in a company like ours where there are multiple projects with multiple teams working on separate deadlines and priorities the need for access to the office is essential. We expected this and had on site support at the office made possible by the fact that some office staff stayed next to the office space. Hence it was possible to provide access to any resource at the office on a very short notice. This is one of the key factors for successful full on remote operation.

So our fight against cornovirus continues by staying at home, maintaining social distancing and by working remote only. We plan to do this until all signs of the virus is gone - we pray and hope that it will soon.

Software beyond the pandemic: The Rise of the Drones

rise of the drones.png

With the global pandemic wreaking havoc worldwide, business leaders are scrambling to deal with a wide variety of problems, from slumping sales and stalling supply chains to keeping employees healthy. One of the biggest issues that all business are facing is the changing reality of physical deliveries. This used to be a well established model with your own delivery outfit or outsourced to a delivery platform. The trend was (it’s crazy that I’m using past tense on such a recent thing) crowd-sourced delivery models with concepts like Uber eats coming center stage. The virus has completely disrupted this trending disrupt. And as every business is scrambling to find out new ways of doing deliveries the drones are coming out from amazon marketing stints, concept papers and university lab projects to real viable options.

Word’s first drone delivery service

manna aero.jpg

They are billing it as the “world’s first”, a drone delivery service to carry medicine and food to people forced to self-isolate because of the COVID 19. An Irish startup Manna Aero has begun a drone delivery service in Moneygall, Ireland. They have received permission, obviously rushed because of the virus from Irish Aviation Authority to run drone runs. Their drones are delivering medicine to vulnerable people locked in their homes.

Using custom-developed aerospace grade drones, we deliver directly from restaurants and centralised kitchens to consumer’s homes. We fly at an altitude of 80 metres and a speed of over 80kph - delivering within a 2km radius in less than 3 minutes.​
— Manna Aero

Drones in Africa

A US medical drone company has been delivering blood and medicine to rural hospitals in Africa for the past few years. But now with the virus and the related lock down this technology and experience is coming in very handy. There are already accelerated plans of adopting this technology in California.

Keller Rinaudo wants everyone on earth to have access to basic health care, no matter how hard it is to reach them. With his start-up Zipline, he has created...

The drones can deliver up to 85 km away, and arrive within 30 minutes. Zipline changed the cargo attachment on it’s drones and has been delivering PPE, COVID 19 test samples in Ghana, here’s a story CNN Business about what they are doing.


The funny thing is Zipline starte in California but has no commercial operation in the United States. Coronavirus is changing this dynamics and Zipline is planning to join two other companies - Matternet and Flytex - for an initiative to deploy drones to deliver PPE or medical supplies in three North Carolina cities.

UPS and Matternet are beginning regular drone service at WakeMed hospital in Raleigh, NC. The daily flights will deliver medical samples to the hospital's ma...

Matternet was miles ahead on drone technology and had partnered with UPS for a viable drone delivery platform. The pandemic has only accelerated their go live. Only a few days ago it achieve a milestone in getting a full OK from Federal Aviation Authority (FAA) in US. Which would the gold standard in ushering in the drones to our world. And there is no question coronavirus is playing a part in fast forwarding process. An autonomous drone company needs two types of authorizations:

  1. Permission to fly over people

  2. Permission to fly beyond the visual line of sight of an operator.

Matternet has both these permissions in Switzerland but only #1 in US. To deliver further, the company needs the second one, which is what they are striving to achieve with FAA. Given the national emergency, FAA could grant the authorizations in the name of public interest - moving the needle forward for all other drone companies in US. And that would be the beginning of the age of drones.

The post pandemic world will have drones as the major delivery vehicles. Your next burger could be coming to you from the air! Here’s a Dilbert strip to kill time before it arrives.

drone in dilbert.jpg

Add video conference to your app now

Coronavirus has changed us and changing us. One of the biggest changes to our lives is the move towards reliance on video calls. We are now heavily dependent on video conferencing abilities to get our work done, communicate with friends and family and even strangers. The impact on business software is very significant, with any software platform having the video call capability getting a huge business advantage. This business need and the actual work related need is pushing pretty much every software platform to consider adding or improving video call support on their application.

A recent survey done by Trustradius on more than two thousand businesses have shown that even in the economic uncertainties of the pandemic most businesses are considering additional spend on video conferencing solutions.

Add Video Chat to your App (2).png

Another very interesting trend that is coming out of studies like that is the interest in making remote work permanent even beyond the pandemic. The spend on security software (41%) nearly tripled in the last three weeks of April 2020 this is by itself an indicator of a longer term strategy that companies are taking for remote work. Remote work is being embraced as the norm in the post pandemic world.

Nearly 90% of increased spenders expect to still be using, and paying for, these tools two years from now. 

At Kaz we’ve been working on video conferencing integrations and the WebRTC stack for years. We’ve built one largest platforms for video call based interpretation for hospitals and lawyers in the US. We have worked with the Jitsi stack, customizing it and improving it as the WebRTC itself has been changing. We have also been working extensively on 3rd party APIs such as Twilio to provide video conferencing solutions to our clients.

Here are some of our quick and easy strategies for integrating video conferencing to your application:

Cloud APIs for full integration

There are several very robust cloud solutions that takes away all the pains of setting up video conferencing servers and management by hosting them and giving developers APIs to work with. The beauty of such APIs are that they can be deeply integrated with your application with hooks to features that already exist in your platform. And the development investment of such integration is still very minimal - we are usually talking of days and weeks rather than months and years that a custom video conferencing solution would involve.

Twilio is pretty much the leader in this space, with video as one of their many offerings. Their full coverage on everything to do with online communications from PSTN lines, telephony, VoIP, text, etc. means that you can bring in any feature you can think of for remote conferencing/call/webinar type features. An interesting application we built using Twilio involves letting users call using their cell, punching in a pin code to get access to an online service which is managed by an existing web platform. Essentially opening up the existing service to a very large user base.

Other players in this space include Eyeson, Vonage, Sinch etc. who are all promising to make video call integration super fast. In most cases they are essentially very simple and you could be up and running in a matter of days with full feature video on your app.

Code snippet for Video call app hooks

The less integrated but still a super easy way of bringing in the option of having video calls in your apps is to embed a little script in your platform or your website to have users connect to existing popular video apps such as Skype, Zoom, etc. This is where you are talking about minutes to do the integration rather than days! And in most cases you don’t even need a software developers. Just follow some instructions of where to put the script in and wham you have video calls. Here are some of the popular ones:

skype share.png

Skype

Skype has huge adoption and it’s a good option to add. The way you do it is add a Skype share button. You can get the code and instructions from here: Get Skype Share Button. If you are running a Wordpress site then they have neat plugin to do it: WP plugin for Skype Share.

Zoom

Coronavirus has certainly made Zoom a star in the video call world. Zoom has an API for full integration, but there are 3rd party zoom integration options such as this wordpress plugin

Webex

Webex has a widget that involves just setting up the account and then plugging in the appropriate script to your site to enable webex calls.


//warning: advertising starts now

Want video in your app?

We can help. Just ping us using the button below and we’ll come up with a plan.


//advertising end.

Software beyond the pandemic: VR Workers

VR Workers.png

COVID 19 is changing us. And I’m sure it is changing us permanently. I believe that we will never be able to think and act like pre-pandemic again. There will be a permanent change in our mindset which will hugely impact how we consume technology among every other thing. The taste of doing things remotely weather it is to do your groceries or just plain old video conferences will stay, people will get used to the convenience and continue to use them. I wrote recently about the online explorers about how other forms of consumption such as concerts, events, even travel is and will move towards online deliveries. Today I’m going to rant as to why VR and AR magic we’ve be hearing about so much isn’t where it is supposed to be. These technologies will see a major push because of the virus and we should see major innovation at last beyond the obvious first person shooters in VR and yet another demo AR app that displays information in context.

Virtual Meeting Places and the Virtual You

The obvious niche to fill up first is virtual meeting that are immersive. We could be meeting everyone who is missing (afraid to get out of the house because a crazy virus is ravaging the planet? Apocalypse can happen you know :) ) through AR where the person magically appears before us in the empty seat like Star trek. We could be visiting locations in the virtual space and meeting others with VR glasses (or even without them!). Making strides already in this space are apps like AltspaceVR that almost died in 2017 but thanks to M$ we still have them going strong. And with the coronavirus scare they’ve been seeing a surge in interest.

altspacevr.png


AltSpace is compatible with many VR platform including Vive, Oculus and Gear VR and it also works in 2D mode in Windows and with the Windows Mixed Reality headsets. The Android app has been discontinued and iOS was never supported, so M$ has to come out of it’s partisanship and make it deliver wider.

meetingvr.png

There is similar renewed interest in other meeting technologies. Among them MeetingVR is creating a lot of buzz because of the enterprise focus. It can be the new standard for meetings and collaboration for work for the post Pandemic world.

Engage is another corporate focused VR space platform that is moving fast from this push for effective online meetings. It currently supports most PC based VR devices and a selection of mobile standalone devices. PCs without VR equipment are also covered with the loss of immersion of course.

And the fact that life like avatars are just a few more iterations away means that VR meetings with almost real feel are just round the corner. Leading in this space is who else but the company who has all our pictures and data tagged and flagged - Facebook, making VR avatars look and move exactly like you

Interesting developments also moving fast because of the virus are bridging and integration technologies that would allow developers and user mix and match services to create better experiences and applications. A recent one making headlines is Spaces that bridges VR with Skype, zoom and Hangouts.

This is just the beginning. And it’s about time too. VR and AR has to pay up. And the virtual you is here to stay.

The Cookbook: Inspiring and Engaging People


The cookbook for a hearty company (2).png


passion engagment 1.png

At the heart of passion is love, this is as true for work as it is for our personal lives. Realizing this fact is key to keep people in your team passionate, engaged and happy.

So, how do you create love for the work? Not an easy question, but you begin to find answers when you realize that we instinctively love our own. It’s an evolutionary trait that has kept our species going. When you get people to see your vision, then make it their own by creating parts of that vision, you latch on to that evolutionary trait and create love (yes, even for that measly project management tool of yours!). And love leads to passion. When you hire people you look for passion for their everyday tasks, their craft and then it is your job to inspire them to be passionate about your product. This is how you do it.


Create a clear vision

The trick to great visions (aka mission statements, aka motto, etc.) is that they are honest. It should ring true. People are smart and if you come up with a vision that sounds phony then you’ll go nowhere with them. My favorite quote for this comes from Michale Hyatt

Leadership is more than influence. It is about reminding people of what it is we are trying to build—and why it matters. It is about painting a picture of a better future. It comes down to pointing the way and saying, “C’mon. We can do this!”


Show and sell everyone your vision

You have a vision, a plan, and a destination to go. It is only in your head. It is not something that’s tangible. It is your job to show people your vision. Convince them. Inspire them. Make it their own vision. In the game of business your view of things is significantly different from someone you are hiring. Fact of life: you are driven by your desire to get things done so that your rewards come to you. You are motivated primarily by pursuing your ideas, your vision and your version of reality. Your rewards are not only the significantly higher monetary benefits (which matters a lot of course) but your psychological need to achieve the success that everyone expects from you. You are already sold to the idea, that’s why you are there. But this is completely different from someone you are hiring. She hasn’t seen your vision yet, she is not sold on the idea that this is almost like the cure for cancer.

The only way to sell your vision is by repetition. Create two versions of the vision, a long one and very short one. The long one you use during speeches and when you elaborate and explain. Use the short one as a mnemonic to remind everyone, every day. Have the short one show up everywhere, on your website, on the walls of the office, on your business card, everywhere. At Kaz our short version vision is super simple: we are the power to make great software. The long version includes our goals of making software development fun and creative and about creating a workplace where we are excited to go every morning.

At the end it doesn’t matter how many times you repeat your goals, unless you really believe it and use it as the principle for everything you do. There’s a great little section about mission statements in that wonderful rebel of a book - Rework by the founders of 37Signals:

Standing for something isn’t just about writing it down. It’s about believing it and living it.


Make it everyone’s vision by participation

Communicating and selling your vision to your team is great but it is still yours. Your job is to make it everyone’s vision. The only way that this will be possible is to ask everyone to participate. When you’ve done your job well in spreading your ideas and goals by repetition you’ll start seeing people who are aligning with your ideas. You will also see people who don’t fully agree or have their own versions of a similar vision. The only way forward is to bring all the ideas together. Adapt your ideas to the new thoughts – include them in the longer version of the vision. As long as overarching vision is not altered there is no reason not to. More ideas bring more honesty into your goals. And in the process of this adaptation what was purely yours becomes everyone’s. Remember – people love their own.  

Let everyone define the work scope

As part of creating ownership you have to make sure that the work items, scopes, plans and even the roles for doing those work comes from the team. There should be an overall feeling that we are doing this together rather than this is something we are told to do. This is actually a very easy action item. It saves you from being the big genius who has to come up with everything. You are essentially asking your team to help you structure the work. The moment your team creates its own tasks and work structure they will automatically own it. And by that formula they will love it because it’s their own. Well, it isn’t always like that – what is more likely to happen is that there will be mistakes in the that structuring, there will be disagreements and compromises. But if you expect them, make sure there is scope to change things as the team progresses and realizes what works and what doesn’t work, it will always work out.


Assign roles based on interest and ideas

Once the work structure is in place people need to pick up their tasks. It is extremely important that resources pick up the work they find most interesting. This is what will lead them to engage more with the work and love it. In most work scenarios you’ll find that people are capable of working happily in many areas of the project. But that is not what you are looking for – plain old capability. What you want is love and you get it only in drilling down and finding the right match. A classic example in the software world are full stack developers who can work on pretty much any part of the software development. But every full stack developer I’ve met had a special interest about a particular section of the application. They would have worked effectively in any section but only in that special section will they put in their best effort. And it is not just the best effort that you get out of this, by enabling them to work on areas they love you are bringing in the passion that will get you work outputs that are far beyond the sum of their individual parts.


Keep work goals human sized and own-able

Most giants are not lovable. And most products are giants. They are too big for a single person or a small group to own and identify with. The work needs to be broken down to sizes that individuals or small teams can take over. This way of breaking down a complex work into smaller individual ownership means that the full ownership of work can happen.

Let the team members be the owners of the tasks they do. Which means you create a process where work items and outputs can fully be taken over by a person or a group of people. They define how they get the job done and what they do to deliver the output. The alternative to this would be some kind of central ownership, levels of management where what an individual group does and how they do it is defined by someone outside that group and that is the beginning of the disconnect from the work at hand. In the software world this is actually quite easy, you can always break down that big product of yours to a module that manages data, another which displays the data, etc. But I would argue this model of breakdown is possible in any industry if you are willing to think along those lines. A related theme in this thinking is the concept of keeping the company small even though there are commercial pressure and possibility to be big. Many of the rationales for that theme works for this action item of keeping work structures small, human sized and creating ownership. A classic in this genre is Small Giants: Companies That Choose to Be Great Instead of Big by Bo Burlingham.  


Create opportunities to show off work

It’s important, for human psychology, to show off the output of you passion. It makes us proud, it rationalizes the seemingly irrational passion have for what we do. It creates pride – one of the biggest signs of a hearty company.

Create as many opportunities you can to show off work. These could be in meetings with the management, a little internal seminar to showcase features, a page in the intranet for the group, posts in the blog. Make one off events to show off major successes. These act both as an opportunity to show off and also as closure for the teams.


Celebrate Victories

Celebrating major wins and deliveries signals the team the importance of their work. This reinforces the feeling that what they are doing is valuable and so their love for their work is justified. In human relationships, love may not need external justification but for work it is essential. There is a constant need for encouragement and reinforcement for a team to feel that they are doing the right thing. Celebrating major deliveries is a big encouragement. The celebrations don’t need to be anything big, a surprise pizza or a team dinner treat might be just perfect. At Kaz we have small celebrations like pizzas for a big bug fix along with bigger ones like small break at the beach for a big launch.


Use we and us and never you and them

With all the talk of smaller teams and individual ownership there is a chance of creating a feeling of little islands within a product team. So you as the leader need to make sure that doesn’t get out of control. At the end the teams or individuals need to feel that together they are achieving their goal. That they all have a common love. The most important way this feeling of commonality spreads and stays is by the simple use of the pronouns everyone use in everyday conversation. You as the leader will need to monitor this and nudge it in the right direction. Always stay in the inclusive us, our and we and never you, their and them. If you hear you or them fix them right away, this cannot wait. If someone says “they created the bug” immediately repeat that sentence, with an inclusive pronoun, like “we have a bug we need to fix”. As you practice this you’ll find that it’s pretty easy, most of the time replacing the pronouns and slightly modifying the sentence so that it doesn’t sound that you are correcting someone directly works just fine.


Further Reading


  1. Rework - Jason Fried & David Hansson (Founders of 37Signals)

    Here’s a book that you should read anytime you feel like you are agreeing with everything you hear. A complete rebel that comes up with lines like “meetings are toxic”, “ignore the real world”. Read it now before you read anything else!

  2. Small Giants: Companies That Choose to Be Great Instead of Big - Bo Burlingham

    Interesting read about companies who stayed small intentionally. Some very interesting stories and thoughts.



Software beyond the pandemic: The Rise of the Online Explorers

The online explorer.png

This infernal COVID 19 pandemic isn’t going away so easy - we just have accept this fact and move forward. Moving forward means - adapting. We are all adapting. Most companies in the world has adapted to the concept of work from home. It felt like a very difficult task, specially for the industries that were not IT driven, but as with any new concept - once the wrinkles has been ironed out it’s working out fine. In every industry, in every country in the world people are coming up with innovative solutions of adapting their work and life around the facts of social distancing and lock down. Software world is probably the most prepared for that adaptation, we after all are the facilitators for most of the adaptation with technologies like online conferencing, project management, file sharing, come to think of it, online (and offline) everything! But beyond the facilitation and the continuation of the old paradigms we also have to start thinking of how the world will change, how the new world beyond the pandemic (yes there will end to this someday, there has always been one, even black death) will change it’s behavior for consumption, software usage and living it’s life.

We don’t know. We can only predict. But what we know for sure is that there will be many permanent change to how we lead our lives. And as the leaders of change, us software people have to come up with new ways of doing things.

Online concerts and events

Here’s one change that has already started: online experiences for what used to be face to face events. With the lock down in place events like stand up comedy, football games or concerts can’t take place anymore. The alternative is to have them online of course. And we see that happening in many platforms. A great starter event for this new way of doing things came when the greats like Lady Gaga, Stevie Wonder, Shahrukh Khan, and many others came together to support the WHO with an online streamed show recently that raised almost $128 million for the COVID-19 Solidarity Response Fund, as well as local charities that are fighting the coronavirus.  

online event.png

This overall movement towards online events is a natural progression from where we where before the pandemic. The virus only pushed us more and accelerated us in this direction. What is more interesting is:

“Will this become the new normal beyond the pandemic?”

I would argue yes. The pandemic will change our mindset about online entertainment, it is giving us a taste of the ease of online live streamed events and we like what we taste. On top of this our habit in consuming such events over prolonged time of the social distancing along with residual fear that will likely to remain for a while after the dust has settled will cement the success of these online experiences.

In line with that thinking online venues (the alternate of concert houses and stadiums) are coming up everywhere. Facebook pages like the billboard are picking up huge views. Pickathon launched the series "A Concert A Day" on April 8, which raises money for the MusiCares COVID-19 Relief Fund. Every day through June 7, at 1 pm PST and 4 pm EST, a new performance will be premiered or livestreamed via the Recording Academy's Facebook page, Amazon Music's Twitch channel, and Pickathon's YouTube channel. Featured artists include Margo Price, Mac DeMarco, Tyler Childers, and Foxygen. This is just the beginning.

Beyond online concerts

The interesting trend is that the online experience is going far beyond the old concerts and event streaming that we were used to in the good old days of pre-pandemic world (aka ancient times of 2019). Airbnb for example has focused on hosting “online experiences” as an alternative to their hosting your house for strangers mode. In their words:

airbnb online experiences.png
dogs of chernobyl.png

These online experiences are as varied as their hosts are imaginative. You can cook with a family from Morocco or go out with someone and check out how the dogs are doing in the post nuclear accident Chernobyl.

This is the face of the new online exploration. This is just the beginning. There is so much more that can happen in this space that is unexplored. Take trips to interesting places for example. The obvious space for that is arm chair based world travelers who asks local experts to visit places they want to see, look at things they want to look. This already existed with 3D videos (and VR apps) like visiting Angkor Wat virtually or Vineyards but the post pandemic world will likely see an explosion of interest for such online explorations.

VR and AR technologies will need to catch up with human expectation for such online experiences. So that is the new horizon for hardware improvements for sure. Again it was going that way anyway, but the pandemic just pushed it harder and the demand for this will be much more stronger than the lukewarm early adopter space it was hovering around in.

Looking forward to that brave new world of online explorations. Life will be interesting. One little pesky virus will not put the spirit of human exploration down for sure. We are working on it but stay safe for now though :)

The Cookbook: Finding and Hiring People (part 2)

The cookbook for a hearty company chapter 1.png

This is the part 2 in the section about finding and hiring talent in a hearty company. Check out the previous section with the button above. And click here read from the start.

passion hiring actions 3.png

 

People are passionate only about jobs they love. And jobs they love are the jobs their personality, intellect, skill, habits, worldview and most importantly their mindset is a good fit for. Every job role has a certain fit. Some people fit it, some don’t. What you hope to find is the closest fit amongst the people you get sufficiently interested to apply for the role.

#1 and #2 are about pinning down the requirements for the fit. When you need to hire people your first action should be to define the job role. Create a detailed list of tasks that the person doing the job will do. Without this list the job advertisement will be wrong, which will lead to the wrong people applying (or too many applying) and at the end you will not be able to test the candidates for the fit.

#3 of having a filter in the application process is a neat trick to check for the fit earlier on in the application process. There are many ways to do this and you need to think of one that works for your industry or job role. Our trick in a typical software job post would be to ask the applicant to solve a certain programming problem and apply with the answer to the problem, or for quality assurance job posts we might put in some typos and ask them to tell us what was wrong with the job post. The beauty of this filtering tricks is that it immediately cuts out people I call the “robo-applicants”, people who are not really interested about your job in particular (hence pretty good chance they are not a good fit) but are applying just because it’s easy to send an email. This early filtering also gives you hints about the candidates who might be a good fit but would otherwise have been rejected for their poorly construed resume or cover letter. This is usually a big problem in engineering and technical jobs. One of the best developers we ever hired at Kaz was someone who had sent a poorly formatted Word document CV that misspelled most of the technologies he had worked in. Yet his email had the right subject line deciphered from our cryptic instructions of how to submit the CV, which I give below:

Please email with your resume with a short description of why this job is right for you ZW1haWwgc3ViamVjdCBzaG91bGQgYmU6ICJOZXh0IFN0ZXZlIEpvYnMi   

This may look like some kind of error in the copy but to the people we were interested in it was just a base64 encrypted string that said - email subject should be: "Next Steve Jobs". All they had to do was use an online decoder to find that string and put that into the email subject. An instant free and crowdsourced filtering for us! Obviously base64 encrypted instruction might not be the right thing for your industry but you can always think of something similar that does this kind of filter early on in the application process.

The audio only interview of #4 is important for a low cost filtering but also more importantly to assess someone without any visual ques. We get biased by visual factors, how a candidate looks, how she dresses, how she smiles, etc. There are considerable data to prove that we tend to like and thus hire people who look or behave like us. A classic in this area is chapter on liking in Robert Cialdini’s book Influence the psychology of persuasion where he relates:

In one study, done in the early 1970s when young people tended to dress either in “hippie” or “straight” fashion, experimenters donned hippie or straight attire and asked college students on campus for a dime to make a phone call. When the experimenter was dressed in the same way as the student, the request was granted in more than two thirds of the instances; but when the student and requester were dissimilarly dressed, the dime was provided less than half the time. [The dime-request experiment was conducted by Emswiller et al. (1971)]

Impressive clothing, posture or even sometimes perfume can bias our decisions. An audio interview reduces the chances of this bias during the initial phases of filtering candidates.

#5 is about avoiding the classic mistake many make. The candidate you are considering must actually do the tasks she is supposed to do during the interview rather than talk about those tasks. This is the only way to really judge if the candidate is a good fit or not. It’s easy to say how you would do something theoretically, answer interview questions that are mostly leaked on sites out there but unless the candidate actually does some of the tasks, you will never know how good or bad she is at doing them. Joel Spolskey sums it up nicely when says “Would you hire a magician without asking them to show you some magic tricks?” in his superb Smart and gets things done… book. The ideal way you should do it is get them to do a simple task in front of everyone and then give them a bigger task to do where the candidates gets some time to finish it by themselves. The first simple task is so that you can see quickly in a granular way if that person’s work style and thinking fits with the rest of the team. It also lets you check the confidence level and the ability to take in stress while actually doing a typical task. At Kaz we sometime ask the candidate to solve simple programming problem like sorting an array of numbers by writing it out on a whiteboard. Great way to see how she is thinking about it, how focused she can be with the stress of people staring at her work, how she handles the stress of writing the code without the help of an IDE which would help her with the syntax of the code, etc. The longer task is more to test a normal situation and see what the end result is both in terms of time it took and the quality of this relatively stress free task. If you are from the software world, Joel’s book or his blog is a must read in this space.

#6 point of creating at least one stress situation is all about testing the candidate for their ability to handle stress. Most interviews tend to be a very congenial affair, which is expected – we meet people we don’t know at all in business settings. So people stay nice and reserved. But most jobs are not like that, you absolutely need to know how this polite and nice guy will react when he is under stress. That is why you have to ensure that your interview team creates a stress test of some kind. Without your instruction or plan that just won’t happen. An easy way we do this at Kaz is by having one of us be the bad guy and try opposing everything that the candidate is saying – intentionally being wrong in some cases to see if and how the candidate counters this. This tactics only works well if you do this after breaking the ice a bit, so that the candidate feels comfortable voicing their concerns. In the software world this is relatively easy as you can say something that is obviously technically wrong and see how the candidate responds to that.

#7 is the take home task which lead to the possibility of seeing, if the stress of the onsite interview and the time constraints are taken off, how the candidate performs. In some sense this mimics a typical situation for the candidate after she has joined the company and have become more relaxed as she becomes familiar with the work and the teammates. This also tests a bit of how remote work might work out with this person.

#8 is to ensure that everyone agrees on the fit. Decisions on fit is always difficult, and it’s easy to be biased. I, for example, always like someone who can think of quick ways of fixing things in a programming problem. Great trait for sure for a startup trying to get their first prototype up but not a good fit when you are building a software that needs to be very stable. As a person it’s very hard for me to change my tests for fit and not be biased. This is why having multiple interviewers helps address that issue. And putting a rule that everyone needs to agree about a candidate for a hire ensures that a dominating bias doesn’t dominate hiring decisions. But when I say multiple how many do I mean? We’ve settled for a maximum of three. Keeping the number odd helps us from getting ties. But there are some interesting research work available in this front. For example in a study to find how many reviewers it took to achieve good decisions on candidates it was found that with a group of three the chances of making a wrong decision falls to just 6%. So that number of interviewers doesn’t have to be too big.

#9 is also about avoiding bias. References in a resume are pretty much guaranteed to tell positive things about a candidate. Listening to that feedback before the actual interview skews your view of the candidate and prevents you from independently making an assessment. So if you do want to check references (we rarely do), check after you’ve found the candidate to be a good fit and you are just checking to find if there are anything that you might have missed.

#10 is a bit controversial, but makes sense if you think about how much time and energy you’ll save by choosing a candidate early. The goal of the hiring process is finding the fit. If you find a fit it’s usually good enough. Yes there is always a chance that there might be someone “fitter” in your list but most of the times the benefits of choosing the current fit offsets the risk of losing out on a talent you haven’t interviewed yet. Obviously for this to work your test for fit needs to be good, but if you followed all the others in this list you should be there!

 

passion hiring actions 4.png


Once you have found the person you want to hire you have to make him an offer he can’t refuse. But what is that offer supposed to be? Having a fair reward structure is core to keeping people happy and content – the cardinal goal of a hearty company. People are not solely money driven, so happy people doesn’t necessarily mean the most paid people. Money obviously matters but it is only part of the fairness equation. People need to feel that they getting paid fairly for the value they add to the company but they also need to feel that their pay is consistent with others around them. Having a consistent pay scale that you stick to no matter what is much more important than being the highest payer in the block. I would argue that being branded the highest payer is actually detrimental to the concept of the hearty company because you then highlight money as core value and also attract the wrong set of people.

#1 and #2 are about the concept that a hearty company should not highlight money. Money should always feel like it’s a side benefit of following your passion. Conversations about your company should not lead to the fact that you are the top payer or that your benefits packages are the best. Don’t get me wrong here, you should definitely try to be the top payer – that is your insurance for hiring and retaining the top talents – but you never advertise it as such. You should absolutely make sure that you never mention money internal conversations. People should never feel like that the only reason they are with you is that you pay well. The reason for this is simple, money is single dimensional. It’s a number and anyone new in the block can increase that number and take away your spot. If that number is your only advantage, if that is what your people feel is the only reason to be with you then you will always lose. Aside for this simple business logic, there is something about the single dimensionality of money that destroys the feeling of belonging in a group. It reduces the bonds that hold a team together and reduces the feeling of passion people bring in. It is one thing that destroys the feeling of a hearty company the quickest. In the context of hiring, when you offer someone a job she should feel that she is getting the chance to become a part of a family where she can feel safe and add value. Part of that feeling will come from the offer you place in front of her but part of it should come from your existing reputation as an organization, from stories she has heard about your company and from the experience she herself has gone through during the interviewing process.

#3 and #4 is the most important action you can take to create a feeling of fairness. Fact of life: people will know the salaries the company pays whether you keep it a secret or not. If you have structured scale where people are paid by the value they add then it all feels fair. Having a scale also means that there is no fun in a discussion of salaries since it pretty obvious. The trick is to make sure you put people in the right spot in the scale. The key to putting people on the right spot is to assess, fairly, what value they add and make sure that the person is in spot in the scale where others in that same spot adds similar value. This is very hard. Try to make this value calculation as objective as you can. This is where you need to come up with your methods. In the software world it’s relatively easy, if the hiring process is good then people coming in would have the same kind of skill for a given number of years of experience. So you can, almost, place them purely on the number of years of experience. This probably works for most industries. However, remember there are more dimensions to the value a person adds than just her number of years of experience. Some people are just plain and simple geniuses in their abilities, the value they bring cannot be just a function of years of experience. In multiple studies over the years it’s proven that “there are order-of-magnitude differences among programmers" (Great read in this area for the software world - Code complete 2), here’s quote the original study from the 60s [Sackman, Erikson, and Grant (1968)]

Impressive clothing, posture or even sometimes perfume can bias our decisions. An audio interview reduces the chances of this bias during the initial phases of filtering candidates.
— Steve McConnell (from Code Complete)


Another not so easy to pin down value is the emotional quotient of people. Some people are just great at bringing a group together, they are good communicators or good people to inspire the team to go through hard times. These are very tangible values that needs to be factored into your calculations. When you find people with exceptional qualities, you put them at a higher point on your scale to reward them for the value they bring in. You are still sticking to your scale, but your calculation for the value is just multidimensional. It’s easy to get things wrong here, and create a feeling of unfairness in this space. A common situation is where similarly experienced resources are suddenly in different points of the scale which creates dissatisfaction. You need to do two things to address this, a) you make sure that only exceptionally gifted resources are moved up the scale and not just a bump up to make the offer better for someone, b) make everyone aware, in whatever way it feels right, that this person is exceptionally gifted and so that everyone knows about the possible bump in the salary. Not easy, but doable. There is one way to avoid this problem completely: only hire exceptional people, then you can stick to the scale religiously on some single dimension!

#5 may not feel right for a lot of people. We are used to “bonuses”, “cash incentives” even little plaques and prizes for good work. But my own experience and a lot of research in this space shows that such performance tied rewards are actually detrimental to the quality of work. Rewards bring out the feeling of money that we try to avoid in a hearty company. Again – you are doing what you do because you love doing it and because you are helping your friends at work and your company in the process. This is what you were hired to do, and you were hired because you are good at this. So success is expected, good work is by default. Reward is also guaranteed by the salary you received. No external reward should dangle in front of you to make you work harder, you work hard because you want to. Putting special bonuses destroys this and makes the bonus the main objective. When there is no bonus it starts to feel less important. These external rewards are also demeaning to the people as it starts to treat them as children whom you can bribe with toy here and there. There are also ample research data that supports this point. A great read for a summary of these research work is Punished by reward by Alfie Kohn.

For nearly half a century, research has raised troubling questions about the practice of dangling rewards in front of people to get them to do what we want. It doesn’t matter whether the people in question are male or female, children or adults. It doesn’t matter whether the rewards are stickers, food, grades, or money. It doesn’t matter whether the goal is to get them to work harder, learn better, act nicely, or lose weight. What the studies keep telling us is that rewards, like punishments, tend not only to be ineffective — particularly over the long haul — but often to undermine the very thing we’re trying to promote.
— Alfie Khon (Punished by Reward)



 #6 is about not giving the feeling to the candidate that you are trying to give her a bad deal. Offering the best offer you can afford (and with a scale in place that’s easy) right away sets the tone of a resources involvement with your company. They feel that they are being valued, and there is no feeling of distrust where you trying to con them into a lower salary. At the end of the day the little that you might have saved in giving a lower salary you would lose a hundred times over by the loss of trust that you create. You will pay a compound interest on that loss of trust over the full length of the time that resource is with you – in lost enthusiasm for work, in feelings of not being safe and most importantly in the distrust in your words and vision. Every resource should feel like you are doing the best you can within the business economics you are restricted in.

#7 is again about avoiding money driven individuals I hinted about in #1 and #2. I bring up the point again because after the initial offer you will have an early test of how money driven this person is. If the only matrix the person is interested is money then it should be an easy decision on your part to not go forward with the hiring. With the action of #6 you already don’t have an option to change the salary – the only option you have is to re-evaluate the spot in the scale. You can always check if you have missed any experience or some exceptional skills of the resource during your calculations. But also test how money driven that person is during this phase. Remember that a money driven person will always be on the lookout for another opening out there offering even more money. A hearty company can never be built with this mindset.

#8 is about making sure that the investment in time and energy you made in choosing candidates do not all go waste when you fail to hire someone. Always keep the options open to hire that person somewhere down the line. Stay connected. Put them in your mailing list. Drip market them with stories about your company – about how good you are doing or what great things you are making. Passionate people will always be interested to re-consider – maybe not right away but at point in the future. And when they do reconsider you save a lot by bypassing most of the hiring process. Some of the best employees at Kaz are people we couldn’t entice the first time round but came back to us later. One of them seven years after the first offer!

Further Reading

  1. Blog: Joel on Software https://www.joelonsoftware.com/

    Joel Spolsky’s writing in this blog has inspired me to do a lot of experiments at Kaz. Many of my greatest hits come from here. But many of his ideas failed badly too. Whatever the case it’s are a must read if you are in the software world. And some of his ideas work for pretty much any domains. Really good read, sadly he doesn’t write anymore on the blog.

  2. Smart and Gets Things Done: Joel Spolsky's Concise Guide to Finding the Best Technical Talent - Joel Spolsky

    Book version of his blog on topics specifically about hiring. Perfect thing to have when you want to quickly check some ideas.

  3. Influence: Science and Practice - Robert Cialdini

    A classic in the psychology of persuasion where the author comes up with a list of common persuasion techniques based on extensive research work in this interesting area. A good read on it’s own, but superb also to build up your skills for convincing people to follow you - must skill in this business of setting up an organization!

  4. Code Complete: A Practical Handbook of Software Construction - Steve McConnell

    A wonderful classic for writing good software. It has some timeless sections on software team dynamics. Here’s a section that relates to how years of experience doesn’t tell you anything in the software engineering talent world:

    “They studied professional programmers with an average of 7 years' experience and found that the ratio of initial coding time between the best and worst programmers was about 20 to 1; the ratio of debugging times over 25 to 1; of program size 5 to 1; and of program execution speed about 10 to 1. They found no relationship between a programmer's amount of experience and code quality or productivity.

    Detailed examination of Sackman, Erickson, and Grant's findings shows some flaws in their methodology... However, even after accounting for the flaws, their data still shows more than a 10-fold difference between the best programmers and the worst.

    In years since the original study, the general finding that "There are order-of-magnitude differences among programmers" has been confirmed by many other studies of professional programmers (Curtis 1981, Mills 1983, DeMarco and Lister 1985, Curtis et al. 1986, Card 1987, Boehm and Papaccio 1988, Valett and McGarry 1989, Boehm et al 2000)”

  5. Punished by Reward - Alfie Kohn

    Must read for those who think that dangling a bonus or little plaque is the only way to get people to be more productive and effective. At the very least this post on his blog is a great read: Bonus effect







The Cookbook: Finding and Hiring People (part 1)

Ingredient: Passion

 

Passion comes from the people. So getting this ingredient right is really about hiring the right people and keeping them motivated, engaged and inspired.

The cookbook for a hearty company chapter 1.png

When you are building your team and hiring people, you are really hiring their passion. You’d think hiring someone with the right resume, the right experience and skill should be your goal. But it is not. Your goal is to find the person who has the passion to do what you want her to do. Without that passion all those certificates, skills and references mean nothing. Passion is what makes us do things right, it is what makes us not just finish a task but make sure that it really solves the problem that it is supposed to solve.

Fact of life is whatever you are making, it is probably not the cure for cancer. You may stay awake thinking about how your software platform will change the way people will manage projects in the future, but someone you are hiring will not be so enthused. So your job is to find the people who are passionate about their craft, everyday work – the immediate little task they have to do. That’s how you start and then if you take the right of steps you’ll be inspire them to see your version of reality, sell them your vision that will lead them to be passionate for your product. This is the end goal. But this second level of passion doesn’t happen without the first, the more granular level of passion for every day work.  The good news is that the first level of passion is easy to identify if you follow some steps. And then once you have the right set of people, the second level is once again just as easy. I will go over the list of steps to achieve both those levels in this section. But first let’s take the fuzziness out of the word “passion” in this context (once again, my promise in this cookbook is to take out all the hand wavy things and make them as concrete as possible).

People with passion for what they do are simply people who are a good fit for those tasks.

This essentially means that for any set of tasks there’s a certain type of personality, mindset and skill required to make someone be passionate of those tasks. That is the good fit you are looking for. If you find the fit, you are guaranteed to have found the passion. This also means that someone who is passionate for some parts of the work that needs to be done will not necessarily be passionate about other parts. So you will always have to balance your test for good fit (aka passion) so that your team as a group has passion for everything you need them to do. Classic example in my world: someone who is passionate about the look and feel of a website may completely hate working on the server side codes that generates the data that shows up on that website. And for me to succeed I need both these types of passion.

OK, enough of theory. Let’s get to those action items I promised. I’m going to break down this ingredient into a series of topics and then put in the actions within those topics.



section ends.png


Finding and hiring people

 
passion hiring actions 1.png

Hiring decisions are the most important decisions you will make in an organization. It is the single most significant factor that determines chances of success for an enterprise. This is one place you cannot cut corners or take a short cut. Save time or money on other things, skip a few meetings, get rid of the free coffee if you absolutely must (actually scrap that, it’s a really bad idea) but don’t skimp on the hiring process. If you don’t get the right people you’ll never get the right product. And if you hire someone who is not a good fit, then firing her is way more expensive (cost, loss in productivity and the hit in morale) than the cost of running a good hiring process.

#1 and #2 are about making sure that you and your team choose the person you are hiring. Hire directly and let the team, which is the hire for, make the final decision on the hire. Why? Because a third party such as an agency or even your HR department, will never have a proper understanding about your team’s needs and culture. They will always go by certain metrics like certificates, degrees and experience of a candidate. Good agencies may even try to understand your work culture and try the fit but it will never be as good as your judgement. Work relationships are dependent on human relationships. Only your team will be able feel if of a person will fit with them or not. Not just in work habits but also as a person. Some companies try to counter this point by saying that they let the agency just filter out people so that they can choose from a selected few. But isn’t that just the same? An agency will never be able to identify a candidate who can spot a single weird bug in a page code in a minute, when she has no formal education in software. A candidate like that will be lost during most third party filtering effort.

#3 point about a face to face onsite interview is extremely important. We use much more than our voice to communicate. A face to face interview brings those nonverbal modes of communication out for a check by the team. How your face changes when someone challenges you in a technical debate has huge implications as to if you’d play a good part in that debate or if you’d intimidate (or be intimidated) and reduce the value of the debate. It’s important to test these reactions during the onsite interview.

#4 and #5 is to ensure that the team understands the importance of the hiring process and gives it enough attention. The hiring process takes time and energy of the team. It’s also very distracting, taking the team away from important work at hand. And the worst of all it’s a pain and no one likes to do it. Hence, you as the leader need to make this the priority task. Pushing everything out of the way and making this the most important task is the only way you’ll get the team motivated enough to concentrate on the hiring process. It is definitely bad for the project at hand, in the short term, delaying things but you know that in the long term it is the best thing for the team. So this prioritization is correct.

#6 is all about making the sometimes tedious interview process more enjoyable. When you running a hiring process a team could be spending days going through resumes, interviewing, checking results of a test, etc. If you don’t make it fun for the team somehow there is no way this will run in full steam. Remember you team was never a good fit for running interviews! So they will never have the passion for this. So think of ways of making it interesting. Throw in a few pizzas in the process or even a little party celebrating a good hire This is one area that you should read up to get ideas, there are a lot of books on hiring that goes over this topic, my personal favorite is chapter 8 in Building Great Software Engineering Teams.

#7 is about not settling for a sub optimal fit just to get out of the hiring process – a shortcut. Sometimes you’ll find that none of the candidates fit the role. You’d be tempted to compromise but every time I’ve made that compromise I’ve regretted later on. It is much better to not hire, suffer the consequences of delays and more interviewees than to hire someone who is not the right person for a role and hope things will work out.

passion hiring actions 2.png

Great resources are always in demand. And since they love what they do they are very unlikely to move jobs a lot. Combine those two facts and you’ll realize that the chances of you finding great resources are very slim. You have to take definite action to attract the attention of great resources, create interest and keep them interested so that when the time comes they feel they should try out a new job opening at your place. Chapter 2 in Joel’s book is a must read (or the blog article where it came from) for this if you are in the software world. Here’s a great quote from there:

Instead of thinking as recruiting as a “gather resumes, filter resumes” procedure, you’re going to have to think of it as a “track down the winners and make them talk to you” procedure.

#1 is all about creating assets that will work for you to attract talents to your company. These days these assets probably are platforms like Twitter, Facebook and Linkedin but obviously new platforms and modes are coming up and you have to be aware where your target talents are. Posting interesting and informative posts on our Facebook and Linkedin pages has been one of the best ways to create interest in the developer community about us. This has gone to a point where sometime we don’t even advertise a job at all on job sites – a post on our page gets us the very filtered, interested and engaged resources we want to consider. And the beauty of using a social media asset is that the candidates are already convinced that they want to work for you. Remember that you have to have a plan on social media posting. You’ll first need to identify the topics that would interest your target talents. Then use that to create interesting post that people will engage with. It will take some time, but it is absolutely essential.

#2 and #3 is an extension to the idea of creating an interest in your target group that goes beyond some posts in social media. By contributing and building your company’s image in the community you are investing in your branding and helping create the right perception in your target talents. In the software space this could be creating an open source project that is used by a developers all over the world or helping a school for the under privileged like we do. Being active in online forums (and obviously offline ones) takes up time. So this has to be part of the job responsibility of someone in your team, ideally you.

#4 is about creating great content that helps your target group. This content could be in a blog that people visit or videos that you host on youtube, etc. The goal is to make the content become really useful part of daily work of people you want to hire. The value of this in creating a positive impression about your company and registering to stay updated is significant.

#5 is the best option you have if you are fine with accepting fresh new candidates. An internship process is really an extended interview, or it should be. Your goal for an internship program should never be to get some cheap labor to do some of your grunt work. It is a complete waste of everyone’s time that way. You should instead think of the intern as a possible hire, whom you are helping to achieve the fit you require and in that process evaluating her success and ability to learn. Since they are possible hires, all interns should go through a filtering process, so that you only start with the most likely hires.

 #6 is to ensure that you always have a way for people to send you’re their resumes at any time. If you do your social outreach properly you’ll find that people remember you and they reach out to you when they want to switch jobs or just want you to consider them. This is a great way for you to build up your library of resumes and also to find great talents you might have missed.  

OK, I’ll stop here today, watch out for part 2 where I go over the list of ideas and actions for finding the best fit and what to offer them.

Stay safe, stay home, we will win against this coronavirus.

Further Reading

  1. Blog: Joel on Software https://www.joelonsoftware.com/

    Joel Spolsky’s writing in this blog has inspired me to do a lot of experiments at Kaz. Many of my greatest hits come from here. But many of his ideas failed badly too. Whatever the case it’s are a must read if you are in the software world. And some of his ideas work for pretty much any domains. Really good read, sadly he doesn’t write anymore on the blog.

  2. Smart and Gets Things Done: Joel Spolsky's Concise Guide to Finding the Best Technical Talent

    Book version of his blog on topics specifically about hiring. Perfect thing to have when you want to quickly check some ideas.

  3. Building Great Software Engineering Teams

    A book that I’ve used a lot for tuning my interview process. Not so sure about the rest of the book, but chapter 7 & 8 are superb.

The cookbook for a hearty company

The cookbook for a hearty company (1).png

Staying at home when there's a beautiful day waiting just outside the window is never my thing. But that's my reality, our reality, now with this coronavirus in the air. I woke up this morning and decided that now is my only chance to write that little cookbook I always wanted to write. A book that I wish I had when I started my company sixteen years ago. A handbook that would not be a lot of theory but would give me clear actionable ideas for creating a great company, that is compassionate during good times and resilient during bad times.

When I started my company, I assumed that there would be a bunch of books like that telling me what I needed to do to make such a strong company. Like a cookbook that I follow to make a hearty soup, I would just follow the recipe step by step and end up with a hearty company. A place where people would actually love to work. A company built to last.

My hope of finding such a book was not unexpected. As a software developer all my life I was used to "missing manuals", "cookbooks", "cheat sheets" for learning a new technology and getting things done quickly. I was extremely surprised to find that there were no such "cookbooks" around. Sure, there were great books on teamwork, about company culture, HR or organizational behavior, even software teams but none that would cover the wide range of issues that a new entrepreneur faces every day. None that would give her the answers to her questions quickly and with facts and data to support those answers when she needed the rationale. The fact of life is that when you are in the whirlwind of creating a new business you just do not have the time or energy to read through and assimilate theoretical books about company structure or project management. At times like those, you want, just as I did, a cookbook that just gives you the steps. You want someone else to have read through, try and test all the theories and just let you know what worked, why it worked and what you should do if you want it to work for you.

I didn't have that.

I had to, just like millions of others before and after me, plod through with whatever I knew, whatever I could read up and whatever my mentors could tell me. I made a lot of mistakes and learnt from them. But I also did a lot of things right. Today, Kaz is a company that is widely admired for its workplace culture, for the quality of our work and most importantly for the bond between its people. I am happy with what I have achieved. Yet I feel I've lost a lot of time doing things that others before me have done and failed. If I had only known, if I had that book I would have been miles ahead. I could've achieved even more in this time.

So that is what I want to write. That missing cookbook.

I want my handbook to be exactly the way I wish I had it. In each chapter I will start with a section - Ideas that will be the summary of the principles that matter and the actions you take to fulfill that principle. This would be what I'd have used when I was on the run and just wanted to quickly check what I needed to do in a certain situation. A good example is:

Idea: People need to feel safe to feel trusted.

Actions:

  • Place the seats where there is a wall at the back and someone can only be approached from the front.

  • ...

I will then have a section to explain those ideas properly - Explanation. This is for when you have more time to understand the rationale behind the ideas. This is where I will try convincing the reader why these ideas matter, why they work. I will share my own experience and any data I have to support the idea.

And lastly I will have a section for further reading - this is for people, like me, who are always skeptical about anything they read and want to form their own opinions (when they have the time to read up!).

The hearty company

Let me first define what I’m trying achieve, what do I mean when I say a hearty company.

The hearty company is an organization which has the following qualities,

  • Happiness: a hearty company is an organization where the people are happy to work. Happiness starts from the point where an employee feels excited and happy in the morning to go to work. It continues in her experience in working on projects at the company, in her conversations with her colleagues, in her interactions over the digital space. Happy is the workplace where the employees actually bond outside of the company's time.

  • Resilience: a hearty company does not break down during bad times. It's easy to be strong when the business is good but being able to survive when the business is bad, when resources are difficult is the biggest test. That is resilience and it is the biggest insurance that a company has to survive hardship.

  • Strength: a hearty company is strong. It has the strength to take on new challenges, it is confident that it will deliver and it will always win. You see that strength everywhere you go within the company, in every conversation you have. People feel like they know exactly what they are doing and what they are supposed to do. They feel they and their team has the ability to pull anything off and they have control over their work.

  • Fearlessness: a hearty company is fearless in it's actions. It can change directions quickly and move to new things and take up new challenges. People in such companies brag about how open and relaxed the work environment is. How they can voice their concerns without worrying about repercussions. You don't hear that there are political struggles going on in such organizations.

  • Flexibility: a hearty company is not rigid about it's rules and modes of operation. It knows that there are no perfect set of rules that a company can run by and it knows that rules that worked in the past may not work as the time and context changes. So it adapts, adjusts and transforms itself without a lot of red tape. The changes it makes to itself can also be to adapt to the changes in the business landscape.

  • Pride: and at the end a hearty company is proud of itself. People feel good working at the company. They feel good to tell their friends and family what they do and the company they work. They share with pride how they are different from others around them.

The recipe

The secret to a hearty company is simple.

A hearty company is made of just four ingredients in equal amounts. Get those ingredients right, get them balanced and you are guaranteed to get great results. It is at the end one of those recipes you just can’t get wrong if you have the ingredients right and do the steps right. It's been proven time and time, over hundreds of thousands of companies all around the world. There is no need to reinvent the wheel, no need to do a doctorate in organizational behavior. Just follow the steps to make sure you've got the four ingredients covered and you've got a winner.

So here are those ingredients.

hearty company recipe.png



In the rest of the posts on this thread I'm going to go through each of these ingredients and give you the exact steps that you need to take to make sure you have the full portion of that ingredient in your mix.

Looking forward to meeting you on my next post where I start with my favorite ingredient Passion.

Stay safe in these uncertain times. Stay home!

10 Tips for effective work from home

10 Tips work from home.png

We started work from home from last Thursday (19th March 2020). An adaptation with the new reality of the COVID 19 pandemic that wreaking havoc. This is a new mode for us, we’ve never had work from home option since we strongly believe that software projects need a lot of collaboration that is always best when the team sits together. So the transition was difficult to imagine, we made all kinds of plans to ensure that we had an easy transition And the result is really amazing. We moved to being a fully on site, face to face interaction organization to a fully remote working from home and through digital interfaces organization overnight without a single issue. We had our facilities and IT teams on standby for any emergencies, and the only big emergency they had to handle was shipping a beloved chair that developer wanted at home! So this is wonderful news for this #stayathome world.

After spending a few days in this work from home mode, I’ve been collecting suggestions and advice from everyone. There are some great articles online too about staying productive while working from home. I’ve summarized here the top 10 tips from our experience. Hope this helps someone out there…

1. Setup the IT stuff first

Whatever profession you are in you are probably using your computer to access your work and collaborate with your co-workers. And if you are like us a bunch of software developers then that computer is probably the most important thing in your work life. So getting the computer and related IT things sorted is the first priority to be an effective remote worker.

Not having any computer or internet connection is enough here. You absolutely MUST have the correct one. Make sure your computer has the right hardware to compile your code fast enough or generate those cool 3D models, etc. The next thing on the list is the fast internet connection and checking that that work with our office access points.

2. Set a fixed space at your home for work

Productivity to a large extent is also a mindset thing. When you go to work at an office building your mind sets a switch that changes your mind to a work mode. This does not happen so easily when you are working from home. So setting up a specific space at home as your work place helps to tell your mind that you are now at work. Sounds weird, I know, but it works like magic.

This doesn’t mean you need to create an exact office like space in your house with bland furniture but just to have a space at the house dedicated for work goes a long way. It’s important, obviously, to keep that space in quiet part of the house and ideally it should have a door that locks.

3. Have a fixed work time

When you are at home it’s hard to stay focused on the work when there are distractions that take you away from the work at hand. This leads to you working beyond your usual working hours to finish off the tasks. If this happens often soon it becomes a habit and you find that your work time and your personal time are blended together and you can’t really be focused on anything. This is a real problem that you need to be aware of and address fast. Set yourself a fixed work time, make sure you work within those hours without getting distracted. Stop working when that time is over and leave your designated work space. By leaving your work space you signal your mind to switch off from the work mode. Remember working from home just means your work space is at home - work type, time and process should remain the same as working at the office.

4. Plan your work day

Working from requires good work plan for the day and the discipline to stick to that plan. Structure your day by working out which tasks are the priority and the number of hours you are going to spend on each task. Also routine in your days about breaks, lunch helps structure your day at work at home. It’s important to set some rules that you would follow to stick to your planning since it’s very easy to stray from you scheme when you get distracted.

5. Communicate more than ever

The biggest negative for working from home when you are part of a team is that you don’t get to easily reach out to people, see their expression or hear a conversation that can help you. You address this negative by using technology to fill in the gaps. Use chat/voice tool like Skype, whatsapp, even Facebook messenger to stay in touch with the rest of the team. Reach out to them as you would if you were in the office. Setup some rules about what to do when there is an emergency information that you needs to happen as opposed to a something that can wait. Face-to-face and voice interactions are very important, you should do video calls as much as possible. This helps set the mindset of working and also seeing facial expressions has a huge impact on conversations that we don’t always think of.

6. Be transparent about work

There is no need to hide from your team members or your lead if you are lagging behind on something. This could’ve happened just the same if you were at your office desk. Just because you are working at home doesn’t mean you have to be perfect all of a sudden and no one assumes you slacking off at work. Communicate any problems or issue immediately with your team mates or your lead or Clients just as you would have if you were at the office.

7. Monitor your work

When you are working from home it might sometimes be hard to know if you are being effective at all as you don’t get as much feedback from other members of your team. This is where tracking your work becomes important, tracking leads to monitoring and it tells you how much progress you are making. There are many apps for tracking your work which helps monitor your progress. These keep you accountable and more productive. Once you have some data you can actually review your work and see if you are prioritizing at the right places, working according to the schedule you set, etc.

8. Avoid Distractions

With no colleagues or managers around to check in on you, it’s easy to become distracted. You are usually your biggest enemy here, a doorbell ring might get you out of your developer’s flow when someone else could have easily opened the door. You can easily resolve this by setting some standards, ask family members not to ping you during working hours unless is absolutely important. Make sure you stay away from sources of distraction like the TV or the land phone. You family members will happily help you if you tell them you plan and ask them for their help. You just have to make the move.

9. Dress appropriately

Working from home may give you the feeling that you can be relaxed about what you are wearing or how you groom yourself. But dressing as if you are going to work at the office when you start work at home makes a huge difference to the mindset. You signal to yourself that you are shifting to work mode now. This helps immensely in getting you in the right frame of mind. And a side benefit is that when the video turns on you don’t have to hide!

10. Take breaks

Just as you need breaks when you are the office you need them when you are working at home. Slaving away at your code just because there is no colleagues to means you’ll get tired and the quality of your work will suffer. Breaks are needed for a refresh, for a reset and has nothing to do with your work settings.

OK here are some stolen gems on work from home from Dilbert!

work from home day 1.jpg
work from home day 2.jpg
work from home day 3.jpg
work from home day 4.jpg



Adapting to COVID 19 reality

The COVID 19 pandemic is creating havoc all around the world. We have be relatively lucky in the Bangladesh, there hasn’t yet been a major spike in cases. But as with all other places it is very likely to increase, we are all worried.

work from home process.png

It’s proven over and over that “social distancing” the right approach for stopping the spread of the virus. An excellent read with very visual proof of this is a recent article in the Washington Post: how to flatten the curve.

At Kaz we started working from home from today. This is the first time the whole office went into working from home mode so it is a new experience for us. We’ve been working hard to make the transition absolutely smooth. Here’s how we are doing it.

Support in setting up home work environment

Our tech support and facilities team has been busy last few days helping developers setup work quality environment at home. This includes making sure the PC at home is fast enough (if not we are supplying them with their PC at work to home), the internet connection is good, VPN setup works, etc. Being a software company most of our people have a great computer at home, that helps, but it is not always setup for professional development work. So that means we have to ensure that it’s virus free, has the right IDEs and other tools setup, etc.

Work environment is also the physical environment at home. The place you work should be in quiet part with as little distraction as possible. The chair and the table should be appropriate for the working hours. Our facilities department has been helping our staff with setting up such an environment at home.

On call tech support

We’ve assumed that right at the beginning we’ll have a whole bunch of tech support issues. So our tech support team will actually be at the office for a whole week supporting people. The support procedure we are following is we try to solve the issues online or over phone first. If that fails we would send one member of the tech support to the staff’s house to help out on site. We plan to continue this for the whole of next week and then the tech support team will also work from home.

Guardian for IT infrastructure

We have one tech support person who lives next to the office (this is by design, we’ve always ensured that a tech support person can at the office within minutes 24/7) so that means our servers and other IT infrastructure has a guardian while we are away.

Keeping the office space accessible

The office space itself will be accessible at all times during this work from home mode. This is possible as we have administrative staff living next to the office. We will have one member of the management and facilities working at the office next week to support any unforeseen issues during this transition. Beyond this the office space will still be accessible by our staff by calling our administrative hotline and arranging for an administrative personnel onsite to open the doors. This is essential, as there are likely to be situations where a developer might have to access her desk for something.

Recurring status check

We are introducing a regular status check on a team level. The goal of the status check is to make sure on a daily basis that everyone in the team has access to the resources they need. The check also works a health check on the working environment and the communications of the team.

Skype groups for teams, leads and all

We are using Skype as our main form of communications. This is because Skype was the common communications tools across the teams and it’s great for quick conversations and screen share. Every team has setup its its own group but the company also has setup groups to coordinate with the team leads, administrative staff etc.

That’s about it, I’ll update as we continue this mode and come across issues and solutions we use for those issues. Let us hope and pray that this great calamity that we are going through all over the world will be over soon and we will be back to normal. What a party we’ll be throwing to celebrate that!!

By en:Siouxsie Wiles, en:Toby Morris (cartoonist) - https://thespinoff.co.nz/society/14-03-2020/after-flatten-the-curve-we-must-now-stop-the-spread-heres-what-that-means/, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=88017093

By en:Siouxsie Wiles, en:Toby Morris (cartoonist) - https://thespinoff.co.nz/society/14-03-2020/after-flatten-the-curve-we-must-now-stop-the-spread-heres-what-that-means/, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=88017093

Remote work - what could go wrong?

Amidst the global pandemic of Covid-19, software, and technology companies are thinking about their employees’ safety. Companies like Google, Apple, Microsoft, all have allowed their workers to work from home to fight with the novel coronavirus.

Work from Home What can Go wrong_ (1).png

Not going into the specifics of the virus but more discussing the steps that software companies can take to protect their employees and still function as a business entity. One of the biggest advantages, specific to this situation, is to be able to promote “Social Distancing”.

But what that mean for the Software Companies. Companies where teams have to work with each other, interact, communicate and process together. Some of the biggest challenges that Project managers and team leads have to face could be:


Distractions

When you are working with people in an environment where it is more professional, there are fewer distractions. When you talk about working from home, you may not be able to avoid the distractions that arise. Interruptions from children, work, neighbors, friends, and family members may be very disruptive and special efforts must be made to make it known that you are working and unavailable for interruption within work hours despite your physical presence at home.

Distinguishing between home and work

The temptation to engage in household matters since you are at home is often very strong. Suddenly you may start to feel obliged to clean the home, do a little shopping, take a little more time with your child, do a little bit here and there around the house, and socialize. Not to mention the riskiest factor, “being a little lazy”. You must be able to draw the line between home and work to avoid both areas suffering.

Communication

Communication is the most to be affected, as concerned by the project managers. Teams will have to follow scrum and communicate between timelines to discuss their progress and determine the task loads. When you are working as a team and physically present in the same location, communication is easy and straight forward. Now think that you have to work where you have to communicate with all your 10+ team members on Skype. That seems more time consuming and loses productivity.

Maintaining a work schedule

Since no-one is looking over your shoulders or enforcing your hour strictly, you may feel tempted to work endlessly, or worse, try to skip a few minutes surfing Netflix. This pressure to work endlessly or without supervision may be compounded by the fact that you feel there are greater expectations made of you as a home-worker or by self-imposed pressures to prove yourself and your abilities in this arrangement. Moreover, the lack of physical separation between home and work may add to this pressure to work endlessly or supervision.

I’ll finish with WC’s tradition of using a Dilbert cartoon :) Stay safe in these uncertain times and let us all hope and pray that this will be over soon.

work from home dilbert.jpg




Tech fights the coronavirus

technology vs. covid -19.png

The novel coronavirus that first appeared in China and it’s now all over the world, the current (9 March 2020) status is as below: 

The coronavirus is putting a lot of new tech, including robots and artificial intelligence, on display. The world of AI and robotics have made huge strides in the last few years and are ready for the challenge. This virus has become a test for the limits of the technology and also a proof that technology can help us win the war against global pandemics like the COVID 19.

The following is a quick summary of the highlights!

AI

The power of Artificial Intelligence (AI) has been shown during the initial phases of the coronavirus outbreak. AI flagged an early warning about the outbreak, and algorithms have been used over flight data to predict the novel coronavirus spread.

Leading in this field are the analytics companies Metabiota and BlueDot who use publicly available health data as the input for their AI engines. The Canadian company BlueDot, which runs “automated infectious disease surveillance,” alerted its customers about a rapidly spreading infectious disease by at the end of December, way before CDC or WHO started warning people.

BlueDot’s founder, Kamran Khan, explained how the company uses AI that leverages natural-language processing and machine learning, to track over 100 infectious diseases by parsing and analyzing more than 100,000 articles in 65 languages every day. Now, the same algorithms are used to monitor social media and other news content to detect the disease’s spread.

At the same time, the coronavirus scare has pushed drug companies to accelerate their research on AI based drug discovery tools. AI can be used on such platforms to find entirely new molecules capable of treating the COVID 19 related disease, or analyze large data of approved medicine that might also work.

Robots

With a virus like the COVID 19 that spreads primarily through contact robots are godsend. The robot tech of 2020 is at a stage where it can handle this challenge head on, for instance, in US a robot helped doctors treat a person with the coronavirus. The robot used a stethoscope and also was the conduit for communications between the patient and the medical staff limiting the exposure to the virus.

robot covid.jpg

Chinese hospitals are using robots from the Danish company UVD Robots. These robots are specialized for high exposure risk tasks such as disinfecting patient rooms and operating rooms. These roving robots emit ultraviolet light over an area, killing viruses and bacteria, including the coronavirus. The robots are remotely controlled by a device operated by hospital staff.

coronavirus robot uvd.png

Other uses of the robots have been more as mechanical beasts.

Coronavirus tips for software developers

CoronaVirus for Software developer.png

With COVID 19 wreaking havoc globally I thought I should write about precautions that a particularly important for us the screen hugging software developers. I know this is horribly politically incorrect thing to say: but one good thing about software developers are that most of them are not that much of social being. Hence they are likely to go out less and expose themselves less :) Maybe all that will left of the mankind are a bunch of software developers after the virus finally leaves us - hmmm!

Anyway, back to reality, here are some things that software developers need to be careful about when it comes to coronavirus.




Be careful about surfaces of phones and monitors

In a recent study in the Journal of Hospital Infection found based on 250 mobile phones of hospital staff, that pathogens like coronaviruses can survive on smartphone glass surfaces for up to nine days. With the smartphone right next to our face a lot of the times and with us tapping on its surface all the time its an easy way to spread the virus. So make sure you clean those smart phones as much as you can and the same goes for those computer monitors.

btw, interesting trivia if you are into that sort of thing: A 2019 survey found that people touch their phones 2,617 times per day on average!

 Avoid touching your face.

Not sure if you’ve noticed, but a lot of developers tend to put their fingers on their face or fiddle with their hair when they are thinking (which is something they have to do a lot). Your mouth, nose, eyes and ears are all routes into your body for viruses. And your fingers are the most obvious part of the body that is likely to pickup the virus, so in effect the touching of the face is a fast way to transfer the virus to your respiratory system. This simple measure of avoiding to touch your face is very hard to maintain consistently, but is essential for infection control.

Skip those meetups

One big social event that developers really like joining are the tech meetups - both formal and informal. That’s an obvious thing to avoid right now. As with any large congregations you are just increasing your chance of exposure. Here’s where online meetups and skype call are great - you get all the benefits of the meetups yet don’t face the risk.

Avoid travelling

Many of us have to travel for work. To meetup with other teams, business teams or customer site visits. That would increase your chances of exposure exponentially. A sad example is the first coronavirus case in Bengaluru - a software developer who had to visit client site in Dubai.

OK, I’ll finish off with an ineresting twist on coronavirus for developers. With the huge interest and concern about the virus there has been a surge of software applications related to the virus. Take Corona 100m as an example will alert a user if they come within 100 m (328 ft) of a location visited by someone who’s had Covid-19. “The installs are increasing about 20,000 every hour," said Bae Won-Seok, one of the developers of Corona 100m.

coronavirus-apps-south-korea.jpg

New apps are coming in almost every day on the mobile apps stores for an obvious reason - there is a huge surge in interest. Apart from mobile apps there are some really cool web apps that tracks the virus. The best of the lot is by Johns Hopkins Center for Systems Science and Engineering that tracks the spread almost real time. The red dots are getting scary close to Bangladesh, btw :(

coronavirus near bangladesh.png

OK, I just realized I can never leave this post on a happy note, so I might as well give up. Stay safe my friends we have a lot more software to build!

Cost of offshore software development for 2020

compare software development cost 2020.png

We are a software development consultancy based out of Bangladesh. One of the big reasons companies from all over the world approach us for software projects is the relatively lower cost of production in countries like Bangladesh. The risk of getting your software made by an external team located literally thousands of miles from you is always big. But sometimes your budget makes your options limited and selecting a good external software consultancy can keep the cost in control without taking too much of a risk.

A common questions we get asked how do our costs compare with the rest of the world. This is always very hard to answer because even within a single country the cost of software development varies by a considerable margin. Take US for example, even when you take a large sample and average out you get a variation from $20 - $80 for the same experience and skill set.

However knowing a ball park number always helps and makes your search for finding the right software consultancy easier. I wanted to share the result of our own surveys and googling today, this is a ball park chart we keep to share with our would be customers and also for ourselves too make sure we offer competitive rates to our customers.

Here goes, range of costs per hour (in USD) for 2020 based on regions where there are considerable software development consultancies. The costs are based on “blended” teams in mainstream technologies such as .NET/Python/Javascript development, etc.

Eastern Europe: $25 - $55

Custom software development rates in Eastern Europe vary by a very large margin between countries. For example rates in Ukraine are significantly lower compared to Poland.

The following chart shows the highest hourly rates in our data country by country:

Latin America: $35 - $50

Latin America is the fastest growing (CAGR of 5.84% over the period 2015-2019) software development destination currently with Argentina, Brazil, Colombia, and Chile leading the way. With time zones matching all major cities in North America the industry has a huge advantage over other offshoring destination when it comes to software projects originating in US and Canada.

We found the hourly costs to be on the relatively higher side during our research, the following shows the highest rates for standard tech stacks from only the large providers.

Africa: $15 - $35

Africa is emerging as a big offshore software destination with a young population set to double by 2050. In GitHub’sState of the Octoverse report, developers from Africa created 40% more open source repositories over the past year— bigger growth rate than any other continent. Morocco is leading the in this stats, but others are catching up. The following shows our data for highest hourly rates:

Asia: $12 - $50

Asia has a lead on the number of developers and companies that work on custom software development. India obviously is the clear leader but many other countries such as Bangladesh, Vietnam, Cambodia, Pakistan are also become major providers of offshore development support. Given the large number and variation in skills and maturity the very large variation in hourly pricing is expected.

The following shows the highest hourly rates in our data for countries in Asia:

Conclusion

There is a large number of offshore software development companies available to any company looking for new software partner. The most important factor for a successful software project at the end of the day is to find a good software partner. Software development rates will vary over regions, this is to be expected. But more interesting metric to follow is how the rates and skills change over time. An example is Bangladesh, which used to have very low rates about a decade ago but was also lacking in skills and experience. As the industry matured the resource on offer become more skilled and experienced and obviously that led to much better quality. Better quality leads to a growth in the industry as more projects starts feeding into the market. This obviously leads eventually to a rise in cost as the demand for the skill increases. Finding the optimal balance of cost vs. quality that fits a software project’s budget is the key.

Hofstede's cultural dimension and software company culture

Cultural Dimension in Software.png

Geert Hofstede left us a few days ago (12 February 2020), I dedicate today’s post to this great thinker. His ideas has had a huge impact on our thinking about how a software company should operate, particularly in the cultural context of Bangladesh. We wrote sometime back about Geert’s cultural dimension and its importance for software company and how we at Kaz manage the power distance . In today’s post I’ll revisit some of those concepts and also look at it from a larger perspective.

Geert Hofstede

First a quick intro to the man himself. Born in 1928 he was a Dutch social psychologist who worked in IBM and was also a Professor at Maastricht University. He is well known for his research on cross-cultural groups and organizations culminating on his theory of cultural dimensions. His extensive research resulted in the publication in 1980 of his seminal book Culture’s Consequences. It was written for the academic world and made very controversial theories that challenged the validity of established theories in psychology, organization sociology, and management theory. A 1984 paperback edition of the book left out the base data and the statistics but was otherwise identical to the 1980 hardcover version

Theory of cultural dimension

The theory of cultural dimension is a framework used to understand the differences in culture in different countries of the world and to find out the ways that work is done in different cultures. In other words, the framework is used to distinguish between different national cultures, the dimensions of culture, and their impact for businesses.

The theory is based a study of 117,000 IBM employees. With this very large data set Geert showed that how we operate in a corporate environment is very much dependent on our national culture. And these culture dependent biases lead to business decisions, attitudes and at the end business operations and success. Hence knowing about the cultural dimensions, how to manage those for optimal business performance is of major importance for a business.

Power Distance Index

Of Geert’s cultral dimensions, the concept of power distance index the most important for software companies, we feel. Power distance index (PDI) is defined as the extent to which the less powerful members of organizations and institutions (like the family) accept and expect that power is distributed unequally. This is what defines how team members feel about voicing there concerns and having a say in the overall business process. As you can understand for a software development team this is the most important thing. If team members cannot voice their issues the overall software team starts becoming an authoritarian environment where the team leaders govern how things are done, what technical decisions are correct and what kind of architecture to follow. This leads to huge bias on technology, making it next to impossible to make software error free. Apart from the obvious effect on the work output the power distance has an important effect overall team culture and happiness. For a creative work such as software development not having the ability and the flexibility to work with your own ideas or getting put into doing things that you feel are incorrect lead to less job satisfaction which eventually leads to bad performance.

I recently found some great info graphics about the cultural dimensions across countries of the world. Here’s the graphics that shows PDI across countries of the world. I can relate with Bangladesh being so high up around the end of the spectrum. This is why we take so many measures to address this issue of high PDI and try to make it low.