Let your fellow developers know they’re great

I think that one of the most challenging things in my life as a developer is the Impostor Syndrome. Unless you’re stuck into a mediocre job, where everyone around you is pretty lame (and, believe me, if you’re in that situation, you want to get out as soon as possible), I think it is quite common to get that feeling of “wow, I don’t deserve to be here” feeling from time to time.

I am pretty terrible at myself, and I suspect I am not the only one. If I achieve something, that great feeling of “Oh, yeah!” will wear out after a few hours or days. I still remember sometimes failures I did at High School and feel bad about them. Yep, it sucks.

I have also perceived that it’s more dependent on yourself and team dynamics, that really on how smart people surrounding you is. Currently, I am in an astonishing place to work, where there are plenty of super amazing people. Surely I get impressed with great stuff often. But in previous jobs I had, where people were way less awesome but there were less communication, I felt it even worse.

Probably because we are painfully aware of all our limitations, the times we procrastinate, our failures, our own struggles with stuff that’s hard. But we perceive others more as their successes, their external results and their progress. One of the most common advice when performing live is to learn to “keep going” after a mistake, because it’s more important to continue that to allow that mistake to make you lose focus. With lack of positive reinforcement and seeing how valued is your work, it is very difficult to see your achievements and see yourself as a valuable member of a team.

I am more and more convinced that a great team and a great atmosphere are two of the most important things at job (if not THE most important), as well as in life. After all, we want to be reasonably happy while we’re working. Heck, we deserve to be happy at work.

That’s why I consider that giving good feedback to your co-workers is absolutely capital. Of course, when deserved. Of course, honest. It has to come from the heart. But I’m pretty sure that most of developers out there are way more eager to say and mean it “this is crap” than “this is fantastic“. And it shouldn’t be.

Shower the people you love with love, show them the way that you feel
Shower the people you love with love, show them the way that you feel

One of your most important duties as a developer is to show appreciation to your fellow co-workers so they know they’re great (and you know they are)

Respect Driven Development

I think that one of the most overlooked components on any sane company culture is Respect. That’s probably true also for any relationship, also outside work environment, but I think is usually forgotten when nice places to work are described.

When I look back about the things that bothered me the most, most of them are related to disrespect, even in relatively minor form. It can be personal disrespect or not respecting the work itself or even the customers. Probably because is something engraved, it’s easy to take for granted when it exists, and to identify more problems deviating from the lack of it when is not present. We typically talk about how great cultures are innovative, open, communicative, fun, collaborative, etc. but one of the prerequisites that makes these values worthwhile is Respect, both to your coworkers and to the work itself.

R-E-S-P-E-C-T  Find out what it means to me
Find out what it means to me

Without Respect, ideas are accepted mostly depending on who present them, and need to be imposed. Even when there are explicit request for ideas, they take the shape of “suggestion boxes” where no one really looks into them. So, in practice, being proactive is discouraged unless you’re in a power position.

When there is Respect, ideas can be freely exchanged without fear of not being talking seriously. They are also welcomed from any source, not only through the “chosen channels”. There can be hard scrutiny, but it will be fair, and rejections will be reasonably based in facts.

Without Respect, a “funny, relaxed atmosphere” can be easily transformed into harassment and abuse. Jokes will actually hurt. Closed groups,   extremely aggressive with everyone external with them, will be formed. That can include groups outside the company, like mocking customers or partners. Some groups will be appointed as intrinsically “better” (engineers, executives…) as others (secretaries, workers…) and generate asymmetrical relationships, with one part dominating the other.

When there is Respect, jokes are played just for the laugh, and are taken up to the correct limit for everyone, as there are people with thicker skin than others. If those limits happen to be crossed, the problem will be arisen and people will sincerely apologise and correct their behaviours in the future, without external influence. Occasionally the customers or partners can be make fun of, but the quality of the delivered software will be took extremely seriously (the highest form of Respect for customers) and their requests or suggestions will be taken into account when making new features.

