Tech Studio Culture: A Creative Take on Software Dev

The question I keep asking myself over the years in this space is "why isn't a software development company a software studio?"​

We just love to call a place where websites are designed and made a "web design studio". A design and branding place is definitely a studio, so is an artist's workplace or a photographer's business. The word studio conjures this nice image of creativity at work, a feeling of something beautiful being made or an expectation of seeing something breathtaking.​

Compare the word studio with what most software places are named or referred to as. The nicer ones with at least some feeling for the art are: software houses, shops, services or pods. The more formal ones are: companies, centers and offices.  But the award goes to outsourcing places with depression oozing from flowery phrases like: low cost, offshore, cost effective, transparent, time tracked, video monitored, screen captured, toilet-time controlled, caged programmers...I'm just joking about the last ones but only just. ​

​But isn't software all about creativity? The art, craft and engineering war is not new - but even the most ardent engineering fan would accept that there is creativity involved somewhere in the process of making software. Whether you are making the software in-house or you are outsourcing it to be made somewhere far away the fact remains that there needs to be a certain amount of creativity and element of art involved in the story. So there is no big crime in using a word like studio to describe the place where all of this is taking place.

IMG_1479.JPG

And what a difference does a single word make! Software Studio - brings to mind pictures of cozy places, of dark rooms with splashes of light where there are screens and of places to relax and chat.​

Words reinforce our view of the world and that in turn changes the way we think about things and eventually our actions. So here is my simple theory:

If a software company just starts calling itself a software studio (or something cushy like that), soon it will become a place where work is fun and creative.

A bit rash, random and without proof for sure - but aren't all theories something like that at the beginning? ​

N.B. Just in case you are new here: we are a software company in Bangladesh making custom web, desktop and mobile apps for other companies and being very good at it! Check out this page to know more about our software development work culture and environment.

Win Top Tech Talent: Hiring, Coding & Interviews

One day in January started very badly for me. The first email that I read that morning had the title "Dumb Interviewer" and was from a disgruntled developer we had interviewed recently and had decided not to take things to the next level. 

Win Top Tech Talent: Hiring, Coding & Interviews

What he was complaining about was that the interviewer was dumb because he had been asked a lot of irrelevant questions and thus his true talent has not been judged at all. A proof of his abilities, he stated, was that he had since been accepted at a good software house which in his words was "a 100 times better than Kaz".

