Dear Software Engineers, your job is not to write code!

Dear Software Engineers,

Your job is not to write code.

I know. You think you were hired to write code. In fact, your entire interview process centered around how well you could write code. And I’m sure you do it really well.

But it’s not your job.

Your job is to improve our product for our users. If you want to get technical about it, your job is to improve our product for our users in a way that improves the key metrics of the company. But honestly, you don’t always have a lot of control over that second bit. You do, however, have an enormous amount of control over the first bit!

Of course, if you want to do your job well, it does mean that you may have to change some of your current behaviors.

For one thing, you need to make sure that the code you write (writing code is still one of the main things you will do when doing your job, by the way) runs the way it should, even on users’ machines.

Did you know that our users probably don’t have brand new MacBook Airs with giant Thunderbolt monitors set at the highest resolution possible and running the latest version of Chrome? I checked. A lot of them have Internet Explorer on 4 year old laptops, so sometimes things you build don’t work right on their machines. They’re still our users, and it’s still your job to improve the product for them, so please make sure that the code you wrote works in a reasonable number of environments.

In fact, you’re going to need to make sure that the code you wrote runs in production, in general. I don’t really care if your code runs locally. If your code just runs locally, then my only option is to sell your computer so that our users can use our software, and that really doesn’t scale.

So, to avoid that, you need to check your changes in production. Every time. Remember, your job is not just to ship something. It’s to ship something that improves our product for our customers. You can’t know it will do that unless you check that it runs in the way it’s supposed to.

Of course, in order to check your changes in production, you’re going to need to make sure that your code actually gets merged and pushed into production. I mean, you can’t really check your changes in production if you just let them sit unpushed for hours or days. Push your code. Get it into production. Then run it and check it.

This is obviously harder to do if you’re in an environment where you can’t do continuous deployment, but the theory still holds. When your code gets into production, whenever that is, you’re still responsible for it. Make sure that it’s doing what it ought to be doing – which is make the product better for users.

Another thing to remember is that sometimes users do surprising things, which means that it’s not enough just to test that your code works under perfect conditions. You need to make sure that it does something reasonable even in error cases and zero data states and when the user does something you might not expect, like use the back button or make two accounts by mistake.

This is hard. It means you’ll have to spend time thinking about the different things our users might do. But it’s an important part of your job, because it will vastly improve the product for our users if they aren’t constantly finding bugs or edge cases or dead ends.

There’s one more important part to your job. You need to make sure that we can measure whether we’re all doing our jobs well. That means adding metrics and analytics so that we can test the effects of our changes. If you expect the code you are writing to improve user engagement (by improving the user experience in some key way), then you need to have a way to learn whether or not you succeeded. How else will you know if your job is done? Because, as I’ve mentioned, your job isn’t done until you’ve improved the product for our users.

I know what you’re thinking. This will all take so long! I’ll be so much less effective!

This isn’t true. You’ll be far more effective because you will actually be doing your job. If you get hassled for writing less code, that’s a failure of management, and I apologize for it. We need to spend less time demanding that you write features and more time asking you to improve our product for our users. If we’re not doing that, I strongly suggest you ask us to. If we still refuse, you should leave and find an environment that lets you do your job. Which, not to beat a dead horse, is to make the product better for our users.

Please don’t feel like I’m picking on you. You’re not the only one who should be doing this job. It is all of our jobs to make the product better for our users. It is my job as a PM and UX Designer and Manager to understand our users well enough that I can help you know how to improve the product for them. It is the CEO’s job to find a strategy that allows us to make money by improving the product for our users.

No matter what our job titles, our jobs are all the same — to make the product better for our users. Every day. So let’s do that.

Thank you,

Your Product Manager

Dear Engineers, your job is not to write code! – Tweet This

*This post originally appeared on Medium*

Advertisements

Success Is Helping Others

This is the story I was told

By a wise man that’s very old

 

Success is not just reaching the top

But also helping others go up

 

Success is not being better than the rest

But helping others be at their best

 

Success is not about having fame or fortune

But helping others avoid misfortune

 

Success is not about showing that you are superior

But helping others know that they are not inferior

 

Success is not about showing of your ability

But helping others enjoy stability

 

Success is not getting what you want at every single word

But helping others get what they cannot afford

 

Success is about making people smile

Helping others live a life that is worthwhile

Three types of DO-ERs

While doing work there are three types of doers.

1. A Sattvik doer
2. A Rajasik doer
3. A Tamasik doer

You have to see, which category you come into at this moment. It is not going to be the same all the time, it changes.

Who is a Sattvik doer? A Sattvik doer is one who, whether work has happened or not happened, whether success or failure, they have not lost their enthusiasm. Utsaha means Enthusiasm, and dhriti is that something which uplifts you and upholds you. That which sustains life and prana, the presence of that energy is a Sattvik Karta (doer).

