Feeling that bosses are not happy with my productivity

Hi,

I am already having about 4 years experience in working in offices as programmer. But still worrying about the productivity a very often.

It started when I was finising my univercity. When being in internship, boss was wondering why do I do it so long. Ok, I was working from home and not putting 8 hours, but instead 5 - becuase they were not paying me money and also - it was my dream to work shorter than others. Ok, there are clear reasons why I might be slow. Also I was bored about the coding alone at home. I see in offices its bit more motivating when see others working. Also no experience. THat explains things.

So after I ended the university, I studied at home bit more - almost a year. I was still hoping to become freelancer and work shorter time than others in real jobs.

THat did not work, I was not earning enough money to survive without parents help. SInce I had bit experience, and friend who was always telling me - go to search real job, finnaly I decided that I will be forever not earning and found first real job for small salary. It was big at that time, waaaaaay higher than I was earning as freelancer. Maybe 10x higher.

In that job, since I gain so much money, I thought I need to work so fast, I tried to think fast, type fast. And every day I was feeling unproductive. And after 4 days at new job, my brain does not want to work at all, I am just watching at the monitor and I see I cannot stand this anymore - I am feeling shitty and I cannot think. Something is wrong, maybe I cannot be a programmer and that felt sad, because I did not know how else I will earn my living. I do not want to do some stupid work. I know I have logical thinking. I was able to finish university - at least that gives a confidence that I am not most stupid. And in secondary school I was very good at math, physics, informatics. But the competition in secondary school was not high, so that does not tell much.

In the first job I remember director saying smth like - why you do so slow, see your colegue does faster and he does not even have IT degree. He has bachelor in economics. And also some freelancers or company does the tasks fast, cheaper.

Ok, my friend says - this is shitty job, leave it. I was afraid, but after some time they fired me, telling that I do not bring enough money to company to pay my salary and office bills. Plus company needs a profit. I worked in that job for almost 1 year.

Found second job. Much better one now. Still there were lot of situations where from from boss sentences, it felt like I am doing slow. But boss was friendly, so I did not change job for 3 years. Then my friendly boss left the company. And I had new boss - not friendly one. I tried to work in a team with him. But after 2 months I saw that its bad. I saw even some other people not happy to talk with him, so I decided its not only me overreacting, but he might be really shitty guy. But he was good programmer. So its out of question that company fires him. So I started searching job, and found super quickly with my 4 years experience.

So about current job. I tried to be picky since I am have now lot of experience. They told me in the interview smth like - every programmer is different in how fast they will do things. THe one who does quicker - simple earns more. But we cannot do anything if somebody does same thing slower.
I really like that atidude and it was easy choice to take this job offer, plus I got also very good salary.

And now what happens after few months of work: we had a talk with director. He said many nice things, that he likes that I work in their company, etc. But one thing he mentiuoned: he does not know how fast I am, because I was working on projects who were done by other guys, so working on other guys project might be slower, because you do not know codebase. Butt now you will start new project and we will see.
Also when they were giving tasks on old codebase, they gave aproximate time estimates, and I was finishing tasks in like 4 times the estimate. Like last task he said - its a 2 day task, but I give you 5 days for safety. I see I am working for a month already on this task, and I also skip doing quality code often to save time. I just created tasks to refactor, but I will probably not refactor, because I already took so much (?) time. Or maybe it is not much, its just their thinking thtat its a lot. I do not know.
I have no idea how I could make it significantly faster. Thats the biggest problem. Like if I was sititng in a facebook half a day, then I would know - need to stop sitting in a facebook.
I know that when they start talking in the office about something interesting, I start to listen, and of course this decreases productivity. But if they are productive enough while talking also, then I also want to be productive enough. Talking is fun, day becomes more fun. Otherwise its like working alone at home - with nobody talking.
We also agreed that its ok to study at work hours sometime. So they did not see a problem, because they asked - what could they do so we like wokring here more. So I study 4 hours a week.
Those 4 hours is not significant time. If I would work instead of study, I would still not be able to finish tasks as fast as they expect.