What made the email disturbing was that he was telling the truth. Of course I don't mean that the "100 times.." statement is the truth - that's just a pure lie - Kaz is the best software company in the universe :) And I am not referring to the surface level meaning in the statement "dumb interviewer" either - which sadly is true since I am kinda dumb :( The truth that worries me is the implied meaning that our process of selecting talents is faulty.

This is something we have always accepted. It is impossible to judge someone's abilities in a 20 minute call or a 2 hour interview or maybe even a day long session. Talents in the technology world is multi-dimensional. A developer can be a disaster in algorithms but amazingly good at finding just right code do his job on google. Experience has taught us that rockstar formula that Joel keep referring to could sometimes be a huge liability for a project looking for a temporary fix on a broken codebase for example. And of course sometimes the super lazy google search based coder who somehow gets things done at the right moment makes a complete mess for a whole week on something that the algo genius could have fixed in an hour. It's all about context and everything is relative. I think since we are a custom software dev shop with small teams working on client projects this fact is particularly so - I love Eric Sink's little article about this context above all situation 

So what do we do?

We compromise.

We will always lose some great talent. So we compromise by saying "let's stick to some guiding principles" and just accept that we might be wrong. But before you read any further, if you haven't read Joel's ultra famous piece in this subject you MUST right now: The Guerrilla Guide to Interviewing Although we agree almost with every point Joel makes in his article, there are somethings we feel has missed out and there are some places we feel he is kind of lost.

Anyway, here are some of the principles we have set for ourselves:

1. Start the conversation in technology background and let it flow in any direction it wants to go.

This tells us how passionate she is about technology. Only people who are passionate about what they do can continue a conversation that is interesting. If the conversation has good flow, leading to interesting aspects of her past work or goes into strongly held convictions about technology, it is a sure sign of passion and interest.

2. Go with the gut feeling.

Google knows everything. So it is kind of pointless these days to really keep everything in your head. It is only normal that a lot of our questions can't be expected to be answered. But what are guess answers? Guess tells us how someone is trying to solve the problem of not knowing. And gut feeling is the best judge here.

3. Make sure the candidate gets to solve something very simple on the whiteboard.

We obviously don't care about perfect syntax here! But if someone can write code on a whiteboard it shows confidence in his craft. We are just slaves of our IDEs and intellisense - so any sign of independence from these are good signs.

4. Get the person to write code to solve a simple problem that has many possible solutions.

As Joel puts it: "Would you hire a magician without asking them to show you some magic tricks? Of course not." But our only addition to his advice is the "many possible solutions" angle. By looking at what was the solution someone has chosen for a problem we get to feel how this person is likely to approach problems in his professional life.

5.  Ask question that challenges the technology choices she made in stuff she has done.

This we feel is very important. A coder must be sure why she is using a piece of technology and know its pros and cons. If there is sign of blind support then this could be a very bad sign (or it might just be a case of great passion or youth so we have to prod more). The challenge also creates the environment of stress and gives us a chance to see how she reacts to criticism. 

6. Get her to participate in a debate.

If there is one thing that is ubiquitous in our profession it is debate. We debate every day about why this is better than that and why .Net is the evil and Java is the savior (I'm just kidding...). And how a person participates in a debate is extremely important. What we particularly look for is the ability to understand someone else's point and ability accept defeat if defeat is indeed the obvious choice.

But nothing is set in stone. We are always keen to change our rules, to make them better and are always on the lookout for criticism - and so a big thanks to the developer who made my day horrible! 

​N.B. Just in case you are new here: we are a software company in Bangladesh making custom web, desktop and mobile apps for other companies and being very good at it! Check out this page to know more about our software development work culture and environment.

Patterns in workspace design - redo

This is a post that was done way back in 2007. But nothing much has changed about our philosophy of creating an environment for creativity. We are redoing a lot of the space designs this year and will blog about those efforts. And as a starter we would like to re-post this for those who've not read it.

With the designer workspace project in progress at Kaz, I was revisiting the principles for achieving the perfect design of workspaces. These patterns as they are formally called were the guiding light when we were planning the Nirvana (our office space). 

Software has patterns. Patterns are tried and tested ways of architecting systems that just work perfectly for a broad set of similar problems. Made famous by the gang of four (GOF) in the early 90s when they published their book Desgin patterns

Interestingly the idea of patterns comes not from software but from architecture. We all have felt that some buildings or houses just feel more comfortable than others. There are some places where an adda is always a good adda. The person who put this into concrete form was Christopher Alexander in his book The Timeless Way of Building

a_pattern_lang.gif

Since I can’t possibly describe this better than the great guy himself, let me quote from the book itself:

“There is one timeless way of building. It is a thousand years old, and the same today as it has ever been. The great traditional buildings of the past, the villages and tents and temples in which man feels at home, have always been made by people who were very close to the center of this way. It is not possible to make great buildings, or great towns, beautiful places, places where you feel yourself, places where you feel alive, except by following this way. And, as you will see, this way will lead anyone who looks for it to buildings which are themselves as ancient in their form, as the trees and hills, and as our faces are. ” 

As the quote sort of hints, the book was more philosophy than practical hints about the patterns. The next book was the practitioners' handbook for the patterns – the analogy of the GOF book in architecture: A Pattern Language: Towns, Buildings, Construction. One of my all time favorites, this book is worth reading just for your soul.

Before being carried away let me pin down a few patterns that is very relevant to workspaces and that we are definitely consulting during the planning. All of the following are stolen from the great book. 

Note that the numbers represent the pattern number used in the book (there were 253 catalogued). You can get a whole list of patterns here.

134 Zen View 

If there is a beautiful view, don't spoil it by building huge windows that gape incessantly at it. Instead, put the windows which look onto the view at places of transition- along paths, in hallways, in entry ways, on stairs, between rooms. 

135 Tapestry of Light and Dark

Create alternating areas of light and dark throughout the building, in such a way that people naturally walk towards the light, whenever they are going to important places: seats, entrances, stairs, passages, places of special beauty, and make other areas darker, to increase the contrast.  

146. Flexible Office Space

Lay out the office space as wings of open space, with free standing columns around their edges, so they define half-private and common spaces opening into one another. Set down enough columns so that people can fill them in over the years, in many different ways- but always in a semipermanent fashion. 

152 Half-Private Office 

Avoid closed off, separate, or private offices. Make every workroom, whether it is for a group of two or three people or for one person, half-open to the other workgroups and the world immediately beyond it. At the front, just inside the door, make comfortable sitting space, with the actual workspace(s) away from the door, and further back. 

183 Workspace Enclosures 

Build each workspace an area of at least 60 square feet. Build walls and windows round each workspace to such an extent that their total area (counting windows at one-half) is 50 to 75 per cent of the total enclosure that would be there if all four walls around the 60 square feet were solid. Let the front of the workspace be open for at least 8 feet in front, always into a larger space. Place the desk so that the person working at it has a view out either to the front or to the side. If there are other people working nearby, arrange the enclosure so that the person has a sense of connection to two or three others; but never put more than eighth workspaces with view or earshot of one another. 

185 Sitting Circle 

Place each sitting space in a position which is protected not cut by paths or movement, roughly circular, made so that the room itself helps to suggest the circle- not too strongly- with paths and activities around it, so that people naturally gravitate toward the chairs and cushions loosely in the circle, and have a few too many.   

250 Warm Colours 

Choose surface colours which, together with the colour of the natural light, reflected light, and artificial lights, create a warm light in the rooms.  

252 Pools of Light 

Place the lights low, and apart, to form individual pools of light which encompass chairs and tables like bubbles to reinforce the social character of the spaces which they form. Remember that you can't have pools of light without the darker places in between.

N.B. If you are new to our blog here is a quick summary of who we are: we are a software studio based in Bangladesh. We work on outsourced software projects from all over the world. We are passionate about the workspace and culture of a software company.