The second type of doer is a Rajasik doer, one who is always interested in the outcome. He is so attached to the outcome that if something goes up he jumps up to the ceiling, and if something goes down he goes down along with that. He feels totally destroyed when things don’t happen, and when things happen, his ego gets a boost, ‘See, I did it’. This is a Rajasik doer. Though he does everything with a lot of passion, but along with the passion there is a lot of Rajas. Rajas means, there is a lot of anger, ego, a sense of challenge, etc. Have you had this experience, if someone doesn’t do something and you just challenge them, they immediately get up and say, ‘I take it as a challenge’. That sense of challenge is a Rajasik Karta.

The Tamasik doer is one who is doing it because of some pressure, or simple because he has to do it, not because he wants to do it. He thinks that everything is always bad. One who is always regretting, ‘Oh, I should have done electrical engineering ten years ago, I made a mistake’. My dear, you have already crossed those ten years, what is the point of regretting.

Often you will hear mothers tell their children, ‘Since 10 years I am telling you.’ Or a wife tells her husband, ‘It’s been 30 years of our marriage and you’re still like this.’ So, Vishaadi means regretful or remorseful, and Dhirga Sutri means anything you tell them they would say, ‘Oh, that is not possible. It is very difficult you know’. They beat around the bush so much and then come up and say how things cannot work. They finds everything difficult, everything hopeless. This is Tamasik Karta.

These are the three types of doers. See at this moment, in your mind, what type of a doer is coming up? How do you move from being a Tamasik Karta to a Rajasik Karta, and then to being a Sattvik Karta? This is the challenge and this is the path.

Personal : Being with my self

I have been enjoying complete independence and freedom for last couple of weeks as my wife and daughter are away for vacations. I am alone in my home and I am enjoying being with my self. I can do what ever & whenever I want and that too without any interference or disturbance. I do yoga / meditation / dance / sing / swim / eat / read and do what ever I feel from inside without any external suggestions/impositions from any body. No pressure, no expectations, no complains, no adjustments and no compromises. Its peace full, silent and tranquil seems like a Paradise.
 
I think every one should get a chance to be with them selves once in a while.

AOL : Act without Expectation – It relaxes and rewards

Act without Expectation: It relaxes and rewards by Sri Sri Ravi Shankar
It’s often believed that if people become spiritual and dispassionate about the outcome of their actions, they will stagnate; there will be no progress. In fact, the opposite is true. Creativity and enthusiasm can spring only when you are well rested; and you cannot rest if you are anxious about the outcome of your actions.

When we perform every action with an eye on the end result, we get lost in the end and don’t enjoy the means of getting to the end. But when we perform some actions as an expression of joy and do not bother about the result, the action itself brings fulfillment. When we act expecting joy, the action becomes inferior. For example, you want to spread happiness, but if you try to find out whether the other person has become happy, you get entangled in a vicious circle. In the process, you lose your happiness!

Anxiety about the outcome of your action is what pulls you down. At the beginning of a project if you start worrying, then your whole enthusiasm for the project gets dampened. When you are aware of your potential, just jump into action without bothering about the result. When you are in doubt, any activity you do will bring more doubts. When you have a choice, the grass on the other side will look greener and this prevents you from enjoying what you have in your hand. When you are bothered by a choice, relax.

The choice is never between good and bad; it’s always between bad and worse or good and better. Choices bring conflict and there is freedom in ‘choicelessness’. How can you be centred when there is conflict? There is a Chinese saying: that when you are in doubt, take a pillow and go to bed!

In Narada Bhakti Sutras, Narada says, “Karmanyapi Sanyasyati”. Take a break, not just from activity, but also from the fruit of the activity. It will bring deep rest from doubts and conflicts. One who is not concerned about the outcome and is centered on the action, goes beyond dualities, beyond conflicts. The wise one is beyond all actions. Yet he continues to engage himself in action. You can only let go of what you have. So to let go of the fruit of action, you need to have the fruit and to have the fruit, you need to act!

This is so beautiful. If you have never acted, then how can you drop either the action or the fruit of action. So be active. Keep doing your work, and drop the fruit of action. The fruit of action is there as the motivation for you to start acting. Krishna used the fruit of action to motivate Arjuna to fight. He told Arjuna that if you die in battle, you will attain heaven and if you win, you will rule the world. Jesus did the same. When you are bogged down by laziness, you need motivation to do something and the expected fruit of action acts as the motivating factor.

But once you start acting, let go of the expected result. Just focus on the work on hand. This is the way of the wise!

– By Sri Sri Ravi Shankar