-1

I have 4 years experience as a developer. I recently had my appraisal meeting.

My manager mentioned that I performed below my performance. He told me I am lazy, and I tend to miss all the use cases while develop, which introduces a lot of bugs.

Unfortunately, we don't have enough time to code, as we need to keep delivering the product to the client.

We haven't introduced any test driven development as of now.

I consider myself as a lazy developer and have inferiority complex, who is asked to do what is asked to be done.

My manager mentioned that I need to develop some sort of expertise in something.

I have the following questions:

  1. How do I keep myself interested in the work I do? Even if the feature keeps returning everytime with more bugs.
  2. How do I stop procrastination?
  3. How do I code with most minimal bugs,in the shortest time? Is it possible?
  • 4
    Ask your manager what exactly he expects you to do to improve and to support you in achieving the improvement. He is not paid just to bark at you once a year, but to actually do those things that would make you a better developer. To me, it sounds like he was equally, if not more, lazy if he waited a full year to tell you that were lazy and he hasn't even bothered figuring out a plan for you to improve. – Masked Man Apr 22 '17 at 19:03
  • @MaskedMan just sounds like he didn't even want to review the employee and was originally ok with him being lazy – misha130 Apr 22 '17 at 23:23
  • 1
    @misha130 Right, "some sort of expertise in something" coming from a manager is a big red flag. It clearly shows he has no clue what he is talking about. I think the manager needs to somehow develop some skills in something as well. – Masked Man Apr 23 '17 at 8:22
  • Find a job you really like. If you just code to make a living this is never going to work for you. Do you enjoy yourself more doing animation? working with wood? fixing cars? balancing sheets? go for that. Motivation comes out of amusement if you can't enjoy your job you won't make it out alive – user49901 Apr 23 '17 at 16:13
3

I'm not a coder, but I'm a sales person (I've heard "no" more times than you ever will) and I'm also a supervisor (I'm tasked with motivating others), so I will give you my advice on general ways to improve your next review and keeping motivated.

First, both you and your boss identified an area that needs improvement. So, do your best to improve and learn. Can you take courses? Make a conscious effort to fix just one of the mistakes or errors you do on a consistent basis and soon you will stop making that mistake. Repeat as needed.

Second, while time is of the essence it typically takes less time (in any task) to do it correctly the first time than it does to fo back to correct mistakes. Do it right the first time and you may just find that you have more time to complete future tasks.

Motivation can, and should, be internal in addition to external factors. What drove you to this line of work? What inspires you to stick with it? Keep those things in mind.

As for your self doubt, remember that this company hired you and keeps you for a reason. If you continue to improve yourself, without being asked, they will have little reason to sever the relationship.

2

I'm a coder too and have experienced similar situations as you described. Especially on the topic of low self-estime and procrastination.

I'm a coder now since about 20 years and it's only about 2 years when I was diagnosed having ADHD. Maybe you have ADHD too? I am running a hackerspace and I'd say about 1/4 of us geeks do have it. So this seems to be more common among us computer geeks types.

An untreated ADHD troubled me in several ways:

  • Concentrating on a single thing is difficult.
  • Once I was solving a problem, I had an overwhelming urge to learn every little aspect about it. Most of them would be unnecessary to know for the task at hand. This would not only waste time but also mentally exhaust me.

As a result:

  • I had constant problems doing my task in time.
  • I was missing obvious requirements because I got carried away.
  • I was feeling drained trying to stay concentrated.
  • I felt miserable because I didn't live up to the expectations of my superiors, my peers and, most important, to myself.
  • I began to procrastinate because I was demotivated and exhausted.
  • I was thinking of switching to a different profession, because I didn't feel fit to do it. This, even though I love computers and programming and I know that I can be knowledgeable. I just seemed impossible for me to anything useful with it on professional basis.

Now that I have been diagnosed ADHD I'm taking 20 mg ritalin daily. It helps me a to concentrate better and find myself less often procrastinating. Also, now that I know that I have this disorder I am much relieved to know that I'm not lazy.

Other things that help me:

  • I try to organize my tasks. Following the procedures from GTD helps me.
  • Find peers with a similar interest in coding. Share your experiences with others. I code with my friends on my free time. My own projects advance a lot faster compared to doing this alone.
1

Steps 1 and 3 could be achieved by implementing unit tests in your code. When all test cases pass, you have the confidence that your implementation works according to spec. If there are further requirements after for example getting more accurate needs from the client, then just add new test cases and change the code until everything passes again. It is important to test edge cases too. Sometimes you can skip a few tests when you are sure something is not practically possible. But until you know for sure, try to have maximum coverage including obscure cases. The obscure cases are often a source of very strange bugs which can be hard to track without unit tests.

Step 2 is a bit more personal. It all starts from your own psyche and drive. Sometimes you just have to hammer it out, even if the task does not inspire you. Try to make it interesting for yourself. But procrastination is not always bad. It gives a chance for your brain to catch a breath, especially after working on a complex problem for a long time.

1

Unit tests for sure that follow the use case model so you don't code something that doesn't work according to spec. You also need to try to understand the purpose behind the use case. The use case is designed to demonstrate the actor flow/interactions with the application to accomplish something. If you can keep that in mind it will hopefully give you more of the end user perspective to think about when developing instead of just a functional completion check.

For the first and second item I would seriously ask yourself a few questions and spend some time thinking them through before answering them.

  1. What do I like about development work?
  2. What do I dislike about development work?
  3. What in general motivates me?
  4. Does my skill set and the speed of work align with my capabilities including where I may grow to be capable of?
  5. Where do my general motivations overlap with my work and where are they totally different?
  6. Based on all of the above is this career path in my life going to line up with my natural motivations and abilities or is it too different?

Based on the answer to question 6 there are a few options:

  1. Find a job category that better suits your motivations, skills, and abilities and then pursue that career path.
  2. Find a path to increase your ability/skills and also align your motivations with your work so that you perform up to and above the standard of excellence required for your job.

Part of life's journey is figuring yourself out along the way and where you will best fit. Don't hit your head against a wall your whole career if you tried something and it didn't work, but rather find what does work for you. Everyone has a different niche that works for them and a different way to do it, it's important to find that so that you feel like your contributions are appreciated and you also feel good about the work and what you are contributing.

If you have more questions on specifics related to the your own answers ask another question, just remember to be specific with a situation/goal/answer in mind and not a "what do I do now" open ended question.

Not the answer you're looking for? Browse other questions tagged or ask your own question.