Without Respect within the company and the different groups, no particular measures will be enforced to protect anyone or anything. Therefore, it will be easy for someone to take advantage of that, ranging from lower the quality of the work to be a moron and degrade the working environment. Code will devolve into an unreadable mess, and technical debt will grow uncontrollably. Hiring standards will get lower, and not-that-great people will be part of the team (technically, but also in a more personal sense). Also, the expectations will be to work overtime regularly, without any contingency plans or treating it as a bad sign.

When there is Respect, the organisation truly cares about the people, and not just as an empty statement. This includes understanding when overtime is unavoidable evil and work as a team to avoid it as much as possible. And when it happens, everyone do as much as they can to make it as short and enjoyable as possible. There will be understanding when someone wants to leave because they have a genuine different interest, leaving the door open if things don’t turn out for the good. Learning and personal growth will be encouraged with actions, not only with words.

Trust, a extremely important value, can only arise if there is Respect. Without Respect, fear and uncertainty will replace real trust. Being honest needs trust and confidence in the other part, as real honesty can be, and sometimes should be, uncomfortable to hear. Formality and defensiveness take control over honest feedback and team work when respect is not present. Any long-term relationship also needs Respect to stay healthy.

What have I ever done to make you treat me so disrespectfully?
What have I ever done to make you treat me so disrespectfully?

Being imperfect human beings, we cannot probably achieve perfect respectful relationships  at all times. But we should try to be as respectful  as possible, identifying our mistakes and the ones of the organisation, and move up towards the Respect ladder. That makes a much healthier (and happier) environment for all. We should recognise the Real Respect, as the word is often abused.

It is great to aim for having a great organisation or startup, with a thrilling culture. But, in order to get to establish a funny, exciting, learning, diverse and passionate place to work, we should lay strong foundations with Respect. Identify it, and not tolerate the lack of it.

First moment of truth in recruiting

I read this post and liked it:

So what does all this have to do with recruiting? A lot actually. An candidate will begin to form an idea of who you are as an employer over time, your employer brand, through articles, tweets, consumer ads…etc….maybe even a friend who already works there.

When she walks into your office for the first time, all this could come crashing down or on the contrary, it could live up to the hype.

Take a minute and think about all the candidate touchpoints from inital reachout to 1st day of work? What are they? What happens in each? Is your brand being reflected in each one? Do you even have an employer brand?

I also think that, for the recruiting process, all those details are very important, and there is a huge opportunity in those terms for recruitment. Of course, it should be sincere. Just trying to look cool does not make you cool.

Nice try, but no
Nice try, Tony, but no

4 years ago, I did two interviews for positions on Dublin with a difference of a few days.

My first interview was done in a Hotel’s bar, as I was just arriving from my plane. It was for a position on a small startup company. The ones conducting the interviews were technical people (CTO and technical lead). I had a phone interview with them a couple of days before. It was funny to each a sandwich while I was hearing about the role and the company history. I also had to do a couple of programming exercises on paper. They were interesting, and I felt like I was collaborating, not like doing an exam. After the interview (which was not very long), they said that they’ll be making me an offer, and send me the details by email (the CEO, which was in charge of it, was sick that day). So –they ask me — do you want to see the office? So I went to see the office. Then it was — do you want to see the new office? An I saw the new office. Then we went to the pub, when we were joined by a couple of people working on the company. After that, they invite me for dinner, and then we went to another pub. All the “post-interview” process was “off the record” (or so they said, and if I had done something really inappropriate they could have reconsidered, but it was quite relaxed). We talked about a lot of stuff, mostly not related to the job (including things like Star Trek and other nerd subjects) and everyone was quite smart and amicable. It was an enjoyable evening, really.

The second interview was for a more established company. The company was locate in a business park. I had an interview initially with an HR person, then with the manager, a technical interview (which included some coding), and then again with the manager. The technical interview was interesting, but the rest was a quite standard interview process. Nothing fancy or particularly bad, but a lot of the kind of questions that you feel are just not very relevant. At the end, the manager asked me if I’ll be interested in coming back to do another interview. Please note that I was coming from Spain, which mean two 2.5 hours flight, plus getting to the airport, etc, etc.

I guess I don’t really have to tell that I accepted the offer from the first company (Jolt Online) and I was quite happy while I was there (unfortunately, I closed two years ago. You know, startups). Probably that’s quite extreme example of this kind of “Wow factor”, and I think that bringing someone to the pub is not necessary for a job interview (Nice touch, though). But most of the interview processes are, well, quite dull.

