You will never know fulfillment If you never try 🙂
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.
Your Product Manager
Dear Engineers, your job is not to write code! – Tweet This
*This post originally appeared on Medium*
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
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.
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.