WHen I found out programming - it was fun. And it is still fun at some rare times. But most of fun kill the worrying that I do not meet their expectations. Even when I have experience. Its sick. I feel like I want to stop working in that job. But I also know that my collegues do not have such issue, work long time in that company. So it might be that company is good. And same might be in new company if I find. And its the main thing which I hate. There are almost no other things. Ok, I am worrying about talking to some coworkers and do not talk to them much. But I think its related to this - since I am stressed so much, its hard for me to talk, to be fun. On a days when I feel less streessed, I find it more easy to talk to collegues.

I even told to one collegue that I am worrying about new project that they want it not slow. He calmly tells - say to them - its not possible to do fast and quality. (They want quality also).
And doing overtime is out of qquestion imo. First - I do not want to spend my most of life only coding, especially when I do not feel pleasure. To feel pleasure - I have to not have stress at least. Second - I feel unproductive. Whats the point of doing overtime when you are stressed and unproductive. Comparing to when you are relaxed.
I think I am unproductive part of normal hours when I am stressed. That might add up to longer task finishing times. Lets say I start feeling streesed after 4 hours of work. If I would stop working and go relaxing, then they would hire some other person to do remaining 4 hours, then task would be finished faster (assuming subtasks are asigned well).

I think - maybe I should just tell them that I am not as good as they expect me to be, and so if they do not have a suggestion how I could do task faster, there is no way I will become faster. So why expect impossible? Its insane. Like Einstein said: “Insanity: doing the same thing over and over again and expecting different results.
Read more at: http://www.brainyquote.com/quotes/quotes/a/alberteins133991.html

And here is really the case.

Btw in the new project - we will also use few new technologies and domain driven design. This will also slow down things.

I am feeling that there will be trouble if they do not change thinking or do not hire additional programmer.

My friend says - do not worry about this now. If later they will tell that you do slow, then will think what to do.

But I write here, to get info, what to do. One thing I could do - put hard work on evenings and weekends to learn those new technologies as soon as possible.
But from my experience - even if I learn something, that does not make me less worrying. I then see there are other technologies waiting and still I am worrying. So that is not a solution, because new technologies popup all the time - and with this solution I will never end worrying. I have to do soemting different.

One thing that helps for some time at least - is meditating. Maybe living in the moment is ok for the moment. But really thought about slow programing pops up. And then I have to force to forget it. That is hard thing to do.

Or maybe this is really not the good company even if it looks good? Like I read in other thread - you cannot imagine how unproductive are people in corporations (as I understand they browse internet, chat a lot and predent doing a lot, but actually not doing so ?) maybe I have to move to a corporation? And maybe I will be more productive relatively to others and they will be happy?
I remember in my last company - my boss I feel was very unproductive, because he simply was not working lot of hours, but just sitting near computer and doing his own stuff. So I could look more valuable.

But as director said, this company is growing fast now. In near future they might hire more people. So maybe need to see.

Any thoughts?

It’s hard to tell how you can become faster or more productive without knowing what’s the kind of work that you are doing. But based on your post, there are a few things that seem to stick out to me.

First, you seem to be really concerned about not having to work too much, or not having to put in long hours. I think you need to get over this. Instead of worrying about how much time you are putting in, think in terms of what you are getting done. Unfortunately, even if most companies pay you ostensibly for 40 hours a week, they really expect you to put in as much time as it takes to get something done. If you seriously want more control over your time, then you should look into freelancing or contract work, but from what I can tell you need a solid professional reputation first before doing that sort of work.

As for actually getting faster, I would say you should practice the kinds of tasks that you need to do. Try doing practice programming problems on the weekends, or if you write a certain type of app, try writing one of those apps over the weekend. Also learn your tools well. Learn to touch-type and learn the ins and outs of your IDE and build system. Being fast is partially about having good knowledge of your tools and partially about solving problems fast. Learning your tools will help with the former and practicing will help with the latter.

I would strongly recommend you start recording where you spend your time during the day and start speeding up the places where you think you are spending too much time.