For example, I had a lot of problems with phone interview times and reschedules. With scheduling interviews at reasonable times (meaning reasonable times for someone that is already working somewhere else). With interviews that are supposed to take 1 hour and take way more. With questions that requires “aha moments” and doesn’t look remotely similar to what real work looks like. Or with processes that are just one interview after another, with no clear view on when will it end.

They have never been deal breakers for me, to be honest. Most of the time you understand that it’s the way it is. But I think that anyone that tries to be careful about all those details and sincerely works on delighting the interviewees can get a huge advantage.

Again, this needs to be sincere. This needs to reflect who you truly are, or it won’t work. There are already to many places pretending to be cool, looking for ninja rockstar developers. But there are also a lot of nice places that are not showing their best (and real) face.

Being cool is really about believing in it
Being cool is really about believing in it

Minor offences

Here is a very interesting quote by Niccolò Machiavelli

“People should either be caressed or crushed. If you do them minor damage they will get their revenge; but if you cripple them there is nothing they can do. If you need to injure someone, do it in such a way that you do not have to fear their vengeance.”

When I look back about the things that had really make me angry on work places, they have been relatively minor things. Setting a firewall so I can’t easily access half of the Internet, usually the interesting parts for the work I was doing (you could still check the cache, but it was pretty inconvenient) or having to work overtime in short notice for stupid reasons…

I mean, they are not BIG deals. There are worse things to deal on a working environment, that are common. Bad salaries (and ridiculously low raises), mean coworkers, being forced to use software you don’t want to use, no support (RTFM as the universal response for everything)… The list can be very long, and I’m sure that every worked had to deal with these or other problems.

But why do you feel that bad about those minor, stupid problems? Why such a minimal inconveniences hurt you in a personal level? Probably because they are perceived somehow as an attack and lack of confidence. And that makes people very nervous and upset.

Here’s the story about management. The rule number one of management is Thou shall not demotivate. Ideally, it should be about motivation, but that’s too long down the road. The sad true is that it is extremely easy to do stupid moves that can have a relatively big impact in the morale of the team.

Yeah, If you can take no more than one coffee each morning, mmm, that'd be great.
Yeah, If you can take no more than one coffee each morning, mmm, that’d be great.

A common pattern: the Team is working reasonably well, no obvious problems on their part. And, of course, Manager SHOULD do something. You know, because Manager must leave an imprint and, well, manage. Be a Leader and so. Then, Manager finds out a small thing, probably just because of boredom. And, as it’s the only incident on sight, Manager takes it as a sign. “If I leave this be, soon all will be chaos”  So, Manager decides to have a word with Team Member (maybe even with the whole Team). And gently, but firmly, gives a cease-and-desist order. “Hey, remember that what your doing is Wrong.  I am with you, but this Company does not tolerate that kind of behaviour. It will be awesome if you stop it”. And then, when Team Member leaves the room, Manager breaths and feels like Chaos is Under Control and Everything is OK Now, probably forgetting about the whole incident.

But Team Member feels really bad. “Is that really a problem? What happens with X, Y and Z, that are Real Problems? What about Other Team Member? I think is doing something very similar, but I can’t see any effect”, and decides that this is Just a Job, and it’s not worth working really hard. And maybe the next recruiter email is looked in a different, more favourable way.

I think that’s why all those posts about sodas not free anymore rings so deeply. Because they are the way of a manager (being upper management or just middle management) to say “I’m going to cause an inconvenience to you, for no particular reason other than feel good to myself” Everyone get the problems. The things that are important. That really cost money, or time, or are a pain. And those are part of the job. But the minor, stupid offences that are just a way to remind the workers who’s on charge. That the Overlords are the ones making the decisions, and all those words of “our most valuable asset is our team” are empty.

As with any other action, I think that those kind of problems deserves a small though about if they are worth the hustle. Is it worth to bother someone with this small thing, or it is an opportunity to just set that someone angry? If it is, it’s probably best to leave it be, or work around it.

But minor damages just hurt, and makes people to be vengeful, probably at the worst moment.