2

I've been working in a small company for a bit over a year. It's my first job straight out of university, so my employer understands I'm inexperienced, yet still they were happy to hire me.

I had a 1-on-1 conversation with my boss recently about how things are going; he said he wanted to either hire a more "mature" developer or make me to become more "mature" asap or help me find another job.

From what I understand of what he says, he defines mature as "able to execute job to completion", i.e. done done, ready for production and for everyone to use, quick turnaround, minimal bugs, and have little features that are "nice to have". In addition he also said "I want someone who can fix/develop something with minimal requirements". In other words, "guess what I want and what I'm trying to do, and come up with something brilliant".

So he said he understood that I'm still inexperienced (only a bit over 1 year out of university) but he said our product is developing so fast and we need more mature developer.

So I thanked him for his feedback and said I'll try my best to be more mature, and... that's pretty much the end of conversation. He didn't say which decision he's going to take.

My work attitude is that I like to make sure what I made/fixed is what is required. So I always go back to the person who requested the fix/feature and ask for his/her opinion. Moreover, if I have question, I always clarify with them no matter how insignificant they might think it is.

I'm trying to save my job as I find it hard to find job as developer in the first place, and yes I do need the money. So my question is given my inexperience and my work attitude, how can I improve? I can try to guess what they want, but what if that leads to inaccuracies and total disaster? isn't that bad?

closed as off-topic by jimm101, gnat, Masked Man, Chris E, Jim G. Nov 1 '16 at 17:18

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking for advice on what to do are not practical answerable questions (e.g. "what job should I take?", or "what skills should I learn?"). Questions should get answers explaining why and how to make a decision, not advice on what to do. For more information, click here." – jimm101, gnat, Chris E
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 5
    Are you the only programmer at your company? Do you have any other programmers available to help mentor you (inside or outside of your company)? If you're the only programmer, then your company has made a mistake because the skills they're asking you to develop don't just come naturally to most people. – Kent A. Nov 1 '16 at 12:13
  • 1
    "I can try to guess what they want" = don't guess, ask. Work with your boss until you understand what they want and how to get there. "he said our product is developing so fast and we need more mature developer." = that sounds like you will be replaced. Talk to the boss and find out for sure. – WorkerDrone Nov 1 '16 at 12:29
  • 4
    Your boss needs to look up the meaning of "mature". Apparently he thinks it's a synonym for "experienced". – RJFalconer Nov 1 '16 at 12:33
  • 1
    @RJFalconer No, I thinks the boss has it right. You don't need to be experienced to do that, but you do need the advice of someone who is experienced to learn them quickly – Richard U Nov 1 '16 at 13:13
  • 2
    In all honesty, what you're describing only comes with time and experience. A mentor might help you, but they would need to be very committed to your success, and even then, you'd still need a good 6+ months to truly show improvements. What this mentor would need to be able to do is discuss your tasks with you from a conceptual viewpoint, explain how he would approach the issue, discuss your ideas, and eventually review your code so that you don't build bad habits, or waste time. Few of us ever find anyone willing to do this for us. I never did. Time to update the resume. – AndreiROM Nov 1 '16 at 13:44
11

Speaking as a mature (read as OLD) developer, your manager's complaints are ones I've had myself. While it's not your fault, colleges and universities are doing a poor job in setting up developers for success in the REAL WORLD(tm).

Your first year in, you know how to do things by the book, but that's all you know, there is much to learn that isn't in the books. By mature, I believe that your manager is looking for those traits that one develops over time that are those things not in the books and outside the box.

There are only two ways to get that maturity. One is getting your post-graduate education in the school of hard-knocks (not recommended). The other is to seek out a mentor.

A mentor can teach you what uni did not, such as how to anticipate needs, reading people, et cetera. Your understanding of what he wants is correct, and sadly part of the industry. Specs are almost NEVER an accurate reflection of the final product. Clients and end users will get mad at you for doing exactly what you were told instead of giving them what they wanted. Because of this quick turnaround is a must. The mature coder goes in knowing that he has to keep everything modular and easy to change, for example.