First, you seem to be really concerned about not having to work too much, or not having to put in long hours. I think you need to get over this. Instead of worrying about how much time you are putting in, think in terms of what you are getting done.

Time is very expensive thing in life, you are getting older and older and finally you die. I feel that I am wasting my time by working and being stressed = not happy. But I am also thinking of what I am getting done during the work hours.

they really expect you to put in as much time as it takes to get something done.
Yea, I believe this is true. They do not care about my life as much as they care about profit.

As for actually getting faster, I would say you should practice the kinds of tasks that you need to do. Try doing practice programming problems on the weekends, or if you write a certain type of app, try writing one of those apps over the weekend. Also learn your tools well. Learn to touch-type and learn the ins and outs of your IDE and build system. Being fast is partially about having good knowledge of your tools and partially about solving problems fast. Learning your tools will help with the former and practicing will help with the latter.

Yea, I believe this would help when working with new technology. But what about when I work with technology I know decently? Besides IDE there is not much.
And it sucks to spend weekends time for learning. Especially when knowing that I am so good, otherwise if I am not so good, why they pay me good salary. I really want so much to have fun and do some other stuff in my life. I have some other goals also.
But I guess, maybe solution is - to invest my time into learning those new technologies now on weekends soon and then later take extra holidays to compensate.
But what does not make sense for me - I know there are people, who are so fast, that they can spend in the office like half of day working, and other half of day they do their own stuff, like own projects or freelancing. Other people read news or browse facebook a lot. So if I could have half of day to do what I want, I could practice those technologies and be better and would not need to practice on weekends. I think they cheat the bosses and do good, while I work hard and do bad :frowning:

I would strongly recommend you start recording where you spend your time during the day and start speeding up the places where you think you are spending too much time.
you mean record my tasks? We are recording.

Plus also I know guy who is not studying on weekends, and often is late at work, but do not even work full hours because of being late - goes home when everyone goes, and is not slowly doing. So he works 1 hours on average less than other people because of being late. So is he some kind of genius? My another friend also - from what I have heard - he does not study much after work, and does so good. Is he also genius? So it is possible to do good.

Also I know one accountant who works like 5 hours a day and earns probably not less than me. And she does not study things. She has 10 years experience in accounting. Its super good.

But now I just see one way out - wake up tomorrow and study. At least with new technologies this will improve speed.

But with technologies I know well - its still big question. I do not believe that knowing ins and outs of IDE or typing fast will make you significantly faster. I see people who type slower than me and also move cursor between words by one char instead of whole word, stuff like this, and still they are better. I have heard that programming is mostly about thinking, not about typing. So thats why paired programming makes sense - only one guy writes at a time, but 2 guys think and he is able to type fast enough.

First, i think you need to seriously evaluate if you are as good as you think you are. Do your coworkers, bosses, teachers, etc. agree that you are very good, or is this something you have come up with on your own?

Second, if you are surrounded by people who you think are much faster than you are, then a good approach would be to see what exactly they are doing and how they got so fast. In my experience, people who seem really fast or good have put in lots of time and effort to that point, and they also work a lot when no one else is looking.

My programmer friends tell so. They tell that I am even undervaluing myself often. About coworkers - my last boss also said that I am good. Another coworker also told that I write quality code. Current director recently also said that he is very happy that I work in his company.

Of course I can find people who can tell I am not good. So it depends a lot on how you view it.

If you compare me to some guy who earns twice as me, then I am not good :slight_smile: but that makes sense cause otherwise I would earn same as him.

Second, if you are surrounded by people who you think are much faster than you are, then a good approach would be to see what exactly they are doing and how they got so fast

My guess is - they do not try to write very quality code. They do not refactor often enough. They write - for as long as it does what it has to do, its ok.
Another guess - they do not get stressed so often, so its easier to think when you are not stressed.
One more guess - some people from using the talks make it look that they done a lot.
Another thing - maybe just better IQ? Like in schools - ones understand things much faster than others. So we might be different by brain power. And there might be nothing possible to do about it.