Your boss is actually not being unreasonable. He has stated his needs and your deficiencies. Find someone either in your company or outside of it who is willing to teach you the skills that uni didn't. That's the only way you can save your job at this point.

  • Thanks. I wish my boss understand this and happy to wait and see me improve, but he said he hasn't made any decision just yet. Although, one of my colleague said the senior devs have been interviewing people. So I think that's a bad sign for me. Regardless, I think mentoring is a good idea. I'll see if i can get someone to help me. Having said that, will he think badly of me because i'm seeking help? Like 'why u need to disturb others? can't u do it yourself?' – woof Nov 1 '16 at 14:57
  • @gippyz the only people I ever think badly of are people who do not seek help when needed. If your boss thinks less of you for acting of his advice, you are working at the wrong place. Update your resume and send it out, just to be safe. – Richard U Nov 1 '16 at 15:01
  • Thanks Richard. I definitely will seek out other employments. I have conversation with the tech lead who is my direct supervisor, and he's essentially saying i need to question every task given to me. Moreover, he also mentioned that he's not confident giving hard tasks to me as he's not sure i know enough how to do it properly. He prefers to give it to the other junior dev because he thinks that guy dare to refactor things he doesn't like, not scared of breaking things, has better solution, knowledge, and coding style. Feeling demoralised really. – woof Nov 2 '16 at 1:26
  • @gippyz float your resume, and adopt an I don't give a **** attitude at your current job. Never be afraid to make mistakes, it's the only way you learn. If you're going to be fired, be fired for being too bold, not too timid. – Richard U Nov 2 '16 at 12:16
4

Moreover, if I have [a] question, I always clarify with them no matter how insignificant they might think it is.

This is a good practice with stakeholders. Now you need to apply it to your manager.

You need to go back to your manager and understand, in detail, what goals you need to achieve.

One way to make the goals concrete is to make them SMART, i.e. Specific, Measurable, Assignable, Realistic, Time-related. As a side note, the SMART mnemonic can stand for a few different specific words, but the sentiment is the same.

  • That's a totally new angle of looking at a task. I can definitely see where you are coming from. It's like, what are they after? what were they trying to do? Thanks a lot! – woof Nov 1 '16 at 15:01
  • 2
    I disagree with your assertion that this is good practice with stakeholders. Bringing technical questions to stakeholders can easily strain that relationship. Your accountant stakeholder will not offer meaningful input on which design pattern to use, they will care that the data displays in a way that makes sense and the balances come out right. – Myles Nov 1 '16 at 15:07
  • 1
    @Myles - depends on what the questions are that the OP is posing to the stakeholder regarding on whether they should be asked or not. What if they clarify the GUI for instance? – WorkerWithoutACause Nov 1 '16 at 15:16
  • 4
    I always clarify with them no matter how insignificant they might think it is. This covers both items that should go to stakeholders (ex GUI layout) and items that shouldn't go to stakeholders (ex which libraries to use). Not knowing when to/not to involve stakeholders is a common mistake for juniors in technical roles. – Myles Nov 1 '16 at 15:25
  • I agree with @Myles - I saw that quote as "needs hand-holding". Ability to work independently, without needing step-by-step instructions, is definitely a mark of a "mature" developer. – user812786 Nov 1 '16 at 20:53
0

In addition he also said "I want someone who can fix/develop something with minimal requirements". In other words, "guess what I want and what I'm trying to do, and come up with something brilliant".

A mature developer understands that no design survives first contact with reality. The sooner you start, the sooner you can move down the road of understanding what the correct destination is. Ask your detailed questions once you have something to show.

1. Identify the highest priority task 
2. Gather enough requirements to make an educated guess on how to complete that task
2. Complete enough work to display the result of your knowledge/guesses
3. Show the customer what you have often and confirm/reject your educated guesses
4. Go back to #1 

It's very rare that you will be asked to do the impossible, most likely you don't have the full context of what is being asked.

Do some research and then go to your teammates. If they feel it is not achievable, you can then go to your manager. Be direct with your concerns and come prepared with a solution.

Given the time sensitive nature of this problem, I would highly recommend confiding in a more senior teammate and ask to work closely with them. Do anything you can (help with documentation or repetitive tasks) to free up their time. Make yourself useful in any way until you feel more comfortable with what your manager was asking for.

Take the feedback very seriously and do not fall in to the trap of feeling that unreasonable things are expected of you.

-2

Two things.

1) Your boss has told you that he is looking to replace you. Get your resume ready and start looking. Start stockpiling money so you will have enough to hold you over between jobs.

2) Remember that learning is an active process. If you want to keep this job or future jobs, then you need to understand that the time for entertainment and "free time" is over. Now is the time to be a professional.

You say you don't know how to guess what the boss expects. This is because you lack insight in your product. You need to spend your time outside the office researching your product and the technologies that support it. Sit down and work with the product as a user, to see what a user might want to have changed or implemented. Look at the products of your competition. See what makes them better, see what makes them worse. If possible observe people using similar products "in the wild." EG if you make cash register software, go sit a bar and just watch the bar tender use the register. Read reviews of your product and competing products.

Sit down and study/research your technology stack. Be especially mindful of things that can help you improve the product.

If you really push your self, you will become an invaluable member of the team. Don't slack off. You work in technology. If you don't keep growing your skills and knowledge, you will become as obsolete as bubble memory.

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