Good thing is - there is one new guy, who knows well how to write the quality code. And can’t wait to see how fast he will do, so I could compare.

So I thats what I think - and as I see there is not much I can do to significantly increase speed. Only with new technology I know I can. Practiced yesterday 7:45 minutes and today 2 hours, now having headache, so stopped.

If you’re letting the “feeling” that your bosses aren’t happy with your productivity get you down, you’re worry about something you don’t know, namely, whether they actually are unhappy with your work, or if your insecurities are deceiving you. The only way you can resole this is by bringing it to them, meeting with whomever your immediate supervisor is and letting them know you are concerned about whether your work - in quality and quantity - meets standards. Any boss you should want to work for will appreciate your concern and should be able to speak honestly with you about how they feel about your work and what, if anything, you might need to work on and how.

I am afraid to ask such question :slight_smile: but in the recent meet, the director says - he does not know how fast I work, and the quality is good. But he will see when I start to work on new projects.
Only maybe I could ask if they suspect that my productivity is bad. But the answer is true I believe 95 %. And I am afraid that there they will not suggest any good answer how to significantly improve speed. And then I will be stuck. Maybe I should ask the colleague which I work together often and he knows well how I code - maybe he can tell something how can I improve speed if its possible at all. I feel its much better to get answer from guy who should have better Idea than those who not work so closely with me. And the colleague does not have problems with productivity.

Oh I remembered - once when we did not make realease on some day which we told we make, I was asking that coleague, is it bad, or smth like that. He replied - do not worry, the directors are not in a hurry, and better to make more tested release than buggy one.

The problem I see with your situation is that “speed” and “productivity” are not very specific goals or targets. You mention your director “does not know how fast I am”. That seem to suggest there is very little metrics/info available to him.

Can you tell us a bit about the software development process at your company ? Are you guys doing stand up meetings every day ? Are you doing sprints ?

Are you really talking about 1 task or is it 20 tasks grouped into one requirement ?
Perhaps you needed to refactor code and that was a lot more work than expected ?
Or maybe you needed time to adjust, learn new methodologies, figure out stuff because the project’s documentation is poor ?

My point is… software development is risky. It is pretty much impossible to make reliable estimates unless you have “total knowledge”, which means you have 100% of the knowledge needed to complete the requirement.

So my advice is to find ways to optimize your development process. Make sure requirements are broken into small chunks so that you can push commits more regularly and your supervisor can keep tabs on your progress. Consider stand up meetings with your team.

Can you tell us a bit about the software development process at your company ? Are you guys doing stand up meetings every day ? Are you doing sprints ?

We talk with some people about the feature, and I start doing it. WHen more questions there are, I ask again, we talk, then I continue doing it. I also consult with other programmer for like what is better way to do this. Or he explains something how its done currently in the project, because I am new to that project - 3-4 months, he was doing it before.

We are doing standup meetings. If 2 weeks until release is a sprint, then yea, we are doing.

Are you really talking about 1 task or is it 20 tasks grouped into one requirement ?
Its one task/feature, but then I split it into many small tasks.

Perhaps you needed to refactor code and that was a lot more work than expected ?

Yea, there are times when I leave code unrefactored even when I see that it needs to be refactored - to save time. But we plan to stop on developing this project, so maybe its ok. We started working on new one.

Or maybe you needed time to adjust, learn new methodologies, figure out stuff because the project’s documentation is poor ?

Yea, there is no documentation. Documentation is live - I can ask another programmer :slight_smile: There were not many new technologies in that project. But in the new project there will be few major ones. So now sacrificing my evenings and weekends when I am not busy to practice with it with the hope that it will pay me off (not talking about money).

So my advice is to find ways to optimize your development process. Make sure requirements are broken into small chunks so that you can push commits more regularly and your supervisor can keep tabs on your progress. Consider stand up meetings with your team.

Yea, I am doing what you mentioned. I think btw that stand up meetings is waste of 20 minutes time, so not optimal. I could do a standup with the people who I really need information. There are many talking which is not useful for me in the stand up. But of course saving 20 minutes will not boost productivity hugely.